00:13:46 Quetzalcoatl_ [n=godless@cpe-71-72-235-91.cinci.res.rr.com] has joined #scheme 00:17:57 rdd [n=user@c83-250-157-93.bredband.comhem.se] has joined #scheme 00:24:47 rushi [n=rushi@rushispowerbook.dynamic.ucsd.edu] has joined #scheme 00:26:29 -!- rushi [n=rushi@rushispowerbook.dynamic.ucsd.edu] has quit [Read error: 104 (Connection reset by peer)] 00:26:32 rushi_ [n=rushi@rushispowerbook.dynamic.ucsd.edu] has joined #scheme 00:46:42 QinGW [n=wangqing@203.86.81.2] has joined #scheme 00:47:51 -!- neilv [n=user@dsl092-071-029.bos1.dsl.speakeasy.net] has quit [Read error: 113 (No route to host)] 00:56:37 -!- Poeir [n=Poeir@c-98-222-133-165.hsd1.il.comcast.net] has quit [Remote closed the connection] 00:58:18 neilv [n=user@dsl092-071-029.bos1.dsl.speakeasy.net] has joined #scheme 01:00:49 annodomini [n=lambda@c-75-69-96-104.hsd1.nh.comcast.net] has joined #scheme 01:10:37 -!- mrsolo [n=mrsolo@nat/yahoo/x-21c8cb09d61a0db1] has quit [Remote closed the connection] 01:12:49 -!- glogic [n=glogic@97.76.48.98] has quit ["Leaving."] 01:23:42 glogic [n=glogic@97.76.48.98] has joined #scheme 01:36:41 Pepe__ [n=ppjet@78.116.1.226] has joined #scheme 01:39:57 -!- Nuke86 [n=talron@dallal1.fix.netvision.net.il] has quit [Read error: 110 (Connection timed out)] 01:40:26 -!- thesnowdog_ is now known as thesnowdog 01:40:26 -!- snurble [n=snurble@s83-191-238-2.cust.tele2.se] has quit [Read error: 54 (Connection reset by peer)] 01:40:35 -!- Pepe_ [n=ppjet@78.113.3.173] has quit [Read error: 60 (Operation timed out)] 01:41:53 snurble [n=snurble@s83-191-238-2.cust.tele2.se] has joined #scheme 01:43:46 -!- neilv [n=user@dsl092-071-029.bos1.dsl.speakeasy.net] has quit ["Leaving"] 02:05:51 -!- blackened`_ [n=blackene@ip-89-102-28-224.karneval.cz] has quit [] 02:12:29 -!- CaptainMorgan [n=CaptainM@c-24-62-183-102.hsd1.ma.comcast.net] has quit [Read error: 104 (Connection reset by peer)] 02:19:00 saccade_ [n=saccade@dhcp-18-188-74-28.dyn.mit.edu] has joined #scheme 02:22:31 incubot: i find it poetic that emacs and elinks share terminal alveolar sibilants and incipient ees; as well as medial nasals and gutterals; for i can edit the latter's text areas in the former: hallelujah! 02:22:34 I do, however, speak voiceless nasals. 02:22:35 -!- rouslan_ [n=Rouslan@unaffiliated/rouslan] has quit [Read error: 104 (Connection reset by peer)] 02:35:54 jlongster [n=user@c-68-59-187-95.hsd1.tn.comcast.net] has joined #scheme 02:37:14 copumpkin [n=pumpkin@c-24-63-67-154.hsd1.nh.comcast.net] has joined #scheme 02:53:45 CaptainMorgan [n=CaptainM@c-24-62-183-102.hsd1.ma.comcast.net] has joined #scheme 03:11:41 -!- Nshag [i=user@Mix-Orleans-106-3-231.w193-248.abo.wanadoo.fr] has quit [Read error: 110 (Connection timed out)] 03:11:58 -!- soupdragon [n=f@amcant.demon.co.uk] has quit ["Leaving"] 03:14:45 -!- syntropy_ [n=who@unaffiliated/syntropy] has left #scheme 03:17:35 -!- forcer [n=forcer@c228087.adsl.hansenet.de] has quit [Read error: 110 (Connection timed out)] 03:17:58 -!- jlongster [n=user@c-68-59-187-95.hsd1.tn.comcast.net] has quit [Read error: 113 (No route to host)] 03:21:45 eno__ [n=eno@adsl-70-137-137-202.dsl.snfc21.sbcglobal.net] has joined #scheme 03:22:07 -!- eno [n=eno@nslu2-linux/eno] has quit [Read error: 104 (Connection reset by peer)] 03:23:18 -!- Axioplase_ is now known as Axioplase 03:31:59 -!- Quetzalcoatl_ [n=godless@cpe-71-72-235-91.cinci.res.rr.com] has quit ["Leaving"] 03:39:17 *dsmith* soaks incubot with the overspray from a bilabial fricative 03:44:20 -!- MichaelRaskin [n=MichaelR@195.91.224.225] has quit [Remote closed the connection] 03:46:27 -!- rushi_ is now known as rushi 03:56:53 thufferin' thuccotash 03:58:57 i see your bilabial, and raise you a dental non-sibilant lithp 04:01:26 AtnNn [n=welcome@modemcable087.62-56-74.mc.videotron.ca] has joined #scheme 04:08:01 -!- eno__ is now known as eno 04:10:39 chylli [n=lchangyi@60.211.218.227] has joined #scheme 04:11:48 in plt scheme, how to run a script with side effect of display and without printing of results of expression ? 04:12:04 lowlycoder [n=x@unaffiliated/lowlycoder] has joined #scheme 04:13:35 dmoerner [n=dmr@dip-14-250.coloradocollege.edu] has joined #scheme 04:18:20 my code is just three lines: 04:18:23 #lang scheme 04:18:25 "hello" 04:18:29 (display "world") 04:18:41 I just want to get "world" in stdout 04:20:26 I tryied mzscheme with -t , which give me "hello" world, tried -f, which give me nothing. 04:21:36 MichaelRaskin [n=MichaelR@213.171.48.239] has joined #scheme 04:23:16 chylli: you tried -r, i take it? 04:23:50 I tried, but got nothing. 04:26:20 klutometis: but if I comment out the first line #lang scheme, mzscheme -r test.ss and mzscheme -f test.ss give me the right result. 04:26:24 athos [n=philipp@92.250.250.68] has joined #scheme 04:31:16 chylli: interesting; i'll keep that in mind next time i scheme with pacman's wife ;) 04:31:38 -!- davazp [n=user@56.Red-79-153-148.dynamicIP.rima-tde.net] has quit ["ERC Version 5.2 (IRC client for Emacs)"] 04:34:00 jonrafkind [n=jon@98.202.86.149] has joined #scheme 04:34:10 chylli: don't comment out the #lang part. Generally you should only have modules at the toplevel with plt. 04:34:21 #lang does the "make this file a module" magic. 04:34:44 incubot: for some reason, mzscheme always reminds me of mzpacman; although, to my chagrin, the game was called "ms. pacman" 04:34:46 just "mzscheme test.ss" should work. 04:34:47 generally, when you are looking for `object orientation', it is because you are actually trying to solve a real problem, and you believe that `object orientation' is a step on the path to the solution. Alas, to the chagrin of any idealistic belief that such a step can be so easy to make, it may be unpleasant for you to hear that (1) the term `object orientation' has no general definition that conveys any meaning to us, and 04:37:42 synx: I know I shouldn't comment out the first line, but mzscheme test.ss gave me two line : "hello" and world 04:38:27 synx: it is ok if I use plt-r5rs and without first line. 04:38:29 chylli: if you don't want "hello" to be output, try (begin "hello" (display "world\n")) 04:39:28 borism [n=boris@195-50-199-19-dsl.krw.estpak.ee] has joined #scheme 04:40:25 -!- snurble [n=snurble@s83-191-238-2.cust.tele2.se] has quit [Read error: 104 (Connection reset by peer)] 04:41:02 synx: ok. thanks. 04:41:32 snurble [n=snurble@s83-191-238-2.cust.tele2.se] has joined #scheme 04:43:04 drscheme's non-module languages are mostly for teaching purposes anyway, not really what people use 04:43:19 eno__ [n=eno@adsl-70-137-147-142.dsl.snfc21.sbcglobal.net] has joined #scheme 04:43:58 toplevel is really confusing though. What does it mean to say (module something scheme "hello" (display "world\n"))? 04:44:40 Is that two programs, one that returns "hello" and one that displays "world"? What does it mean to "return" something at the toplevel, or to evaluate to something? Should it display "hello" or not? Why would it? Why wouldn't it? 04:47:36 -!- dmoerner [n=dmr@dip-14-250.coloradocollege.edu] has quit [Read error: 110 (Connection timed out)] 04:47:46 synx: you scared me :( 04:48:51 What is the meaning of life in 20 words or less this is an essay question! 04:49:05 *synx* falls over 04:49:11 synx: I write some code to connect mysql and display a table's row. then I find it always display the expression result. 04:49:42 best to explicitly display the expression result, if you want to be totally sure it gets displayed. 04:50:30 I think the practice of displaying the result of the expression being evaluated is... kinda weird. Makes the mathematicians happy. 04:51:02 Like I want to know how to display the text in blue in drscheme. Nobody thought of that huh! 04:52:37 synx: I think printing the result of expression is ok in interactive things, but is bad when running scripts. 04:53:02 confusing, at the very least 04:53:39 what's really awful though is if you try to use continuations at the toplevel. I still don't know how that works exactly. 04:54:01 chylli: The default langauge will always print out values of expressions that are not void; to avoid that, wrap it in a call to the `void' function -- as in (void "hello"). 04:54:15 (`void' accepts any arguments and always returns void.) 04:54:42 But that's very rare, because in almost all cases toplevel side-effects are things that return void values anyway. 04:54:46 -!- eno [n=eno@nslu2-linux/eno] has quit [Read error: 110 (Connection timed out)] 04:54:58 chylli: Then, just run your program with `mzscheme '. 04:55:05 -!- AtnNn [n=welcome@modemcable087.62-56-74.mc.videotron.ca] has quit ["splode"] 04:55:33 klutometis: Actually, it was supposed to be called "MsScheme", as in "Ms. Scheme" -- but changed to avoid confusion with MS products. 04:56:13 thanks, all 04:56:27 np 04:57:00 I think it's a good way to write like : #lang scheme (begin .......... (void)) 04:58:19 chylli: No, a toplevel `begin' is simply spliced into the module, so it will not help. 04:58:50 chylli: Do you have a *real* problem with the printout of toplevel values? 05:03:49 eli: I'm a newbie. can you show me how to write things like this? http://hpaste.org/fastcgi/hpaste.fcgi/view?id=6776#a6777 I just want to get the rows of a table 05:04:36 chylli: Which expressions are showing extra stuff? 05:05:07 I don't know that db interface, but I can tell you that one such example is the `for/list'. 05:05:07 eli: (connect "localhost" 3306 "chylli" "3843054" #:schema "test" #:set-current? #t) 05:05:08 will print #connection 05:05:30 -!- eno__ is now known as eno 05:05:36 If you just want to print stuff, then you *don't* want to collect a list of the (useless) results -- so just use `for' instead. 05:06:07 As for the `connect' result -- if it returns some useful value (like a DB connection object), then you'd want to bind that to something -- as in 05:06:14 (define the-connection (connect ...)) 05:06:40 Then you can use (close-connection the-connection) in the end, which would work out better. 05:07:13 If you want to continue relying on `connect' implicitly setting the `current-connection' parameter, then you can do what I said -- (void (connect ...)), 05:07:22 but the definition form seems better to me. 05:07:45 https://synx.us.to/code/scheme/cont-again.ss 05:07:55 eli: now I know. but should I care about the expression result when I use stdout to display something ? 05:08:05 Closest I've been able to come to "generators" so far. Still the whole "return 2 values" thing irks me. 05:08:31 should I care about EVERY expression ? 05:08:34 chylli: No -- all the printouts will return void -- so after your desired output, you probably see a line with (# # ...) -- which are all of these voids. 05:08:48 chylli: And BTW -- instead of: (display row) (display "----") (newline) 05:09:00 you can simply do (printf "~a----\n" row). 05:09:54 eli: oh, that (display "----") is just for debug. because at first I don't know the # # is the result of for/list or the side effect of display 05:10:12 In that case, (printf "~a\n" row). 05:12:31 eli: ok. thanks. I know how to do. but I still want to complain: is it necessary to DISPLAY the result of expression in stdout. 05:13:03 chylli: Like I said -- this is almost *never* a problem. Only in very rare cases. 05:13:19 And on the other hand, it is *extremely* convenient to have these printouts. 05:13:44 For example, it's the same mechanism that makes it easy to use mzscheme as a calculator: mz -e '(+ 1 2)' 05:14:06 Or you can just put a value at the toplevel to see it's result when you're debugging instead of printing it. 05:14:26 eli: I prefer mz -e '(display (+ 1 2)' haha 05:14:53 chylli: No, you mean mz -e '(display (+ 1 2)) (newline)' 05:15:09 or mz -e '(printf "~s\n" (+ 1 2))' 05:15:24 ~a 05:15:26 eli: the stdin and stdout is used so frequent in the pipe, like cat a.txt | mz aa.ss | someting 05:15:46 synx: Yes, I should have written `write' in the first example; `~s' is correct. 05:15:53 eli: I think it disturbed the stdout. 05:16:00 ehe, sorry 05:16:06 chylli: That kind of use is really not something that you should use. 05:16:16 chylli: Not with mzscheme, and not with any other language. 05:16:34 not even with perl? 05:16:49 I've tried it with Perl, Python, and Ruby -- you run into all kinds of weird problems. 05:16:52 synx: that's what I want to say. 05:17:23 Uh, sorry -- I thought that you were piping the code. 05:17:39 Yes, that use is fine, and yes, everything still works fine. 05:17:43 oh, yeah piping the code has..issues 05:18:05 Relates to my problem with multiple languages in the same file I'd say. 05:19:30 eli: in a word, I will output what I want, it will don't output what I don't want. but now is : I will output what I want, I MUST suppress the output what I don't want. 05:20:21 eli: Last question: I think plt-r5rs has no this problem. so I think it maybe have another way to suppress the expression result? like , mz configure ? 05:20:44 chylli: I can only repeat what I said above. 05:21:09 And re plt-r5rs, no -- it doesn't do the printouts, but that's because it's a very different langauge. 05:21:45 eli: ok, thanks again for your help 05:21:47 Again, so far you have exactly one weak case where you got undesired output. Why is this so important that you're willing to change a language to something as limited as r5rs. 05:21:53 ? 05:23:23 eli: No. I don't want to do that. I just look for a way. 05:23:55 chylli: Then just "live with it" for a few days -- after that you will end up in one of two places: 05:24:04 (a) you'll see how useful it is and like it 05:24:25 (b) you'll find more reasons why it's a horrible feature, and will have more material to come up with a concrete complaint on the mailing list. 05:24:54 Note that I'm *not* disqualifying (b). 05:25:13 And, BTW, I completely forgot -- there is a `current-print' argument that determines how these things get printed. 05:25:24 So you can simply add (current-print void) at the top of your code. 05:25:41 eli: yeah, thanks again. 05:25:42 But this is a global effect, which means that it might not play well with other code. 05:26:12 For example, you submit a bug, and the guy who debugs his library is getting crazy trying to figure out why nothing prints out like they expect to. 05:26:31 eli: you mean, there are some code to use this character to get to special behaviour ? 05:26:40 eli: oh 05:26:48 eli: haha. I got it. 05:26:53 chylli: Yes, like I said -- it's very useful for debugging... 05:26:57 -!- Summersault [n=root@189.107.157.209] has quit [Read error: 113 (No route to host)] 05:27:21 eli: I think I can put it in my .mzschemerc ? 05:28:25 chylli: That won't help much. 05:28:38 chylli: It's not loaded when you run a script in a module -- that's one thing. 05:28:54 chylli: It will make your REPL session also be pretty useless. 05:29:14 eli: you are right. 05:29:17 chylli: And even if it was working, it would mean that people who you send code to might see a different picture... 05:30:39 eli: ok. Now I know there is no other switch in mzscheme arguments. That's enough. I will try to live with it :) 05:31:14 chylli: OK -- like I said, if you still think it's a disaster after a few days, feel free to complain on the mailing list. 05:32:42 eli: I will do. thanks. 05:34:02 eli: interesting; i wish someone would document this oral history somewhere 05:35:25 klutometis: I *think* that it came up on the mailing list a couple of times or so. 05:35:52 But given that I have a headache the size of argentina, I'm likely to be wrong too. 05:36:15 eli: are you a contributor of plt scheme? 05:36:33 chylli: Yes, I'm part of the group. 05:36:46 -!- ambient [n=ambi@julma.lnet.fi] has quit [Read error: 145 (Connection timed out)] 05:36:53 -!- annodomini [n=lambda@wikipedia/lambda] has quit [] 05:37:21 eli: glad to meet you and thanks for your enthusiastic help. 05:37:33 -!- athos [n=philipp@92.250.250.68] has quit ["leaving"] 05:37:41 chylli: No problems. 05:47:20 -!- ASau [n=user@193.138.70.52] has quit ["off"] 06:05:05 -!- rushi [n=rushi@rushispowerbook.dynamic.ucsd.edu] has quit [] 06:27:12 QinGW1 [n=wangqing@203.86.81.2] has joined #scheme 06:27:12 -!- QinGW [n=wangqing@203.86.81.2] has quit [Read error: 104 (Connection reset by peer)] 06:38:24 -!- cracki [n=cracki@sglty.kawo2.RWTH-Aachen.DE] has quit ["If technology is distinguishable from magic, it is insufficiently advanced."] 06:40:21 -!- snurble [n=snurble@s83-191-238-2.cust.tele2.se] has quit [Read error: 104 (Connection reset by peer)] 06:41:11 snurble [n=snurble@s83-191-238-2.cust.tele2.se] has joined #scheme 06:45:04 mmc [n=mima@esprx01x.nokia.com] has joined #scheme 06:47:55 -!- lowlycoder [n=x@unaffiliated/lowlycoder] has quit ["leaving"] 06:58:12 -!- mmc [n=mima@esprx01x.nokia.com] has quit [Remote closed the connection] 07:07:25 cracki [n=cracki@43-055.eduroam.RWTH-Aachen.DE] has joined #scheme 07:15:30 mmc [n=mima@esprx01x.nokia.com] has joined #scheme 07:20:46 -!- cky [n=cky@h80.187.132.98.ip.windstream.net] has quit [Nick collision from services.] 07:20:52 cky [n=cky@h211.130.132.98.ip.windstream.net] has joined #scheme 07:37:20 elderK [n=elderK@222-152-15-122.jetstream.xtra.co.nz] has joined #scheme 07:38:47 ASau [n=user@host159-230-msk.microtest.ru] has joined #scheme 07:40:05 ASau` [n=user@host158-230-msk.microtest.ru] has joined #scheme 07:40:46 npe [n=npe@195.207.5.2] has joined #scheme 07:46:44 -!- afgawgawe [n=oijerger@host250.190-224-109.telecom.net.ar] has left #scheme 07:48:42 -!- ASau [n=user@host159-230-msk.microtest.ru] has quit [Remote closed the connection] 07:48:52 ASau [n=user@host159-230-msk.microtest.ru] has joined #scheme 07:53:28 blandest [n=blandest@softhouse.is.ew.ro] has joined #scheme 07:55:19 -!- jao [n=jao@52.Red-83-43-32.dynamicIP.rima-tde.net] has quit [Read error: 110 (Connection timed out)] 07:58:31 rushi [i=thinknot@cpe-66-75-245-63.san.res.rr.com] has joined #scheme 08:04:44 -!- Pepe__ is now known as Pepe_ 08:13:18 -!- mmc [n=mima@esprx01x.nokia.com] has quit [Remote closed the connection] 08:14:20 -!- blandest [n=blandest@softhouse.is.ew.ro] has quit [Read error: 110 (Connection timed out)] 08:19:46 -!- synthase [n=synthase@adsl-220-176-61.mob.bellsouth.net] has quit [Read error: 110 (Connection timed out)] 08:22:32 jewel_ [n=jewel@dsl-247-203-169.telkomadsl.co.za] has joined #scheme 08:23:07 jao [n=jao@74.Red-80-24-4.staticIP.rima-tde.net] has joined #scheme 08:23:12 Sveklo2 [n=sveklo@a88-115-8-123.elisa-laajakaista.fi] has joined #scheme 08:28:36 -!- Sveklo [n=user@a88-115-8-123.elisa-laajakaista.fi] has quit [Remote closed the connection] 08:40:36 -!- Modius_ [n=Modius@24.174.112.56] has quit [Read error: 110 (Connection timed out)] 08:52:45 hkBst [n=hkBst@gentoo/developer/hkbst] has joined #scheme 08:54:28 hi. I think I find a bug of mysql.plt. but I don't know the authors email address. what should I do ? 08:56:32 chylli: use one of the plt mailing lists 08:56:50 ok, thanks 09:00:36 -!- antoszka [n=antoszka@unaffiliated/antoszka] has quit ["+++ killed by SIGSEGV +++"] 09:01:36 Nuke86 [n=talron@dallal1.fix.netvision.net.il] has joined #scheme 09:11:41 kib2 [n=kib@bd137-1-82-228-159-28.fbx.proxad.net] has joined #scheme 09:16:32 r5rs doesn't seem to have facilities for appending to a file, does it? 09:16:40 i take it posix extensions are in order 09:17:05 incubot: just got back from bruno, not as good as borat 09:17:08 GNU CLISP is a Common Lisp implementation by Bruno Haible of Karlsruhe University 09:17:41 klutometis: yeah, no r5rs append-file, but most implementations have it anyway B^) 09:19:07 hkBst: seems like a bizarre omission doesn't it? the behaviour is unspecified, apparently: 09:19:10 "for call-with-output-file, the effect is unspecified if the file already exists." 09:19:32 that seems to imply that appending is not contrary to r5rs, but not mandated 09:20:25 -!- saccade_ [n=saccade@dhcp-18-188-74-28.dyn.mit.edu] has quit ["This computer has gone to sleep"] 09:24:40 -!- MichaelRaskin [n=MichaelR@213.171.48.239] has left #scheme 09:24:52 mmc [n=mima@esprx01x.nokia.com] has joined #scheme 09:25:50 MichaelRaskin [n=MichaelR@213.171.48.239] has joined #scheme 09:29:18 -!- QinGW1 [n=wangqing@203.86.81.2] has quit [Read error: 104 (Connection reset by peer)] 09:29:20 QinGW [n=wangqing@203.86.81.2] has joined #scheme 09:31:29 -!- elderK [n=elderK@222-152-15-122.jetstream.xtra.co.nz] has quit [] 09:32:16 elderK [n=elderK@222-152-15-122.jetstream.xtra.co.nz] has joined #scheme 09:33:06 klutometis: yeah, it's a pretty silly omission indeed 09:38:47 antoszka [n=antoszka@unaffiliated/antoszka] has joined #scheme 09:44:05 Maddas [n=Maddas@tardis-b23.ee.ethz.ch] has joined #scheme 09:46:20 -!- jao [n=jao@74.Red-80-24-4.staticIP.rima-tde.net] has quit [Read error: 110 (Connection timed out)] 09:50:01 -!- ASau [n=user@host159-230-msk.microtest.ru] has quit [Remote closed the connection] 09:50:05 ASau [n=user@host159-230-msk.microtest.ru] has joined #scheme 09:50:52 -!- cracki [n=cracki@43-055.eduroam.RWTH-Aachen.DE] has quit [Read error: 110 (Connection timed out)] 10:01:29 Mr-Cat [n=Miranda@hermes.lanit.ru] has joined #scheme 10:04:01 -!- QinGW [n=wangqing@203.86.81.2] has quit [Read error: 104 (Connection reset by peer)] 10:09:00 Edico [n=Edico@unaffiliated/edico] has joined #scheme 10:11:39 cracki [n=cracki@43-055.eduroam.RWTH-Aachen.DE] has joined #scheme 10:12:01 -!- rushi [i=thinknot@cpe-66-75-245-63.san.res.rr.com] has quit [Read error: 113 (No route to host)] 10:23:21 saccade_ [n=saccade@65-78-24-131.c3-0.smr-ubr1.sbo-smr.ma.cable.rcn.com] has joined #scheme 10:23:37 rushi [i=thinknot@cpe-66-75-245-63.san.res.rr.com] has joined #scheme 10:27:23 -!- Axioplase is now known as Axioplase_ 10:35:41 -!- MichaelRaskin [n=MichaelR@213.171.48.239] has left #scheme 10:36:29 MichaelRaskin [n=MichaelR@213.171.48.239] has joined #scheme 10:44:06 -!- hkBst [n=hkBst@gentoo/developer/hkbst] has quit [Read error: 104 (Connection reset by peer)] 10:46:04 -!- rushi [i=thinknot@cpe-66-75-245-63.san.res.rr.com] has quit [Read error: 113 (No route to host)] 10:48:28 rushi [i=thinknot@cpe-66-75-245-63.san.res.rr.com] has joined #scheme 11:00:23 -!- socialite [n=piespy@dynamic-87-105-191-57.ssp.dialog.net.pl] has quit [Read error: 110 (Connection timed out)] 11:00:31 -!- sladegen [n=nemo@unaffiliated/sladegen] has quit [Read error: 110 (Connection timed out)] 11:01:12 -!- Mr-Cat [n=Miranda@hermes.lanit.ru] has quit ["Miranda IM! Smaller, Faster, Easier. http://miranda-im.org"] 11:20:10 lowlycoder [n=x@unaffiliated/lowlycoder] has joined #scheme 11:28:10 -!- lowlycoder [n=x@unaffiliated/lowlycoder] has quit ["leaving"] 11:28:34 rushi_ [i=thinknot@cpe-66-75-245-63.san.res.rr.com] has joined #scheme 11:28:51 -!- rushi [i=thinknot@cpe-66-75-245-63.san.res.rr.com] has quit [Read error: 113 (No route to host)] 11:34:30 blandest [n=blandest@softhouse.is.ew.ro] has joined #scheme 11:44:09 -!- stepnem [n=stepnem@topol.nat.praha12.net] has quit [Read error: 104 (Connection reset by peer)] 11:46:44 -!- saccade_ [n=saccade@65-78-24-131.c3-0.smr-ubr1.sbo-smr.ma.cable.rcn.com] has quit ["This computer has gone to sleep"] 11:50:32 blandest1 [n=blandest@softhouse.is.ew.ro] has joined #scheme 11:50:54 saccade_ [n=saccade@65-78-24-131.c3-0.smr-ubr1.sbo-smr.ma.cable.rcn.com] has joined #scheme 11:51:33 soupdragon [n=f@amcant.demon.co.uk] has joined #scheme 11:52:00 -!- blandest [n=blandest@softhouse.is.ew.ro] has quit [Read error: 104 (Connection reset by peer)] 11:54:40 synthase [n=synthase@adsl-220-176-61.mob.bellsouth.net] has joined #scheme 11:58:36 rushi [i=thinknot@cpe-66-75-245-63.san.res.rr.com] has joined #scheme 11:59:11 stepnem [n=stepnem@topol.nat.praha12.net] has joined #scheme 12:02:16 Fare [n=Fare@c-98-216-111-110.hsd1.ma.comcast.net] has joined #scheme 12:05:43 -!- rushi_ [i=thinknot@cpe-66-75-245-63.san.res.rr.com] has quit [Read error: 113 (No route to host)] 12:09:35 annodomini [n=lambda@75.69.96.104] has joined #scheme 12:11:24 -!- rushi [i=thinknot@cpe-66-75-245-63.san.res.rr.com] has quit [Read error: 113 (No route to host)] 12:11:29 rushi [i=thinknot@cpe-66-75-245-63.san.res.rr.com] has joined #scheme 12:15:56 -!- proq [n=user@unaffiliated/proqesi] has quit [Success] 12:18:32 cracki_ [n=cracki@43-055.eduroam.RWTH-Aachen.DE] has joined #scheme 12:24:22 ankou [n=quassel@87.166.242.10] has joined #scheme 12:26:45 Hi, I would like to learn programming and thinking in Lisp/Scheme but the only online resource I can find i HTDP. I don't know if this is the right book since I have already experience in other (mostly imperative but also a bit functional) languages. Can I have some advice, please? 12:27:02 HtDP is quite nice 12:27:12 SICP 12:27:15 there's also the easier bootstrapworld.org on the same principle 12:27:20 SICP is good if you're a math buff 12:27:34 no its not 12:29:45 -!- rstandy [n=rastandy@net-93-144-170-242.t2.dsl.vodafone.it] has quit [Read error: 110 (Connection timed out)] 12:30:29 ejs [n=eugen@127-26-178-94.pool.ukrtel.net] has joined #scheme 12:31:06 sladegen [n=nemo@unaffiliated/sladegen] has joined #scheme 12:32:52 socialite [n=piespy@dynamic-87-105-191-57.ssp.dialog.net.pl] has joined #scheme 12:34:39 -!- stepnem [n=stepnem@topol.nat.praha12.net] has quit [SendQ exceeded] 12:35:13 -!- blandest1 [n=blandest@softhouse.is.ew.ro] has quit [Read error: 110 (Connection timed out)] 12:36:03 -!- cracki [n=cracki@43-055.eduroam.RWTH-Aachen.DE] has quit [Read error: 110 (Connection timed out)] 12:36:15 ankou: On Lisp is also available on-line (it is also available as Debian package). 12:36:33 Although On Lisp is rather advanced. 12:39:22 blandest [n=blandest@softhouse.is.ew.ro] has joined #scheme 12:41:31 rouslan [n=Rouslan@pool-71-161-65-117.cncdnh.east.myfairpoint.net] has joined #scheme 12:41:59 -!- rushi [i=thinknot@cpe-66-75-245-63.san.res.rr.com] has quit [Read error: 113 (No route to host)] 12:42:02 rushi_ [i=thinknot@cpe-66-75-245-63.san.res.rr.com] has joined #scheme 12:42:54 I just started to read HTDP and it says that it's not really teaching scheme? Maybe I will continue reading since it could be interesting but what are good and complete scheme resources anyway? I think SICP is similiar, isn't it? 12:43:31 ankou: I haven't read HtDP. But there are several books which can be used to learn Scheme which aren't about Scheme. 12:44:27 you don't want to learn "Scheme" 12:44:34 Scheme is not worth learning. 12:44:37 ankou: They use Scheme as a vehicle for teaching about computing. The HtDP title makes me suspect it is such a book. 12:44:46 the ideas behind Scheme are worth it 12:45:06 HtDP is about programming, not about Scheme. It uses Scheme. 12:45:15 So is SICP. So is any good book. 12:45:38 PLAI too, which is available on-line (I forgot the title however). 12:46:05 well, if the ideas in scheme are so powerfull as some people say it has to be a powerfull programming language, so after reading HTPD I will need additional material to master scheme 12:46:29 PLAI is kind of a sequel to HtDP 12:46:30 According to eli, PLAI is better than SICP, because SICP sometimes teaches the wrong things. 12:46:43 SICP is a bit dated 12:46:48 but still very good 12:46:53 what's PLAI? 12:46:59 but yeah, not the best introduction anymore 12:49:15 however this doesn't answer my question. What are good resources to learn scheme itself after reading HTDP? 12:49:17 ankou: Yes, there is a lot to learn about programming languages. 12:49:41 I know. 12:49:57 PLAI = Programming Languages: Application and Implementation, by Shiram Krishnamurthi from Brown University. It is available as a PDF. 12:50:39 Lisp in Small Pieces (LiSP) is an excellent book too. 12:51:00 And I want to learn the theoretical stuff but I also want to use it so some practical material on Scheme would be good as well 12:52:06 ankou: There are free software projects where people work on Scheme and use it in very practical ways. Maybe it is an idea to join one of them. 12:52:18 On Lisp is rubbish 12:52:34 soupdragon: What is rubbish about it? 12:52:35 SICP isn't dated.. 12:52:52 this stuff doesn't go out of date 12:53:16 pbusser2 don't you think it would be good to know about scheme before using it? 12:53:49 ankou: I did both at the same time. 12:54:29 blackened` [n=blackene@89.102.28.224] has joined #scheme 12:54:34 ankou: to start on scheme alone you can start by readin "teach scheme yourself in fixnum days" or "The Scheme Programming Language" or "An Introduction to Scheme and its Implementation". all online, the last one a bit incomplete. read r5rs along with any of them, too. then, when you feel comfortable you can skip boring purely scheme sections programming texts like sicp/htdp that use scheme. 12:54:49 *sladegen* 's fingers hurt. 12:55:24 -!- annodomini [n=lambda@wikipedia/lambda] has quit [] 12:55:50 stepnem [n=stepnem@topol.nat.praha12.net] has joined #scheme 12:56:18 Yes, R5RS is good to have. 12:57:38 annodomini [n=lambda@75.69.96.104] has joined #scheme 12:58:17 ankou: reading /topic is good, too. 12:58:42 -!- annodomini [n=lambda@wikipedia/lambda] has quit [Client Quit] 13:02:22 rstandy [n=rastandy@net-93-144-54-62.t2.dsl.vodafone.it] has joined #scheme 13:04:19 camt [n=camt@mail.propack.on.ca] has joined #scheme 13:04:44 langmartin [n=user@exeuntcha.tva.gov] has joined #scheme 13:07:28 -!- stabin [n=stabin@87.252.249.2] has quit ["KVIrc 3.4.0 Virgo http://www.kvirc.net/"] 13:09:20 -!- elderK [n=elderK@222-152-15-122.jetstream.xtra.co.nz] has quit [Read error: 104 (Connection reset by peer)] 13:11:28 elderK [n=elderK@222-152-15-122.jetstream.xtra.co.nz] has joined #scheme 13:14:19 -!- Judofyr [n=Judofyr@c2391BF51.dhcp.bluecom.no] has quit [Remote closed the connection] 13:17:23 -!- ejs [n=eugen@127-26-178-94.pool.ukrtel.net] has quit ["This computer has gone to sleep"] 13:23:50 -!- cracki_ [n=cracki@43-055.eduroam.RWTH-Aachen.DE] has quit ["If technology is distinguishable from magic, it is insufficiently advanced."] 13:25:13 ejs [n=eugen@127-26-178-94.pool.ukrtel.net] has joined #scheme 13:25:54 -!- antoszka [n=antoszka@unaffiliated/antoszka] has quit ["+++ killed by SIGSEGV +++"] 13:28:32 bombshelter13_ [n=bombshel@toronto-gw.adsl.erx01.mtlcnds.ext.distributel.net] has joined #scheme 13:31:15 bweaver [n=user@68.60.0.190] has joined #scheme 13:35:43 annodomini [n=lambda@130.189.179.215] has joined #scheme 13:39:41 jlongster [n=user@75-148-111-133-Chattanooga.hfc.comcastbusiness.net] has joined #scheme 13:40:15 -!- offby1 [n=user@pdpc/supporter/monthlybyte/offby1] has quit [Remote closed the connection] 13:40:21 -!- snurble [n=snurble@s83-191-238-2.cust.tele2.se] has quit [Read error: 104 (Connection reset by peer)] 13:40:26 offby1 [n=user@q-static-138-125.avvanta.com] has joined #scheme 13:42:02 -!- IceD^^ [n=theiced@93.84.112.80] has quit ["Leaving"] 13:42:12 snurble [n=snurble@83.191.238.2] has joined #scheme 13:44:12 cracki [n=cracki@sglty.kawo2.RWTH-Aachen.DE] has joined #scheme 13:46:36 -!- Adamant [n=Adamant@unaffiliated/adamant] has quit [] 13:49:05 Adamant [n=Adamant@c-76-29-188-60.hsd1.ga.comcast.net] has joined #scheme 13:56:58 -!- saccade_ [n=saccade@65-78-24-131.c3-0.smr-ubr1.sbo-smr.ma.cable.rcn.com] has quit ["This computer has gone to sleep"] 14:01:41 -!- ejs [n=eugen@127-26-178-94.pool.ukrtel.net] has quit ["This computer has gone to sleep"] 14:02:16 -!- Fare [n=Fare@c-98-216-111-110.hsd1.ma.comcast.net] has quit ["Leaving"] 14:06:53 -!- npe [n=npe@195.207.5.2] has quit [Connection reset by peer] 14:07:00 npe [n=npe@195.207.5.2] has joined #scheme 14:08:17 -!- socialite [n=piespy@dynamic-87-105-191-57.ssp.dialog.net.pl] has quit [Read error: 110 (Connection timed out)] 14:09:08 athos [n=philipp@92.250.250.68] has joined #scheme 14:10:14 -!- sladegen [n=nemo@unaffiliated/sladegen] has quit [Read error: 110 (Connection timed out)] 14:11:02 -!- dnm_ [n=dnm@c-68-49-47-248.hsd1.va.comcast.net] has quit [Client Quit] 14:33:35 -!- ASau [n=user@host159-230-msk.microtest.ru] has quit [Read error: 110 (Connection timed out)] 14:34:40 metasyntax|work [n=taylor@75-149-208-121-Illinois.hfc.comcastbusiness.net] has joined #scheme 14:42:14 davazp [n=user@79.153.148.56] has joined #scheme 14:42:51 -!- jewel_ is now known as jewel 14:50:48 -!- Adamant [n=Adamant@unaffiliated/adamant] has quit [Read error: 110 (Connection timed out)] 14:53:02 -!- blandest [n=blandest@softhouse.is.ew.ro] has quit [Read error: 60 (Operation timed out)] 14:54:18 blandest [n=blandest@softhouse.is.ew.ro] has joined #scheme 14:58:31 -!- bweaver [n=user@68.60.0.190] has quit [Read error: 110 (Connection timed out)] 15:00:06 -!- ASau` [n=user@host158-230-msk.microtest.ru] has quit ["off"] 15:10:01 -!- rushi_ [i=thinknot@cpe-66-75-245-63.san.res.rr.com] has quit [] 15:10:18 parolang [n=user@keholmes.oregonrd-wifi-1261.amplex.net] has joined #scheme 15:18:24 -!- blandest [n=blandest@softhouse.is.ew.ro] has quit [Read error: 104 (Connection reset by peer)] 15:35:35 reprore [n=reprore@ntkngw261071.kngw.nt.ftth.ppp.infoweb.ne.jp] has joined #scheme 15:46:21 Edico_ [n=Edico@unaffiliated/edico] has joined #scheme 15:52:40 bweaver [n=user@75-148-111-133-Chattanooga.hfc.comcastbusiness.net] has joined #scheme 15:54:02 -!- reprore [n=reprore@ntkngw261071.kngw.nt.ftth.ppp.infoweb.ne.jp] has quit [Read error: 60 (Operation timed out)] 15:56:10 reprore_ [n=reprore@i118-19-38-17.s04.a014.ap.plala.or.jp] has joined #scheme 15:56:26 -!- Edico [n=Edico@unaffiliated/edico] has quit [Connection timed out] 15:58:29 -!- Nuke86 [n=talron@dallal1.fix.netvision.net.il] has quit [Success] 16:01:38 repror___ [n=reprore@ntkngw261071.kngw.nt.ftth.ppp.infoweb.ne.jp] has joined #scheme 16:06:01 dammit; all this htpd advocacy is repulsive 16:06:23 why does everyone prefer the soft and oily art all of the sudden: are you eunuchs? 16:06:47 *offby1* stares blankly 16:07:37 -!- chylli [n=lchangyi@60.211.218.227] has quit [Read error: 104 (Connection reset by peer)] 16:07:43 offby1: is that before you break into a perfect falsetto? ;) 16:09:04 Judofyr [n=Judofyr@c8F99BF51.dhcp.bluecom.no] has joined #scheme 16:11:58 -!- jonrafkind [n=jon@98.202.86.149] has quit [Read error: 110 (Connection timed out)] 16:13:32 -!- MichaelRaskin [n=MichaelR@213.171.48.239] has quit [Remote closed the connection] 16:15:56 ASau [n=user@193.138.70.52] has joined #scheme 16:16:15 ASau` [n=user@193.138.70.52] has joined #scheme 16:20:24 jonrafkind [n=jon@crystalis.cs.utah.edu] has joined #scheme 16:23:57 -!- reprore_ [n=reprore@i118-19-38-17.s04.a014.ap.plala.or.jp] has quit [Read error: 110 (Connection timed out)] 16:29:21 Adamant [n=Adamant@c-76-29-188-60.hsd1.ga.comcast.net] has joined #scheme 16:32:20 -!- npe [n=npe@195.207.5.2] has quit [] 16:36:44 Nuke86 [n=talron@bzq-84-108-250-146.cablep.bezeqint.net] has joined #scheme 16:36:52 -!- repror___ [n=reprore@ntkngw261071.kngw.nt.ftth.ppp.infoweb.ne.jp] has quit [Read error: 54 (Connection reset by peer)] 16:37:23 reprore_ [n=reprore@ntkngw261071.kngw.nt.ftth.ppp.infoweb.ne.jp] has joined #scheme 16:40:19 -!- snurble [n=snurble@83.191.238.2] has quit [Read error: 104 (Connection reset by peer)] 16:41:50 snurble [n=snurble@s83-191-238-2.cust.tele2.se] has joined #scheme 16:42:44 -!- davazp [n=user@79.153.148.56] has quit [Remote closed the connection] 16:43:25 -!- synthase [n=synthase@adsl-220-176-61.mob.bellsouth.net] has quit [Success] 16:52:18 -!- Adamant [n=Adamant@unaffiliated/adamant] has quit [Connection timed out] 17:04:01 sladegen [n=nemo@unaffiliated/sladegen] has joined #scheme 17:07:10 saccade_ [n=saccade@65-78-24-131.c3-0.smr-ubr1.sbo-smr.ma.cable.rcn.com] has joined #scheme 17:11:05 socialite [n=piespy@dynamic-87-105-191-57.ssp.dialog.net.pl] has joined #scheme 17:13:23 klutometis: What is wrong with HtDP in your view? 17:16:24 -!- reprore_ [n=reprore@ntkngw261071.kngw.nt.ftth.ppp.infoweb.ne.jp] has quit [Read error: 54 (Connection reset by peer)] 17:16:51 reprore_ [n=reprore@ntkngw261071.kngw.nt.ftth.ppp.infoweb.ne.jp] has joined #scheme 17:21:06 Fufie [n=innocent@86.80-203-225.nextgentel.com] has joined #scheme 17:25:40 it's soft and oily, apparently 17:25:41 mrsolo [n=mrsolo@nat/yahoo/x-f16862ea01f681f7] has joined #scheme 17:31:50 -!- sladegen [n=nemo@unaffiliated/sladegen] has quit [Nick collision from services.] 17:31:58 ambient [n=ambi@julma.lnet.fi] has joined #scheme 17:32:01 sladegen [n=nemo@unaffiliated/sladegen] has joined #scheme 17:33:41 -!- Kusanagi [n=Lernaean@unaffiliated/kusanagi] has quit [] 17:33:43 -!- saccade_ [n=saccade@65-78-24-131.c3-0.smr-ubr1.sbo-smr.ma.cable.rcn.com] has quit ["This computer has gone to sleep"] 17:34:21 -!- reprore_ [n=reprore@ntkngw261071.kngw.nt.ftth.ppp.infoweb.ne.jp] has quit [Read error: 54 (Connection reset by peer)] 17:37:11 Kusanagi [n=Lernaean@unaffiliated/kusanagi] has joined #scheme 17:39:14 cornucopic [n=r00t@115.184.208.229] has joined #scheme 17:41:28 rushi [i=thinknot@cpe-66-75-245-63.san.res.rr.com] has joined #scheme 17:42:36 reprore [n=reprore@i118-19-38-17.s04.a014.ap.plala.or.jp] has joined #scheme 17:42:43 -!- langmartin [n=user@exeuntcha.tva.gov] has quit [Read error: 104 (Connection reset by peer)] 17:42:53 langmartin [n=user@exeuntcha.tva.gov] has joined #scheme 17:46:49 reprore__ [n=reprore@i118-19-38-17.s04.a014.ap.plala.or.jp] has joined #scheme 17:47:58 repro____ [n=reprore@ntkngw598092.kngw.nt.ftth.ppp.infoweb.ne.jp] has joined #scheme 17:48:15 -!- socialite [n=piespy@dynamic-87-105-191-57.ssp.dialog.net.pl] has quit [Read error: 110 (Connection timed out)] 17:48:22 -!- reprore [n=reprore@i118-19-38-17.s04.a014.ap.plala.or.jp] has quit [Success] 17:48:55 -!- reprore__ [n=reprore@i118-19-38-17.s04.a014.ap.plala.or.jp] has quit [Read error: 104 (Connection reset by peer)] 17:50:46 socialite [n=piespy@78.8.143.18] has joined #scheme 17:59:35 -!- elderK [n=elderK@222-152-15-122.jetstream.xtra.co.nz] has quit [] 18:03:22 pbusser2: htdp is not interesting: there's no streams or amb; and people juxtapose it with its more noble cousin, SICP, whom they deem "dangerous" or "harmful" 18:04:53 pbusser2: it has the same unannealed verbosity that felleisen brought to r6rs 18:05:27 -!- repro____ [n=reprore@ntkngw598092.kngw.nt.ftth.ppp.infoweb.ne.jp] has quit [No route to host] 18:05:42 Fare [n=Fare@ita4fw1.itasoftware.com] has joined #scheme 18:06:13 *eli* coughs 18:06:25 What exactly did Felleisen bring to R6RS? 18:06:50 eli: indirection 18:07:02 Where? 18:07:26 indirection? 18:07:30 And as for the tricks that SICP is full of -- they're cute and interesting, in a way that is utterly useless for people who want to learn about programming and/or learn about Scheme. 18:08:41 The best example of that I have is the two.5 weeks of `set-c[ad]r!' *HELL* that SICP and 6.001 inflicts on the readers and students. 18:09:18 eli: but that's because of the political decision to make cons cells immutable 18:09:20 Where MIT students were suffering just like anyone else in that regards, and getting the same time wastage as anyone else. 18:09:29 HUH? 18:10:04 How is *SICP* related in any way to the COMPLETELY UN-POLITICAL decision to make cons cells immutable in PLT Scheme? 18:10:22 klutometis, anti-political. Making cons cells immutable is one of the greatest things done lately by PLT 18:10:48 In case it's news for anyone here, the world is generally moving (fast!) towards immutable data structures. 18:11:08 SICP is/was like a solid rock in still inflicting the pains of pointer manipulation on its students. 18:11:08 if something is not an attempt at politicking, it's going against the crowd and making cons cells immutable at long last (by default) 18:12:32 I guess it would make the authors eventually get a new version out that dumps that part -- or at leastr downplay its role to a more appropriate level. But unfortunately, its authors have deserted the book and the course (and in fact, they're commonly cited as among the first to advocate eliminating the course). 18:13:39 This is very much analogous to using `goto' in an "intro" course -- it's obviously a bad idea these days, but that wasn't always the case, and it took time for people and for books to adapt. 18:14:18 SICP does have some brief mentions of it, but nothing central, since it's now a fringe tool that is used in some extremely rare situations. 18:15:39 But that's because SICP was written after `goto' was abolished (or during the process of abolishing it). It's therefore amusing that some people (here and elsewhere) still consider SICP as some kind of an unsurpassed holy grail. 18:16:12 And as for the tricks that SICP is full of -- they're cute and interesting, in a way that is utterly useless for people who want to learn about programming and/or learn about Scheme. 18:16:17 thats bullshit 18:16:45 You're thinking of hakmem 18:17:10 It's a book like many other books; it gets outdated like other books; it was certainly a book that was well above average, and because of that it was popular for an exceptionally long time -- but holding on to it is ridiculous. 18:17:39 SICP is the one where they teach things like recursion and procedural abstraction 18:18:02 soupdragon: Thanks for your thorough analysis and deep rebuttal. "thats bullshit" -- I thoroughly enjoyed that review of my critique. 18:18:06 these things do not date 18:18:24 soupdragon: Thanks for your thorough analysis and deep rebuttal. "thats bullshit" -- I thoroughly enjoyed that review of my critique. 18:18:39 riad what I wrote after 18:18:45 *eli* shouts "echo"! 18:18:55 eli: back to useful things. 18:19:05 Fare: Yes, thanks for the reminder. 18:19:07 eli: how can I help with FFI ? 18:19:21 Fare: You really want that GCC hack? 18:19:32 have you ever looked at CFFI, or any such stuff? 18:19:49 (Ideally, one could "just" reuse the very same specs that CFFI-grovel uses) 18:20:04 Do you have a particular pointer? 18:20:10 Hagaer [n=user@27.62.broadband3.iol.cz] has joined #scheme 18:20:12 eli: "perfect" was a classic example of felleisian indirection; the mensch is too clever for his own good 18:20:17 eli, I don't want to stoke the flames here, but what do you recommend as a teaching text better than SICP? 18:20:33 eli: i've heard people make the case that immutable pairs were anti-mutation more than performance-interested 18:20:38 (I'm not mounting a defense, I'm merely curious) 18:20:50 Fare: That is, something more specific than a pointer to this part, and not the whole interface. 18:21:45 gnomon: IMO, there is no replacement for SICP -- HtDP is certainly not a replacement, and has never intended to be one. (Unless you consider SICP only at a value of educating people on the art of programming, but there's plenty of competition in that category.) 18:21:51 gnomon: Nothing in the world beats sick pee! 18:22:21 gnomon: PLAI is sort of close to it, but unlike SICP it is very focused on its subject. 18:22:25 Hagaer: sissip 18:22:54 Although Concepts, Techniques, and Models of Computer Programming seemed nice to me. 18:23:23 eli: for instance, see the osicat package, posix/basic-unixint.lisp 18:23:36 Hagaer: that's a good sequel but way too advanced for someone that's not read SICP 18:23:36 eli, hm; I don't think I've given PLAI a proper showing, then. Thanks for the pointer. 18:23:36 if we could "just reuse it", that'd be swell 18:23:38 klutometis: (a) there has been absolutely no involvement of Felleisen in R6RS. I can promise you that there were no extensive internal discussions (or *any* kind of discussions) where Matthew asked him what to do. 18:24:26 hotblack23 [n=jh@p5B0579AE.dip.t-dialin.net] has joined #scheme 18:24:30 -!- annodomini [n=lambda@wikipedia/lambda] has quit [] 18:25:19 klutometis: As for immutable pairs -- the reason for the PLT move is *absolutely* technical. Matthew is -- very unsurprisingly -- similar to most implementors: he has no desire to participate in all kinds of flamewars. If you look at his blog post about the immutable pairs you'll see a long piece of text that he wrote (which is untypical) -- and it's all very technical; no politics involved. 18:26:45 In fact, he specifically said that Schemers in general agree that immutable pairs is a good idea, but everyone is worried about making the switch because of legacy code -- so he volunteered, in a sense, his own implementation and the people involved to actually try it out and see just how much damage is done, and how difficult it is to port legacy code. 18:26:53 http://common-lisp.net/gitweb?p=projects/osicat/osicat.git;a=blob;f=posix/basic-unixint.lisp;hb=HEAD 18:27:00 -rudybot:#scheme- http://tinyurl.com/lxyxn4 18:28:04 gnomon: PLAI is not like SICP, it's just kind of like the same flavor. 18:29:18 no MSG added? 18:30:38 Fare: It's definitely not going to look like that. 18:31:19 what would it look like? 18:31:33 r00t_ [n=r00t@115.184.226.153] has joined #scheme 18:31:36 and how would you grovel the constants? 18:32:24 The constants would look kind of similar; but all done in a single statement (since each statement will invoke the C compiler) 18:32:40 The ctypes are not going to be automatically extractable. 18:33:01 rdd` [n=rdd@c83-250-157-93.bredband.comhem.se] has joined #scheme 18:33:20 -!- r00t_ [n=r00t@115.184.226.153] has quit [Client Quit] 18:34:09 why not? 18:34:46 I mean, it's easy enough to double-check size and signedness of ctypes -- and you need to use the symbolic name to write portable programs. 18:36:38 Fare: Because there's a bunch of stuff that you cannot extract from a C program -- starting from higher order functions and going downhill from there. 18:36:56 I'm not sure what you mean. 18:37:18 There are the things that you CAN and SHOULD extract automatically, least you go crazy trying to figure it manually. 18:37:29 r00t_ [n=r00t@115.184.226.153] has joined #scheme 18:37:44 size of various C types as vary from compiler/os/architecture is one of those things. 18:38:05 I don't want to tell my program that ssize_t is 16-bit here, 32-bit there, 64-bit yonder. 18:38:29 except if my OS is made by M$ in which case it's 16-bit on fridays and 32-bit the rest of the time 18:40:19 -!- snurble [n=snurble@s83-191-238-2.cust.tele2.se] has quit [Read error: 104 (Connection reset by peer)] 18:40:33 -!- r00t_ [n=r00t@115.184.226.153] has quit [Client Quit] 18:40:52 Nshag [i=user@Mix-Orleans-106-2-30.w193-248.abo.wanadoo.fr] has joined #scheme 18:41:16 davazp [n=user@56.Red-79-153-148.dynamicIP.rima-tde.net] has joined #scheme 18:41:26 Fare: There are two ways to extract information for "some C code" -- one is to parse the header file, and one is to do some runtime checking. I'm thinking about the latter, since there is no good code to do the former. 18:41:39 Fare: So, for example, I can't tell the names of the fields. 18:41:49 snurble [n=snurble@s83-191-238-2.cust.tele2.se] has joined #scheme 18:41:57 of what fields? 18:42:04 Fields of structs. 18:42:20 anyway -- there's no reason to do less than CFFI in terms of autodetection -- especially when their code is up for grabs. 18:42:26 Fare: And even if I could, I could extract their size, and their offset -- but that's hardly enough information to tell when some field is actually a pointer to a function and the type of that function. 18:42:46 I'm certainly not going to slave over translating bad CL code... 18:42:54 but given the names, you can check that the field exists, and extract its size, its offset (and even identify when it's a bit-field) 18:43:16 I'm not saying this is the best way to do things -- I'm just saying it's a shame to do worse. 18:43:34 And how do you distinguish between _int32, _long, _pointer, or (_fun _int _int -> _int) 18:43:35 and manual extraction is worse than auto extraction 18:43:53 for _int32, _long, _pointer -- see how CFFI-grovel does it. 18:44:07 Can't you just tell me what it does? 18:46:21 you get that struct, you assign a properly cast (-1) to the field, you see how big that is 18:46:22 -!- cornucopic [n=r00t@115.184.208.229] has quit [Read error: 110 (Connection timed out)] 18:47:01 and you bit-compare the result with what was previously full of zeroes. 18:47:11 Fare: But that gives you only the size -- all of the options I specified have the same size. 18:47:52 you don't have to care about anything but the size and offset, for a struct 18:48:07 if you need more than that, it's a change in API 18:48:26 oh, you might need to know the signedness, too 18:48:36 and the pointeriness 18:48:37 -!- rdd [n=user@c83-250-157-93.bredband.comhem.se] has quit [Connection timed out] 18:49:25 beyond that -- incompatible changes would require incompatible manual change on the Lisp code side, too, so it's OK to not grovel automatically 18:49:42 but size & signedness you definitely want to grovel 18:50:09 same for associating functions to symbolic type names, e.g. uid_t 18:50:59 the official C API guarantees that name -- but each platform varies on what that means. 18:52:54 names of types get compiled away to nothing anyway, so the C API is kind of useless in that regards. 18:53:28 It's as useful as saying: (define v1 4) ; size of uid_t 18:53:41 I don't know what `uid_t' is; but in any case you certainly care about more than size, sign-ness, and pointr-ness if you want to call the value as a function, or dereference it. 18:53:50 synx, it helps you write semi-portable code 18:53:56 synx, which isn't useless 18:54:24 semi-portable, hah. 18:54:34 so you don't have to rewrite it from Linux/ARM to SunOS/Sparc64 to MacOSX/x86_64 18:54:46 better than not-portable-at-all 18:54:55 klutometis, please don't troll like that earlier. 18:54:58 You still have to have a C compiler though, wherever you go. 18:55:19 eli: the other thing I care about is much more portable to trust than the sizes. 18:55:51 eli: I portably know that I can setuid() a uid_t, but not what a uid_t is. 18:55:59 If they just specified the size instead of a name that gets thrown away, it would be easier to write a FFI. As-is though you can't even tell what format a struct is going to be in. 18:56:19 synx, you can, thanks to a C compiler 18:56:59 Extracting offsets within a struct is a non-standard extension. 18:57:05 No, it's not, synx. 18:57:26 I'm pretty sure it is. What's the ISO C for a struct offset? 18:57:31 synx, CFFI-grovel does it for you. 18:57:39 like a member within that struct. 18:58:01 Assuming a two's-complement representation (or either a two's or one's complement), it's rather easy, too. 18:58:04 -!- rushi [i=thinknot@cpe-66-75-245-63.san.res.rr.com] has quit [] 18:58:20 #include , and use the offsetof operator. 18:58:45 synx, or memset some area to zero, set a field to plenty of ones, locate the ones. 18:59:13 then printf the result, that your Lisp program can use. 18:59:22 meh, complicated. If they'd just have a standard ABI it would work so much better. 18:59:40 they have not just one, but tens of standard ABIs 18:59:52 My biggest problem is writing a struct to a disk file, then reading it later on another computer. Or sending it over a socket, or whatnot. 19:00:04 synx: yeah if everyone were using an IBM 360, the world would be so much nicer! 19:00:09 While I don't think there is a standard definition of offsetof as a macro, there is a common definition that will generally work, and if you are willing to accept something other than a macro, then you can simply write: struct foo bar; size_t offset = ((size_t) (((char *) (& (bar -> field))) - ((char *) bar))); 19:00:41 Riastradh, yes -- but how do you support bitfields? 19:00:51 There's no standard way for a C programmer to guarantee that the binary format of their structures is going to be the same on all platforms. You can say __attribute__ ((packed)) on gcc, but there's still the endian-ness, so you're just kind of fucked. 19:00:57 my method works on bitfields, too 19:01:25 Fare, usually I avoid bit fields. 19:01:27 ergo, no standard ABI 19:01:28 synx, then don't do it that way. Instead, write bytes to a stream one by one. 19:01:44 Riastradh, maybe YOU do -- but not the interface you're talking to. 19:01:51 Riastradh: sorry; i began with a good-faith irritation at htdp partisanism, but quickly degenerated into immodest agitation. i'll blag it next time in private. 19:02:04 at work, we certainly need to access bitfields 19:02:12 klutometis, no, you began by trolling. 19:02:17 and even in OUR data-structures, we use them a lot. 19:02:31 I want to write(socket,&object,sizeof(object)); and have that work reliably. 19:02:56 Riastradh: it's only trolling if you meant to do it 19:03:10 saving a few bits each time on a few billion records allows us to save money on RAM for our servers, and fit more stuff in cache. 19:03:23 synx, otherwise, it's just plain stupid? 19:03:25 Riastradh: the good-faith irritation was before i opened my mouth 19:03:33 synx, then don't program in C 19:04:49 Fare: That is generally a good advice. :-) 19:04:51 Fare: heh, yeah. and I don't program in C :> 19:05:25 synx: then what do you complain above? Just extend your pity and compassion to those who do. 19:05:35 I however occasionally use people's C programs, which cannot make good assumptions about their file formats. Sometimes they even define protocols in terms of C structs... 19:06:08 Such things happen. 19:06:22 Forget pity and compassion, when other people get screwed over that hurts me too! I have to write FFIs you know. 19:07:09 synx: then extract the struct data on the platform they use, save it to a file, and use THAT as your file format spec 19:07:20 Thankfully postgresql had the tact to say "C sucks horribly, so just pretend our structures are sane, and nothing like what C demands." Otherwise their binary format would be completely inscrutable. 19:07:41 synx: how do they do that? 19:07:52 You'd have a postgresql client on one computer unable to communicate with a server on another computer. Nightmare fuel... 19:08:37 Fare: I forget exactly but they say "We're using a format that resembles C structs, but it's always packed in order with integers in network byte order." 19:08:43 -!- ankou [n=quassel@87.166.242.10] has quit [Read error: 104 (Connection reset by peer)] 19:09:27 Without those guarantees, C compilers are free to "optimize" structs all to hell and back. 19:09:30 and they have some compiler from that to C data accessors? 19:09:42 -!- davazp [n=user@56.Red-79-153-148.dynamicIP.rima-tde.net] has quit [Read error: 104 (Connection reset by peer)] 19:10:38 No, they just wrote the C manually. 19:11:21 "those who don't understand Lisp are condemned to reinvent Unix, poorly" 19:11:33 Anyone know of any examples of using json.plt to generate json output? 19:11:51 -!- rdd` is now known as rdd 19:13:46 Not a bad idea though... you could write a struct interface, and automatically make functions that convert a structure into "standard" binary format and back again for that machine, via htons and offsetof. 19:13:50 for that machine, for that compiler, that is... 19:14:26 synx: automatic code generation? Nah. You're talking about C programmers. 19:15:05 What next? Modular event handling through tail-calls? Direct-style web programming with continuations? 19:15:28 synx: you're obviously talking rubbish. 19:15:32 Fare: Ever looked at gsoap? 19:16:04 how do I write, in mit-scheme, a procedure (define (f a b) (/ a b)) that returns a floating point number (ex. 3.2) rather than a fractional number like a/b? 19:16:24 what next? A REPL for C? An interpreter for it? Everyone knows C is a compiled language. It just CAN'T be interpreted. Otherwise the universe crumbles. 19:16:31 haha Fare 19:17:04 In that case we live in a crumbled universe. 19:17:07 Edico_: exact->inexact 19:17:10 There is at least one C interpreter. 19:17:14 rudybot: eval (exact->inexact (/ 10 3)) 19:17:15 jlongster: your sandbox is ready 19:17:15 jlongster: ; Value: 3.3333333333333335 19:17:19 pbusser2: Make that two. :] 19:17:25 or three 19:17:36 pbusser2: 9x6=42 19:17:38 Fare is trolling. 19:18:04 rudybot, eval (/ 10 3) 19:18:05 Edico_: your sandbox is ready 19:18:05 Edico_: ; Value: 10/3 19:18:13 aham 19:18:29 Fare: You're correct, apart from Ch and CINT, I forgot the C interpreter in the UPS debugger. 19:18:45 Pity that UPS is dead. :/ 19:19:06 It didn't get delivered on time, or what? 19:19:22 there's also c-repl, and I remember an old one for MSDOS with persistent memory. 19:21:22 The best way to get rid of C is to make libraries which are better than whatever C libraries have to offer. 19:21:37 Which is a lot of work. 19:21:58 pbusser2: thus the appeal of things like "This is a pure java implementation of..." 19:22:46 Dammit, now I'll have to dump SSAX and go back to Expat! 19:22:48 synx: I guess so. The advantage of Java is that there are many people who actually use it to develop stuff. 19:24:19 I kind of like java's philosophy towards namespaces, and recently it's been getting pretty sleek. Still swallows memory like a black hole of course. 19:25:21 synx: What do you mean namespaces? The System.out.writeln() stuff, or what? 19:28:12 pbusser2: well, just that in a java program, everything is based on absolute namespaces, regardless of where you get the code. So if you set your classpath up right you can transparently use bits and pieces of other programs, and extend them in creative ways. 19:29:22 synx: True. 19:30:14 like Riastradh was talking about the other day, you can't use GnuPG without a central configuration keychain thing. With PLT's planet it's the same way. But java, you just point your classpath at some .jar files. 19:30:18 I don't like the "everything must be an object" stuff though. 19:30:37 dzhus [n=sphinx@95-24-188-80.broadband.corbina.ru] has joined #scheme 19:31:15 Eh, yeah java is really verbose. I don't like the "every object must have a mutex" thing. It's just not planned with memory efficiency as a priority. 19:32:05 synx: No, I mean that Java is object oriented, but only object oriented. And not every problem is best solved in an OO way. 19:32:38 synx: To me that rigidity became annoying after a while. 19:33:10 "everything must be an object" is more a ruby thing. java still has non-object raw types. The only eccentricity of java is that your main function must be in an object. 19:33:31 Every function must be a member function, is more along the lines of java's style. 19:33:37 i'd say one of the main *problems* in java is that *not* everything is an object 19:34:15 ecraven: That's looking at it from a language design point of view. I'm looking at it from a programmer who wants to get things done point of view. 19:34:42 the distinction between primitive (non-object) types and others is a major pita for programmers, in my experience 19:34:51 c# got that right, imho 19:35:01 ecraven: It's still better in Java than in C. ;-) 19:35:37 well, c doesn't claim consistency :) 19:35:47 -!- cky [n=cky@h211.130.132.98.ip.windstream.net] has quit [Read error: 110 (Connection timed out)] 19:36:52 ecraven: being an object in java comes with a lot of baggage (mutex, et al) so it's rather out of necessity that they have non-Object objects. Otherwise char[] bytes = new char[1024]; would have a thousand mutexes 19:37:17 What I meant is that when you try to solve a problem by writing a program, you create a model. And in Java the only possible model is by creating a model consisting of objects. 19:37:21 synx: they should transparently convert between object and primitive 19:37:37 so i can write 3.toString() :) 19:37:38 But in many cases breaking things down in objects isn't the best way to solve a problem. 19:37:55 There are classes like Integer and such. 19:38:11 pbusser2: i don't claim that it is, but i am convinced that consistency is a good thing, and java is not consistent 19:38:20 perhaps, pbusser2. I can't think of any examples myself really. 19:38:31 ecraven: Yes, that is one of the things I like about Scheme. 19:38:39 me too :) 19:39:00 though you could claim Scheme is very inconsistent, oo, functional, imperative, generic, all kinds of things :) 19:39:35 In java if you have a functional parser or something, you just stick it in an object and don't use the object. It's a degenerate case, but it seems to apply to general programming application... 19:43:41 antoszka [n=antoszka@unaffiliated/antoszka] has joined #scheme 19:47:40 ebzzry [n=ebzzry@124.217.90.193] has joined #scheme 19:49:06 -!- parolang [n=user@keholmes.oregonrd-wifi-1261.amplex.net] has quit [Remote closed the connection] 19:49:33 In PLT, where is define-struct defined? 19:50:30 It's in scheme/base ebzzry 19:51:00 parolang [n=user@keholmes.oregonrd-wifi-1261.amplex.net] has joined #scheme 19:52:03 synx: OK 19:52:59 -!- camt [n=camt@mail.propack.on.ca] has quit [Read error: 104 (Connection reset by peer)] 19:53:05 $COLLECTS/scheme/private/define-struct.ss has some stuff 19:53:26 synx: Is that the primary file that contains her definitions? 19:53:46 I dunno. I'm just snooping around. 19:54:03 jao [n=jao@52.Red-83-43-32.dynamicIP.rima-tde.net] has joined #scheme 19:55:09 Hmm, apparently, define-struct has its own parser for its "keyword" arguments 20:01:02 Jackdaw [n=cec24@grads-81.phy.duke.edu] has joined #scheme 20:05:11 yawn 20:05:54 -!- mmc [n=mima@esprx01x.nokia.com] has quit [Remote closed the connection] 20:07:11 -!- ebzzry [n=ebzzry@124.217.90.193] has quit ["Leaving"] 20:11:19 MichaelRaskin [n=MichaelR@195.91.224.225] has joined #scheme 20:12:58 rushi [n=rushi@rushispowerbook.dynamic.ucsd.edu] has joined #scheme 20:13:14 -!- rouslan [n=Rouslan@unaffiliated/rouslan] has quit [Read error: 104 (Connection reset by peer)] 20:19:20 -!- Jackdaw [n=cec24@grads-81.phy.duke.edu] has quit ["Lost terminal"] 20:25:09 annodomini [n=lambda@c-75-69-96-104.hsd1.nh.comcast.net] has joined #scheme 20:27:15 -!- MichaelRaskin [n=MichaelR@195.91.224.225] has left #scheme 20:28:27 MichaelRaskin [n=MichaelR@195.91.224.225] has joined #scheme 20:33:03 -!- borism [n=boris@195-50-199-19-dsl.krw.estpak.ee] has quit [Read error: 145 (Connection timed out)] 20:38:58 -!- jonrafkind [n=jon@crystalis.cs.utah.edu] has quit [Read error: 104 (Connection reset by peer)] 20:39:39 jonrafkind [n=jon@crystalis.cs.utah.edu] has joined #scheme 20:42:57 npe [n=npe@94-224-251-223.access.telenet.be] has joined #scheme 20:51:22 synthase [n=synthase@adsl-220-176-61.mob.bellsouth.net] has joined #scheme 20:57:16 -!- metasyntax|work [n=taylor@75-149-208-121-Illinois.hfc.comcastbusiness.net] has quit ["If you reach back in your memory, a little bell might ring, 'bout a time that once existed when money wasn't king."] 21:01:16 -!- rushi [n=rushi@rushispowerbook.dynamic.ucsd.edu] has quit [] 21:07:44 -!- lnchginos [n=lnchgino@206.251.250.207] has quit [Remote closed the connection] 21:07:45 -!- ioizzgd [n=ioizzgd@206.251.250.219] has quit [Remote closed the connection] 21:10:16 ioizzgd [n=ioizzgd@206.251.250.219] has joined #scheme 21:12:20 -!- jonrafkind [n=jon@crystalis.cs.utah.edu] has quit ["Leaving"] 21:14:13 ha, I am protectedd 21:14:20 *offby1* just drank another gallon of coffee 21:15:38 rushi [n=rushi@rushispowerbook.dynamic.ucsd.edu] has joined #scheme 21:16:16 saccade_ [n=saccade@dhcp-18-188-74-28.dyn.mit.edu] has joined #scheme 21:19:27 rouslan [n=Rouslan@unaffiliated/rouslan] has joined #scheme 21:19:52 -!- jlongster [n=user@75-148-111-133-Chattanooga.hfc.comcastbusiness.net] has quit [Read error: 60 (Operation timed out)] 21:37:24 -!- langmartin [n=user@exeuntcha.tva.gov] has quit ["ERC Version 5.3 (IRC client for Emacs)"] 21:40:35 -!- jao [n=jao@52.Red-83-43-32.dynamicIP.rima-tde.net] has quit [Remote closed the connection] 21:42:21 -!- bombshelter13_ [n=bombshel@toronto-gw.adsl.erx01.mtlcnds.ext.distributel.net] has quit [] 21:58:37 -!- Judofyr [n=Judofyr@c8F99BF51.dhcp.bluecom.no] has quit [Remote closed the connection] 22:00:14 Pegazus [n=eagaw@host250.190-224-109.telecom.net.ar] has joined #scheme 22:01:00 jonrafkind [n=jon@crystalis.cs.utah.edu] has joined #scheme 22:04:59 dmoerner [n=dmr@dip-14-250.coloradocollege.edu] has joined #scheme 22:06:57 -!- rdd [n=rdd@c83-250-157-93.bredband.comhem.se] has quit [Remote closed the connection] 22:09:09 -!- Edico_ [n=Edico@unaffiliated/edico] has quit ["Leaving"] 22:10:45 -!- hotblack23 [n=jh@p5B0579AE.dip.t-dialin.net] has quit [Read error: 110 (Connection timed out)] 22:12:09 rdd [n=user@c83-250-157-93.bredband.comhem.se] has joined #scheme 22:14:23 -!- dmoerner [n=dmr@dip-14-250.coloradocollege.edu] has left #scheme 22:15:13 yinw [n=wy@66.194.68.209] has joined #scheme 22:18:43 Sveklo1 [n=sveklo@cs181131.pp.htv.fi] has joined #scheme 22:18:47 -!- jewel [n=jewel@dsl-247-203-169.telkomadsl.co.za] has quit [Read error: 60 (Operation timed out)] 22:25:50 -!- mrsolo [n=mrsolo@nat/yahoo/x-f16862ea01f681f7] has quit ["Leaving"] 22:28:37 jao [n=jao@52.Red-83-43-32.dynamicIP.rima-tde.net] has joined #scheme 22:40:16 -!- snurble [n=snurble@s83-191-238-2.cust.tele2.se] has quit [Read error: 104 (Connection reset by peer)] 22:41:24 -!- Sveklo1 [n=sveklo@cs181131.pp.htv.fi] has quit [Read error: 110 (Connection timed out)] 22:41:28 snurble [n=snurble@s83-191-238-2.cust.tele2.se] has joined #scheme 22:42:26 -!- Hagaer [n=user@27.62.broadband3.iol.cz] has quit [Read error: 110 (Connection timed out)] 23:12:21 abbe [n=abbe@abbe.is.a.member.of.pirateparty.in] has joined #scheme 23:21:53 -!- tessier [n=treed@mail.copilotco.com] has quit ["Lost terminal"] 23:23:07 tessier [n=treed@mail.copilotco.com] has joined #scheme 23:23:56 For those who follow it keenly, but not keenly enough to poll it every hour, there is a new entry in my blag. 23:24:15 (This is actually just a sneaky way to get you to look at something else.) 23:25:21 url 23:26:22 -!- dzhus [n=sphinx@95-24-188-80.broadband.corbina.ru] has quit [Remote closed the connection] 23:26:41 dzhus [n=sphinx@95-24-188-80.broadband.corbina.ru] has joined #scheme 23:28:33 https://quadruple-double-u.riastradh's-blag.museum 23:28:43 -!- bweaver [n=user@75-148-111-133-Chattanooga.hfc.comcastbusiness.net] has quit ["ERC Version 5.3 (IRC client for Emacs)"] 23:29:02 http://mumble.net/~campbell/blag.txt 23:34:06 -!- npe [n=npe@94-224-251-223.access.telenet.be] has quit [] 23:36:51 -!- kniu [n=kniu@pool-71-107-56-85.lsanca.dsl-w.verizon.net] has quit [Read error: 110 (Connection timed out)] 23:38:19 kniu [n=kniu@pool-71-107-56-85.lsanca.dsl-w.verizon.net] has joined #scheme