00:13:16 -!- Mr_Awesome [n=eric@pool-98-115-41-97.chi01.dsl-w.verizon.net] has quit [Read error: 110 (Connection timed out)] 00:14:53 Mr_Awesome [n=eric@pool-98-115-122-25.chi01.dsl-w.verizon.net] has joined #scheme 00:15:40 MrFahrenheit [n=RageOfTh@users-38-159.vinet.ba] has joined #scheme 00:16:35 -!- RageOfThou [n=RageOfTh@users-38-159.vinet.ba] has quit [Read error: 104 (Connection reset by peer)] 00:21:57 -!- Axioplase_ is now known as Axioplase 00:23:18 optimizer [n=x@unaffiliated/lowlycoder] has joined #scheme 00:26:07 -!- schemer999 [n=schemer9@cpe-76-90-137-46.socal.res.rr.com] has quit [] 00:29:01 sepult [n=sepult@xdsl-87-78-121-175.netcologne.de] has joined #scheme 00:31:02 eno__ [n=eno@adsl-70-137-159-131.dsl.snfc21.sbcglobal.net] has joined #scheme 00:42:53 -!- eno [n=eno@nslu2-linux/eno] has quit [Read error: 110 (Connection timed out)] 00:45:17 -!- MrFahrenheit [n=RageOfTh@users-38-159.vinet.ba] has quit [Read error: 110 (Connection timed out)] 00:48:03 Mr_Awesome_ [n=eric@pool-98-115-122-165.chi01.dsl-w.verizon.net] has joined #scheme 00:51:02 -!- Mr_Awesome [n=eric@pool-98-115-122-25.chi01.dsl-w.verizon.net] has quit [Read error: 110 (Connection timed out)] 00:58:50 ve [n=a@94-193-95-252.zone7.bethere.co.uk] has joined #scheme 00:59:27 -!- kenpp [n=kenpp@188-221-10-184.zone12.bethere.co.uk] has quit [Read error: 60 (Operation timed out)] 01:04:09 -!- Fare [n=Fare@c-24-218-127-11.hsd1.ma.comcast.net] has quit ["Leaving"] 01:04:16 -!- attila_lendvai [n=ati@adsl-89-134-4-48.monradsl.monornet.hu] has quit [Read error: 113 (No route to host)] 01:08:49 -!- optimizer [n=x@unaffiliated/lowlycoder] has quit ["Lost terminal"] 01:09:32 Vega-33 [n=matthewh@202.125.173.202] has joined #scheme 01:10:00 jeapostrophe [n=jay@69.169.141.110] has joined #scheme 01:16:10 -!- Vega-33 [n=matthewh@202.125.173.202] has quit ["leaving"] 01:17:02 QinGW [n=wangqing@203.86.89.226] has joined #scheme 01:19:56 -!- jeapostrophe [n=jay@69.169.141.110] has quit [] 01:22:44 -!- sepult [n=sepult@xdsl-87-78-121-175.netcologne.de] has quit ["leaving"] 01:23:30 ski_ [n=md9slj@remote1.student.chalmers.se] has joined #scheme 01:27:29 -!- Mr_Awesome_ [n=eric@pool-98-115-122-165.chi01.dsl-w.verizon.net] has quit [Read error: 110 (Connection timed out)] 01:27:37 Mr_Awesome__ [n=eric@pool-98-108-15-242.chi01.dsl-w.verizon.net] has joined #scheme 01:33:54 -!- antoszka [n=antoszka@unaffiliated/antoszka] has quit ["+++ killed by SIGSEGV +++"] 01:48:04 -!- luz [n=davids@189.122.90.116] has quit ["Client exiting"] 01:54:54 -!- meme_ [n=meme@137.54.24.228] has quit [] 01:58:39 -!- eno__ [n=eno@adsl-70-137-159-131.dsl.snfc21.sbcglobal.net] has quit [Read error: 60 (Operation timed out)] 01:59:48 jeapostrophe [n=jay@69.169.141.110] has joined #scheme 02:01:55 -!- Mr_Awesome__ [n=eric@pool-98-108-15-242.chi01.dsl-w.verizon.net] has quit [Read error: 110 (Connection timed out)] 02:02:57 eno [n=eno@nslu2-linux/eno] has joined #scheme 02:03:46 Mr_Awesome [n=eric@pool-98-108-0-208.chi01.dsl-w.verizon.net] has joined #scheme 02:10:27 -!- masm [n=masm@bl7-206-200.dsl.telepac.pt] has quit ["Leaving."] 02:11:39 dmoerner [n=dmr@134.173.91.168] has joined #scheme 02:13:21 -!- dmoerner [n=dmr@134.173.91.168] has quit [Remote closed the connection] 02:13:36 -!- jeapostrophe [n=jay@69.169.141.110] has quit [] 02:13:47 dmoerner [n=dmr@134.173.91.168] has joined #scheme 02:19:37 arcfide [i=arcfide@adsl-99-137-203-120.dsl.bltnin.sbcglobal.net] has joined #scheme 02:31:22 QinGW1 [n=wangqing@203.86.89.226] has joined #scheme 02:31:52 -!- QinGW [n=wangqing@203.86.89.226] has quit [Read error: 104 (Connection reset by peer)] 02:36:35 QinGW [n=wangqing@203.86.89.226] has joined #scheme 02:38:55 meme [n=meme@c-76-104-20-221.hsd1.va.comcast.net] has joined #scheme 02:39:29 -!- QinGW1 [n=wangqing@203.86.89.226] has quit [Read error: 60 (Operation timed out)] 02:39:36 -!- Mr_Awesome [n=eric@pool-98-108-0-208.chi01.dsl-w.verizon.net] has quit [Read error: 110 (Connection timed out)] 02:41:30 Mr_Awesome [n=eric@pool-72-95-79-237.chi01.dsl-w.verizon.net] has joined #scheme 02:41:38 -!- untouchable [i=untoucha@129.64.166.32] has quit ["( www.nnscript.com :: NoNameScript 4.22 :: www.esnation.com )"] 02:42:26 QinGW1 [n=wangqing@203.86.89.226] has joined #scheme 02:43:28 Does anyone here have more to say about the recent let-syntax question on CLS? 02:43:56 I'd like to know if either Aziz or I have any justifications in our thinking, and if someone else has a better idea. 02:44:40 -!- QinGW [n=wangqing@203.86.89.226] has quit [Read error: 60 (Operation timed out)] 02:46:14 -!- QinGW1 [n=wangqing@203.86.89.226] has quit [Read error: 104 (Connection reset by peer)] 02:46:31 QinGW [n=wangqing@203.86.89.226] has joined #scheme 02:46:53 -!- meme [n=meme@c-76-104-20-221.hsd1.va.comcast.net] has left #scheme 02:49:10 optimizer [n=x@unaffiliated/lowlycoder] has joined #scheme 02:52:49 tjafk [n=timj@e176195099.adsl.alicedsl.de] has joined #scheme 02:53:50 -!- QinGW [n=wangqing@203.86.89.226] has quit [Read error: 54 (Connection reset by peer)] 02:54:49 QinGW [n=wangqing@203.86.89.226] has joined #scheme 02:55:22 timchen1` [i=tim@163.16.211.21] has joined #scheme 02:55:36 -!- timchen1` is now known as nasloc__ 02:57:29 -!- xwl [n=user@125.34.171.60] has quit [Remote closed the connection] 02:58:29 arcfide: Is this the thread "Question about R6RS let-syntax"? 02:58:51 Er, I suppose it must be. 03:00:11 chandler: Yes. 03:00:49 My thought on reading his first program is that it should be "inner", error. In other words, the first reference to `foo' is to the inner `define-syntax', and the second reference is an error because the inner `foo' would be shadowed within the lexical contour of the `let-syntax' form. 03:00:51 untouchable [i=untoucha@dhcp-129-64-166-32.dorm.brandeis.edu] has joined #scheme 03:00:59 So far, in a brief reading of the thread, I haven't found anyone who agrees with me. 03:01:05 Aziz's explanation makes sense for the mechanics of why Ikarus behaves the way it does, but I disagree with his "2. Let-syntax does not establish a new scoping contour." 03:01:18 It must. 03:02:37 Actually, I think I could be convinced that the whole thing is an error. 03:03:20 PLT probably has it right; top-level `let-syntax' is just sugar for (begin (define-syntax ...) ...), and thus this is a duplicate definition. 03:03:56 No, that would be bad. 03:03:57 Er, except that the define-syntax isn't exposed outside the contour of the `begin'; I guess that isn't quite right either. 03:04:09 yeah 03:05:00 QinGW1 [n=wangqing@203.86.89.226] has joined #scheme 03:06:45 Summermute [n=scott@c-76-114-212-247.hsd1.dc.comcast.net] has joined #scheme 03:06:57 Huh? 03:07:38 'let-syntax' is a splicing syntax, meaning that the scope of the definitions and expressions in the 'let-syntax' form is the scopre of the 'let-syntax' form itself, I'm not sure what this contour stuff means. 03:07:59 foof: Why would that be bad? 03:08:18 arcfide: Sorry, I was talking about the bindings established by the `let-syntax' itself. 03:08:23 Right. 03:08:24 What chandler said PLT does would be bad, because of the reason he gave. 03:08:40 No; that's not what PLT does though. I was explaining it badly. 03:08:52 And the bindings established by the 'let-syntax' affect the syntactic environment in which the 'let-syntax' occurs, no new environment is created, as in LET. 03:09:08 -!- tjaway [n=timj@e176212225.adsl.alicedsl.de] has quit [Read error: 110 (Connection timed out)] 03:09:30 Oh! 03:09:35 I see what you were complaining about. 03:09:57 Yes, the visibility of the 'let-syntax' bindings does not extend outside of the body of the 'let-syntax'. 03:10:40 -!- QinGW1 [n=wangqing@203.86.89.226] has quit [Read error: 104 (Connection reset by peer)] 03:11:01 Well, I am having a harder and harder time understand how this could not be an error situation. 03:11:08 -!- annodomini [n=lambda@wikipedia/lambda] has quit [] 03:11:21 I can't accept Aziz's explanation yet because it seems like he is changing how expansion works for this special case. 03:14:16 chandler pasted "Here's my mental model for how this oughta work" at http://paste.lisp.org/display/88873 03:14:34 -!- Mr_Awesome [n=eric@pool-72-95-79-237.chi01.dsl-w.verizon.net] has quit [Read error: 110 (Connection timed out)] 03:15:55 -!- gnomon [n=gnomon@CPE001d60dffa5c-CM000f9f776f96.cpe.net.cable.rogers.com] has quit [Remote closed the connection] 03:16:29 arcfide: Does this make any sense? This is what I meant about transforming `let-syntax' into (begin (define-syntax ...) body ...), except that the identifiers bound by `let-syntax' are renamed. 03:16:40 sepult [n=levgue@xdsl-87-78-121-175.netcologne.de] has joined #scheme 03:16:44 langmart` [n=user@exeuntcha.tva.gov] has joined #scheme 03:17:19 -!- sepult [n=levgue@xdsl-87-78-121-175.netcologne.de] has quit [Remote closed the connection] 03:17:37 I don't see how Aziz's model is supposed to work. The identifier needs to be renamed before the body is considered in any other way. 03:18:03 Mr_Awesome [n=eric@pool-98-108-10-185.chi01.dsl-w.verizon.net] has joined #scheme 03:19:36 sepult [n=levgue@xdsl-87-78-121-175.netcologne.de] has joined #scheme 03:19:40 -!- eno [n=eno@nslu2-linux/eno] has quit [verne.freenode.net irc.freenode.net] 03:19:40 -!- kupad_ [n=kupad@dsl254-079-179.nyc1.dsl.speakeasy.net] has quit [verne.freenode.net irc.freenode.net] 03:19:40 -!- lolcow [n=lolcow@dsl-243-13-101.telkomadsl.co.za] has quit [verne.freenode.net irc.freenode.net] 03:19:40 -!- copumpkin [n=pumpkin@c-24-63-67-154.hsd1.nh.comcast.net] has quit [verne.freenode.net irc.freenode.net] 03:19:40 -!- saccade [n=saccade@65-78-24-131.c3-0.smr-ubr1.sbo-smr.ma.cable.rcn.com] has quit [verne.freenode.net irc.freenode.net] 03:19:40 -!- langmartin [n=user@exeuntcha.tva.gov] has quit [verne.freenode.net irc.freenode.net] 03:19:40 -!- CaptainMorgan [n=CaptainM@c-24-62-183-102.hsd1.ma.comcast.net] has quit [verne.freenode.net irc.freenode.net] 03:19:40 -!- rudybot [n=luser@q-static-138-125.avvanta.com] has quit [verne.freenode.net irc.freenode.net] 03:19:40 -!- ineiros [n=itniemin@james.ics.hut.fi] has quit [verne.freenode.net irc.freenode.net] 03:19:40 -!- samth_away [n=samth@punge.ccs.neu.edu] has quit [verne.freenode.net irc.freenode.net] 03:19:40 -!- michaelw [i=michaelw@lambda.foldr.org] has quit [verne.freenode.net irc.freenode.net] 03:19:40 -!- Chris [n=chris@unaffiliated/chris] has quit [verne.freenode.net irc.freenode.net] 03:19:40 QinGW1 [n=wangqing@203.86.89.226] has joined #scheme 03:20:05 eno [n=eno@nslu2-linux/eno] has joined #scheme 03:20:05 kupad_ [n=kupad@dsl254-079-179.nyc1.dsl.speakeasy.net] has joined #scheme 03:20:05 lolcow [n=lolcow@dsl-243-13-101.telkomadsl.co.za] has joined #scheme 03:20:05 copumpkin [n=pumpkin@c-24-63-67-154.hsd1.nh.comcast.net] has joined #scheme 03:20:05 saccade [n=saccade@65-78-24-131.c3-0.smr-ubr1.sbo-smr.ma.cable.rcn.com] has joined #scheme 03:20:05 CaptainMorgan [n=CaptainM@c-24-62-183-102.hsd1.ma.comcast.net] has joined #scheme 03:20:05 rudybot [n=luser@q-static-138-125.avvanta.com] has joined #scheme 03:20:05 ineiros [n=itniemin@james.ics.hut.fi] has joined #scheme 03:20:05 Chris [n=chris@unaffiliated/chris] has joined #scheme 03:20:05 samth_away [n=samth@punge.ccs.neu.edu] has joined #scheme 03:20:05 michaelw [i=michaelw@lambda.foldr.org] has joined #scheme 03:20:06 -!- rudybot [n=luser@q-static-138-125.avvanta.com] has quit [Remote closed the connection] 03:20:11 -!- metasyntax [n=taylor@pool-71-127-125-129.aubnin.fios.verizon.net] has quit ["Nichts mehr."] 03:20:14 rudybot [n=luser@q-static-138-125.avvanta.com] has joined #scheme 03:20:21 -!- CaptainMorgan [n=CaptainM@c-24-62-183-102.hsd1.ma.comcast.net] has quit [SendQ exceeded] 03:21:33 gnomon [n=gnomon@CPE001d60dffa5c-CM000f9f776f96.cpe.net.cable.rogers.com] has joined #scheme 03:21:46 -!- QinGW [n=wangqing@203.86.89.226] has quit [Connection timed out] 03:22:49 -!- copumpkin [n=pumpkin@c-24-63-67-154.hsd1.nh.comcast.net] has quit [] 03:23:36 copumpkin [n=pumpkin@c-24-63-67-154.hsd1.nh.comcast.net] has joined #scheme 03:30:06 -!- QinGW1 [n=wangqing@203.86.89.226] has quit [Read error: 54 (Connection reset by peer)] 03:31:01 QinGW [n=wangqing@203.86.89.226] has joined #scheme 03:32:00 jeapostrophe [n=jay@69.169.141.110.provo.static.broadweavenetworks.net] has joined #scheme 03:33:01 chandler: With that macro, does it error out with the example given? 03:34:04 ada2358_ [n=ada2358@login-linux.ccs.neu.edu] has joined #scheme 03:34:34 Yes. 03:35:59 QinGW1 [n=wangqing@203.86.89.226] has joined #scheme 03:37:22 What you do there seems close to reasonable, and I can't find any explicit fault with it. 03:37:38 -!- sepult [n=levgue@xdsl-87-78-121-175.netcologne.de] has quit [Remote closed the connection] 03:38:37 Well, it's obviously a hack :-) 03:39:39 -!- QinGW [n=wangqing@203.86.89.226] has quit [Read error: 60 (Operation timed out)] 03:41:33 QinGW [n=wangqing@203.86.89.226] has joined #scheme 03:41:59 -!- QinGW1 [n=wangqing@203.86.89.226] has quit [Read error: 104 (Connection reset by peer)] 03:45:27 -!- ada2358 [n=ada2358@login-linux.ccs.neu.edu] has quit [Read error: 110 (Connection timed out)] 03:45:30 Yes, of course. 03:45:47 The question is whether it is semantically the same. Obviously it enforces a specific order of evaluation. 03:45:55 chandler pasted "Excessive weirdness in Ikarus" at http://paste.lisp.org/display/88875 03:46:21 arcfide: Have a look at this, and tell me if this seems wrong to you. 03:46:35 In particular, the behavior changes if you substitute the use of `bar' for a literal `begin'. 03:46:55 -!- QinGW [n=wangqing@203.86.89.226] has quit [Read error: 54 (Connection reset by peer)] 03:47:08 I think that's a pretty clear sign that there's *something* wrong with the way Ikarus is working. 03:48:38 -!- nickgibbon [n=nring@210.8.201.244] has quit [Read error: 104 (Connection reset by peer)] 03:48:41 If you pull `bar' up to top-level, it behaves the same way as well. 03:49:35 sepult [n=levgue@87.78.121.175] has joined #scheme 03:49:42 -!- metasyntax` [n=taylor@pool-71-127-125-129.aubnin.fios.verizon.net] has quit ["rcirc on GNU Emacs 23.1.50.1"] 03:50:31 arcfide: Actually, it doesn't enforce a specific order of evaluation at all. (sorta-toplevel-let-syntax ((n1 t1) (n2 t2)) body ...) -> (begin (define-syntax temp1 t1) (sorta-toplevel-let-syntax ((n2 t2)) ...)), but this doesn't cause any evalutaion order problems since there are no bindings of `n1' to consider until the second form is expanded, at which point it becomes (begin (define-syntax temp1 t1) (define-syntax temp2 t2) ...) 03:50:42 In any event, that's fairly easy to fix. 03:51:43 QinGW [n=wangqing@203.86.89.226] has joined #scheme 03:52:41 chandler: From what I am seeing the t1 transformer will always be evaluated before the t2 transformer, which is a specific order of evaluation. 03:53:27 I don't think there's anything forcing the implementation to evaluate the t1 transformer until the first use of t1 is found, but this is a minor point. As I said, it's just an artifact of my taking the easy way out for this particular macro. 03:54:27 maybe we need more parenthesis ;P 03:54:38 Also, in the case of (let-syntax ([a ---] [b ---]) ---), I believe that the scope of 'a' actually turns out to be both 'b ---' and the body of the let-syntax, in the way you have it. 03:54:45 -!- lolcow is now known as leppie 03:55:33 When an implementation encounters a BEGIN form, it must expand the components of the begin form in order. 03:55:40 Whoops. 03:56:21 I'm fixing the macro now, if you care. 03:56:38 Just thought to mention for the record some of the troubles with the macro. :-) 03:56:42 Did you see the behavior difference in Ikarus between `begin' and a simple syntactic wrapper for `begin' that I was talking about? 03:56:51 -!- foof [n=user@FL1-118-110-45-189.osk.mesh.ad.jp] has quit [Remote closed the connection] 03:56:52 I don't have Ikarus installed. 03:56:54 foof [n=user@FL1-118-110-45-189.osk.mesh.ad.jp] has joined #scheme 03:57:31 But I have to say, "tsk, tsk, Aziz," since he should know better. :-) 03:58:11 chandler annotated #88875 "Simplified, with output" at http://paste.lisp.org/display/88875#1 03:59:44 How disappointing. 03:59:45 :-) 03:59:48 :( 03:59:53 I'd better check whether Chez does the same thing! 04:01:10 -!- sepult [n=levgue@87.78.121.175] has quit [Read error: 131 (Connection reset by peer)] 04:01:11 Aah good. Still works the same. :-) 04:01:26 leppie: Was your Scheme in this test? 04:01:31 No, you're IronScheme, right? 04:01:34 does it need to be? 04:01:44 It's a test of 'let-syntax' semantics. 04:01:51 same as ikarus 04:01:56 Ow. 04:01:58 Fix that. 04:02:01 i cant 04:02:06 ? 04:02:06 :p 04:02:11 psyntax 04:02:14 leppie: I'm currently inclined to believe that PLT and Chez Scheme have the correct behavior here. 04:02:15 beyond me 04:02:23 leppie: :-O 04:02:48 Time to patch psyntax. 04:02:49 I'm currently inclined to believe that having a simple syntactic wrapper for `begin' behave utterly differently than `begin' itself is beyond broken. 04:03:07 i think that is a big bug 04:03:27 the letsyntax issues OTOH I can be bothered with 04:04:15 let-syntax in the toplevel has always been wonky on psyntax 04:04:56 leppie: This isn't supposed to be a top-level issue. 04:06:58 i guess not 04:07:34 QinGW1 [n=wangqing@203.86.89.226] has joined #scheme 04:09:33 The requested URL /about.html was not found on this server. 04:09:57 leppie: Yes. 04:10:01 :) 04:10:23 too early to think, so I just click 04:11:19 The website is very incomplete at the moment. 04:11:29 It's suffering from changes in progress. 04:12:26 i'll look more from work 04:18:01 Random Q: I've always wondered why DrScheme is a bit sluggish (although written in C), to say the least, given the relatively snappy performanc for Smalltalk's (say Squeak) based on just a small number of graphic primitives. Inquiring minds want to know. 04:18:50 chandler pasted "Yay procedural macros, but this is still far more effort at times than it needs to be" at http://paste.lisp.org/display/88876 04:19:02 arcfide: This should make you happy, though. 04:19:09 -!- QinGW [n=wangqing@203.86.89.226] has quit [Connection timed out] 04:19:33 -!- jeapostrophe [n=jay@69.169.141.110.provo.static.broadweavenetworks.net] has quit [] 04:24:01 Sorry - I mispoke - I should have said the wxWindows subsystem in DrScheme. 04:25:49 OK, what's up with this: http://docs.python.org/tutorial/floatingpoint.html 04:26:44 It's the _only_ language I know of that takes such a brain-dead approach to floating point formatting. 04:27:49 -!- QinGW1 [n=wangqing@203.86.89.226] has quit [Connection timed out] 04:28:11 Steele & White's paper is ancient history, and the very same printf that Python uses internally would actually give the smallest representation if only they used a format of "%g" instead of "%.17g" 04:29:05 They go to extra effort to make the output worse, and try to pretend that this can't be helped because "floating point is inaccurate." 04:29:57 -!- arcfide [i=arcfide@adsl-99-137-203-120.dsl.bltnin.sbcglobal.net] has quit [Read error: 110 (Connection timed out)] 04:43:37 lol foof 04:44:24 i had to implement proper floating point printing as the printer in .NET prints extra garbage digits 04:45:44 o_O 04:47:08 leppie: that's intentional, it's to make people with the pentium divide bug feel less lonely 04:48:26 -!- kupad_ [n=kupad@dsl254-079-179.nyc1.dsl.speakeasy.net] has quit [Read error: 110 (Connection timed out)] 04:50:42 gnomon_ [n=gnomon@CPE001d60dffa5c-CM000f9f776f96.cpe.net.cable.rogers.com] has joined #scheme 04:50:45 -!- gnomon [n=gnomon@CPE001d60dffa5c-CM000f9f776f96.cpe.net.cable.rogers.com] has quit [Read error: 54 (Connection reset by peer)] 04:52:38 seanstickle [n=seanstic@c-68-33-221-168.hsd1.dc.comcast.net] has joined #scheme 04:52:56 Ah, it's been fixed finally in Python 3.2a. 04:53:37 -!- seanstickle [n=seanstic@c-68-33-221-168.hsd1.dc.comcast.net] has left #scheme 05:02:41 -!- ski [n=slj@c-c110e055.1149-1-64736c10.cust.bredbandsbolaget.se] has quit [Read error: 60 (Operation timed out)] 05:06:42 arcfide [n=arcfide@adsl-99-137-202-199.dsl.bltnin.sbcglobal.net] has joined #scheme 05:08:48 -!- Nshag [i=user@193.248.203.163] has quit ["Quitte"] 05:12:43 nickgibbon [n=nring@210.8.201.244] has joined #scheme 05:22:52 gnomon [n=gnomon@CPE001d60dffa5c-CM000f9f776f96.cpe.net.cable.rogers.com] has joined #scheme 05:25:27 -!- arcfide [n=arcfide@adsl-99-137-202-199.dsl.bltnin.sbcglobal.net] has quit [Read error: 110 (Connection timed out)] 05:32:02 -!- ski_ [n=md9slj@remote1.student.chalmers.se] has quit ["Lost terminal"] 05:33:12 lowlycoder [n=x@unaffiliated/lowlycoder] has joined #scheme 05:35:10 -!- lowlycoder [n=x@unaffiliated/lowlycoder] has quit [Client Quit] 05:35:22 lowlycoder [n=x@128.12.241.170] has joined #scheme 05:35:56 -!- optimizer [n=x@unaffiliated/lowlycoder] has quit ["leaving"] 05:36:06 -!- lowlycoder [n=x@unaffiliated/lowlycoder] has quit [Client Quit] 05:36:36 optimizer [n=x@unaffiliated/lowlycoder] has joined #scheme 05:36:43 -!- optimizer [n=x@unaffiliated/lowlycoder] has quit [Client Quit] 05:41:27 CaptainMorgan [n=CaptainM@c-24-62-183-102.hsd1.ma.comcast.net] has joined #scheme 05:53:27 -!- jonrafkind [n=jon@98.202.86.149] has quit [Read error: 110 (Connection timed out)] 05:53:52 -!- gnomon_ [n=gnomon@CPE001d60dffa5c-CM000f9f776f96.cpe.net.cable.rogers.com] has quit [Read error: 110 (Connection timed out)] 05:59:42 QinGW [n=wangqing@203.86.89.226] has joined #scheme 06:19:20 -!- elf_ [i=elf@208.68.95.138] has quit [Read error: 145 (Connection timed out)] 06:19:48 leppie|work [i=52d2e3c8@gateway/web/freenode/x-vuntdxwmuvsfahzi] has joined #scheme 06:24:33 a-s [n=user@nat-240.ro.66.com] has joined #scheme 06:42:34 -!- kilimanjaro [n=kilimanj@70.116.95.163] has quit [Remote closed the connection] 06:53:31 optimizer [n=x@unaffiliated/lowlycoder] has joined #scheme 06:53:38 suppose I want a language like scheme, but I want static typic 06:53:43 what is the closest to this? ocaml? 06:55:15 PLT's typed scheme 06:55:53 ASau [n=user@77.246.230.154] has joined #scheme 06:55:59 mmm, typed scheme 06:56:02 I need to use it more 06:56:18 the thing I miss most from Haskell/ML is pattern matching 06:56:32 MATCH does it, but it's just not the same as f x [] (y,z) = ... 06:56:42 But for a full language suitable for real-world projects, ocaml does feel a lot like Scheme. 07:00:23 i love scheme and all that, but sometimes, even when I use a lanuage like C++ 07:00:34 having types and compile time type checking just feels so nice 07:01:16 optimizer: I actually agree, I perfer static typing 9 times out of ten 07:01:29 but I'd choose macros over static typing 07:01:50 why do the two conflict? 07:02:05 hmmm, doesn't qi lisp solve this very problem? 07:02:19 http://www.lambdassociates.org/qilisp.htm 07:02:21 anyone actually tried it? 07:02:28 I haven't ever 07:02:38 agh 07:02:41 I am freezing :( 07:03:31 scheme cannot address this problem 07:03:58 Really? scheme warms me from the heart 07:04:11 well, it can a little bit 07:04:50 *Elly* feeds '((lambda (x) (x x)) (lambda (x) (x x)))' to mzscheme and feels her laptop heat up a bit 07:05:52 unfortunately it is an EeePC and thus does not generate much heat even at 100% load 07:09:50 Haha 07:10:03 Why so cold? 07:10:12 marcoecc [i=me@gateway/gpg-tor/key-0x9C9AAE7F] has joined #scheme 07:10:30 my house's heating is off for a reason that is unclear to me 07:10:46 Could there? 07:11:01 very 07:11:06 it is below freezing right now 07:12:28 Doh! 07:12:45 The weather said we might be gitting a dusting of snow tonight 07:12:49 but it's not that cold 07:14:19 squidsoup [n=kit@121.74.238.125] has joined #scheme 07:15:06 hi there, I was hoping someone tell me which of the following would best suit working through SICP? mit-scheme, mzscheme and scheme48 (the 3 packages provided by mac ports) 07:16:01 They should all run fine 07:16:01 Also most other schemes are easy to install on OS X 07:16:01 I run chicken just fine 07:16:02 and PLT actually has a .app package 07:16:18 ah righto, so the mac ports collection is a bit limited 07:16:27 would you recommend chicken for a beginner? 07:16:38 Well 07:16:44 what editor do you use? 07:17:00 textmate or vi depending on the mood 07:17:03 hmm 07:17:12 mmc [n=mima@esprx02x.nokia.com] has joined #scheme 07:17:19 well PLT has a nice scheme editor built in 07:17:33 if you don't mind using another 07:17:40 I think chicken is probally fine for a beginner 07:17:58 presumably does paren matching and that sort of thing? 07:18:12 Yeah 07:18:19 I personally like Emacs though 07:18:24 with paredit 07:19:27 thanks Arelius, looking forward to getting started :) 07:20:00 should hopefully give my imperative coders brain a good workout.. I'm hoping for some fried synapses by the end of it 07:20:30 I hope nothing fried 07:20:36 so much as just rewired. 07:20:50 that's a better way of putting it! 07:22:10 oh wow, chicken is a compiler? I was under the impression scheme was interpreted.. that's neat 07:22:29 Most all implementations offer an interpreter 07:22:35 some also offer a compiler 07:22:45 in chicken the csi executable is an interpreter 07:22:49 and csc the compiler 07:22:50 hotblack23 [n=jh@p5B0571BE.dip.t-dialin.net] has joined #scheme 07:22:57 huh interesting 07:22:58 I think PLT also has a compiler 07:23:01 and a few others 07:23:27 -!- foof [n=user@FL1-118-110-45-189.osk.mesh.ad.jp] has quit [Remote closed the connection] 07:23:32 foof [n=user@FL1-118-110-45-189.osk.mesh.ad.jp] has joined #scheme 07:23:48 ( mzc for PLT ) 07:24:11 Stalin on the other hand only offers a compiler 07:24:24 and the compiler it self takes a long time 07:24:34 but the programs it creates are screaming fast. 07:27:18 compiling chicken now, thanks again Arelius. ttfn 07:27:26 -!- squidsoup [n=kit@121.74.238.125] has quit [] 07:28:42 -!- hotblack23 [n=jh@p5B0571BE.dip.t-dialin.net] has quit ["Leaving."] 07:29:04 another scheme to consider 07:29:05 is gambit 07:29:14 it has an amazing debugge 07:29:16 r 07:30:27 -!- gnomon [n=gnomon@CPE001d60dffa5c-CM000f9f776f96.cpe.net.cable.rogers.com] has quit [Read error: 104 (Connection reset by peer)] 07:30:40 gnomon [n=gnomon@CPE001d60dffa5c-CM000f9f776f96.cpe.net.cable.rogers.com] has joined #scheme 07:36:28 dmoerner_ [n=dmr@134.173.91.133] has joined #scheme 07:37:01 -!- dmoerner [n=dmr@134.173.91.168] has quit [Read error: 60 (Operation timed out)] 07:44:28 optimizer: How is gambit's debugger amazing? 07:45:09 it gives your recursive repls 07:45:15 which I belive mit scheme also has 07:45:22 but I haven't seen it in chicken or ypsilon or any other scheme i have used 07:45:56 dmoerner [n=dmr@134.173.91.168] has joined #scheme 07:47:27 recursive repls? 07:47:35 on exceptions/errors 07:48:45 I gathered that 07:48:50 what makes a repl recursive 07:49:16 oh, it's "recursive" in that if you exec something at one repl 07:49:19 and it throws an exception, 07:49:26 you get a new repl at the point of the exception 07:50:53 -!- QinGW [n=wangqing@203.86.89.226] has quit [Read error: 104 (Connection reset by peer)] 07:51:00 QinGW [n=wangqing@203.86.89.226] has joined #scheme 07:52:32 Ahh, like in a seperate environment? 07:53:10 hmm, lol, "recurisve repl" is either (1) obvious for those who have used it or (2) hard to explain for those who haven't ... when I first used it, I thought "OMG, black magic" 07:57:05 Hmm 07:58:53 gnomon_ [n=gnomon@CPE001d60dffa5c-CM000f9f776f96.cpe.net.cable.rogers.com] has joined #scheme 08:00:53 QinGW1 [n=wangqing@203.86.89.226] has joined #scheme 08:01:12 -!- QinGW [n=wangqing@203.86.89.226] has quit [Read error: 104 (Connection reset by peer)] 08:03:38 -!- dmoerner_ [n=dmr@134.173.91.133] has quit [Read error: 110 (Connection timed out)] 08:05:09 Fufie [n=innocent@80.203.225.86] has joined #scheme 08:05:09 -!- gnomon [n=gnomon@CPE001d60dffa5c-CM000f9f776f96.cpe.net.cable.rogers.com] has quit [Read error: 60 (Operation timed out)] 08:07:40 QinGW [n=wangqing@203.86.89.226] has joined #scheme 08:11:18 rstandy [n=rastandy@net-93-144-237-98.t2.dsl.vodafone.it] has joined #scheme 08:12:39 scheme48 also has them 08:13:01 -!- Fufie [n=innocent@80.203.225.86] has quit [Read error: 131 (Connection reset by peer)] 08:17:35 MichaelRaskin [n=MichaelR@213.171.48.239] has joined #scheme 08:23:11 -!- QinGW1 [n=wangqing@203.86.89.226] has quit [Connection timed out] 08:24:37 scheme48 has everything; but somehow I don't like it :-( 08:27:38 QinGW1 [n=wangqing@203.86.89.226] has joined #scheme 08:33:42 QinGW2 [n=wangqing@203.86.89.226] has joined #scheme 08:33:46 ski [n=slj@c-d413e055.1149-1-64736c10.cust.bredbandsbolaget.se] has joined #scheme 08:37:30 -!- QinGW2 [n=wangqing@203.86.89.226] has quit [Read error: 104 (Connection reset by peer)] 08:37:41 QinGW3 [n=wangqing@203.86.89.226] has joined #scheme 08:41:17 ponzao__1 [n=vesam@xdsl-83-150-86-25.nebulazone.fi] has joined #scheme 08:41:20 cornucopic [n=r00t@202.3.77.129] has joined #scheme 08:42:55 -!- QinGW [n=wangqing@203.86.89.226] has quit [Connection timed out] 08:43:46 QinGW [n=wangqing@203.86.89.226] has joined #scheme 08:43:53 Edico [n=Edico@unaffiliated/edico] has joined #scheme 08:48:22 -!- QinGW1 [n=wangqing@203.86.89.226] has quit [Connection timed out] 08:50:39 -!- QinGW [n=wangqing@203.86.89.226] has quit [Read error: 54 (Connection reset by peer)] 08:50:50 QinGW1 [n=wangqing@203.86.89.226] has joined #scheme 08:52:36 -!- dmoerner [n=dmr@134.173.91.168] has quit [Remote closed the connection] 08:54:19 dmoerner [n=dmr@88-34.res.pomona.edu] has joined #scheme 08:55:00 -!- ponzao___ [n=vesam@xdsl-83-150-86-25.nebulazone.fi] has quit [Read error: 110 (Connection timed out)] 08:56:39 -!- QinGW1 [n=wangqing@203.86.89.226] has quit [Read error: 104 (Connection reset by peer)] 08:57:04 QinGW [n=wangqing@203.86.89.226] has joined #scheme 08:59:10 -!- QinGW3 [n=wangqing@203.86.89.226] has quit [Connection timed out] 09:00:41 -!- Summermute [n=scott@c-76-114-212-247.hsd1.dc.comcast.net] has quit [] 09:02:30 QinGW1 [n=wangqing@203.86.89.226] has joined #scheme 09:09:13 -!- jao [n=jao@22.Red-213-98-198.dynamicIP.rima-tde.net] has quit [Read error: 110 (Connection timed out)] 09:12:38 araujo [n=araujo@gentoo/developer/araujo] has joined #scheme 09:18:10 -!- QinGW [n=wangqing@203.86.89.226] has quit [Connection timed out] 09:20:41 dmoerner_ [n=dmr@134.173.91.168] has joined #scheme 09:21:26 lowlycoder [n=x@unaffiliated/lowlycoder] has joined #scheme 09:23:16 QinGW [n=wangqing@203.86.89.226] has joined #scheme 09:26:07 npe [n=npe@195.207.5.2] has joined #scheme 09:26:39 -!- QinGW [n=wangqing@203.86.89.226] has quit [Read error: 54 (Connection reset by peer)] 09:26:57 lowlycod1r [n=x@redemption.Stanford.EDU] has joined #scheme 09:30:40 -!- lowlycoder [n=x@unaffiliated/lowlycoder] has quit [Read error: 145 (Connection timed out)] 09:32:38 QinGW [n=wangqing@203.86.89.226] has joined #scheme 09:33:09 -!- optimizer [n=x@unaffiliated/lowlycoder] has quit [Read error: 110 (Connection timed out)] 09:33:55 -!- dmoerner [n=dmr@88-34.res.pomona.edu] has quit [Read error: 110 (Connection timed out)] 09:35:39 -!- dmoerner_ is now known as dmoerner 09:36:44 -!- lowlycod1r [n=x@redemption.Stanford.EDU] has quit [Client Quit] 09:37:44 -!- QinGW [n=wangqing@203.86.89.226] has quit [Read error: 104 (Connection reset by peer)] 09:38:45 QinGW [n=wangqing@203.86.89.226] has joined #scheme 09:39:09 -!- QinGW1 [n=wangqing@203.86.89.226] has quit [Connection timed out] 09:43:40 -!- QinGW [n=wangqing@203.86.89.226] has quit [Read error: 104 (Connection reset by peer)] 09:43:45 QinGW1 [n=wangqing@203.86.89.226] has joined #scheme 09:44:12 jao [n=jao@80.24.4.74] has joined #scheme 09:51:51 -!- QinGW1 [n=wangqing@203.86.89.226] has quit [Read error: 104 (Connection reset by peer)] 09:52:39 QinGW [n=wangqing@203.86.89.226] has joined #scheme 10:00:44 -!- a-s [n=user@nat-240.ro.66.com] has quit [Remote closed the connection] 10:04:13 QinGW1 [n=wangqing@203.86.89.226] has joined #scheme 10:04:14 -!- QinGW1 [n=wangqing@203.86.89.226] has quit [Read error: 54 (Connection reset by peer)] 10:07:06 attila_lendvai [n=ati@catv-89-134-66-153.catv.broadband.hu] has joined #scheme 10:10:37 schmir [n=schmir@217.86.167.205] has joined #scheme 10:18:10 kenpp [n=kenpp@188-221-10-184.zone12.bethere.co.uk] has joined #scheme 10:20:10 -!- QinGW [n=wangqing@203.86.89.226] has quit [Read error: 110 (Connection timed out)] 10:23:59 gnomon [n=gnomon@CPE001d60dffa5c-CM000f9f776f96.cpe.net.cable.rogers.com] has joined #scheme 10:25:53 TR2N [i=email@89-180-196-67.net.novis.pt] has joined #scheme 10:35:22 -!- Axioplase is now known as Axioplase_ 10:41:16 -!- gnomon_ [n=gnomon@CPE001d60dffa5c-CM000f9f776f96.cpe.net.cable.rogers.com] has quit [Read error: 110 (Connection timed out)] 10:49:54 -!- schmir [n=schmir@217.86.167.205] has quit [Remote closed the connection] 11:02:42 dsmith_ [n=dsmith@cpe-173-88-196-177.neo.res.rr.com] has joined #scheme 11:03:55 antoszka [n=antoszka@unaffiliated/antoszka] has joined #scheme 11:06:20 -!- dsmith_ is now known as dsmith 11:09:55 masm [n=masm@bl7-199-96.dsl.telepac.pt] has joined #scheme 11:25:15 a-s [n=user@nat-240.ro.66.com] has joined #scheme 11:28:32 jeapostrophe [n=jay@69.169.141.110.provo.static.broadweavenetworks.net] has joined #scheme 11:28:46 schmir [n=schmir@mail.brainbot.com] has joined #scheme 11:29:21 -!- dsmith [n=dsmith@cpe-173-88-196-177.neo.res.rr.com] has quit [Read error: 60 (Operation timed out)] 11:30:05 xwl [n=user@125.34.171.60] has joined #scheme 11:32:47 -!- antoszka [n=antoszka@unaffiliated/antoszka] has quit ["+++ killed by SIGSEGV +++"] 11:42:32 -!- dmoerner [n=dmr@134.173.91.168] has quit [Remote closed the connection] 11:54:58 -!- jeapostrophe [n=jay@69.169.141.110.provo.static.broadweavenetworks.net] has quit [] 11:55:58 jeapostrophe [n=jay@69.169.141.110.provo.static.broadweavenetworks.net] has joined #scheme 11:57:07 -!- sstrickl [n=sstrickl@pool-129-44-182-54.bos.east.verizon.net] has quit [] 12:00:42 Fare [n=Fare@c-24-218-127-11.hsd1.ma.comcast.net] has joined #scheme 12:05:56 antoszka [n=antoszka@unaffiliated/antoszka] has joined #scheme 12:11:09 -!- emma [n=em@unaffiliated/emma] has quit [Read error: 110 (Connection timed out)] 12:23:34 -!- MichaelRaskin [n=MichaelR@213.171.48.239] has quit [Read error: 110 (Connection timed out)] 12:29:11 mario-goulart [n=user@67.205.85.241] has joined #scheme 12:30:04 untouchable_ [i=untoucha@dhcp-129-64-166-32.dorm.brandeis.edu] has joined #scheme 12:31:07 -!- Fare [n=Fare@c-24-218-127-11.hsd1.ma.comcast.net] has quit [Read error: 104 (Connection reset by peer)] 12:32:22 Fare [n=Fare@c-24-218-127-11.hsd1.ma.comcast.net] has joined #scheme 12:33:17 -!- untouchable [i=untoucha@dhcp-129-64-166-32.dorm.brandeis.edu] has quit [Nick collision from services.] 12:33:21 -!- untouchable_ is now known as untouchable 12:34:12 -!- Chris is now known as Sphere 12:36:29 -!- Sphere is now known as Chris 12:37:48 recursive REPL: 3) "Why is the REPL prompt keeping tally of how many typos I've made?" 12:40:17 shyam_k [n=user@unaffiliated/shyam-k/x-8459115] has joined #scheme 12:42:51 exercise 1.33 of sicp(http://mitpress.mit.edu/sicp/full-text/book/book-Z-H-12.html#call_footnote_Temp_96) asks to write function for "filtered accumulator" which accepts a filter. 12:42:53 -rudybot:#scheme- http://tinyurl.com/yzb6mxu 12:43:40 For the first part of the question it asks to use "prime?" predicate which usually have one argument while for the second part it says to use "relative-prime?" as predicate which requires two arguments.. 12:43:56 is there any "proper" way of doing things with the things so far specified on the book? 12:45:24 other than the "filter?" dummy-function used in filtered-accumulator having two variable and rewriting prime? to be able to accept two variable(one being a thing it neglects or so).. 12:45:36 davazp [n=user@56.Red-79-153-148.dynamicIP.rima-tde.net] has joined #scheme 12:46:46 -!- jay-mccarthy [n=jay@lallab.cs.byu.edu] has quit [Read error: 110 (Connection timed out)] 12:49:56 -!- langmart` is now known as langmartin 12:54:20 found a solution http://blog.zhangsen.org/2008/09/sicp-exercise-132-133.html nevermind...:) 12:54:48 shyam_k: how does relative-prime relate to the need of changing the predicate interface 12:54:51 ah 12:55:02 you could have come up with a good solution yourself 12:55:48 joelr [n=joelr@222.Red-83-58-219.dynamicIP.rima-tde.net] has joined #scheme 12:56:02 good day! has any non-java scheme been ported to android? 12:58:27 C-Keen: i was thinking all about making filtered-accumulator better to accept a filter for relative-prime.. instead of thinking to use it properly:) now i got it:) 13:00:34 heh nice talk by matthias felleisen http://www.vimeo.com/6631514 13:02:31 *shyam_k* book marks it. 13:04:39 sstrickl [n=sstrickl@129.10.110.45] has joined #scheme 13:05:36 -!- thesnowdog [i=thesnowd@122.110.23.61] has quit [Read error: 110 (Connection timed out)] 13:08:25 thesnowdog [i=thesnowd@114.73.161.136] has joined #scheme 13:25:59 albacker [n=eni@unaffiliated/enyx] has joined #scheme 13:26:01 -!- mornfall [n=mornfall@kde/developer/mornfall] has quit [Read error: 60 (Operation timed out)] 13:27:06 mornfall [n=mornfall@anna.fi.muni.cz] has joined #scheme 13:27:41 -!- jeapostrophe [n=jay@69.169.141.110.provo.static.broadweavenetworks.net] has quit [] 13:43:49 luz [n=davids@139.82.89.70] has joined #scheme 13:47:23 jay-mccarthy [n=jay@lallab.cs.byu.edu] has joined #scheme 13:52:03 -!- luz [n=davids@139.82.89.70] has quit ["Client exiting"] 13:55:28 -!- samth_away is now known as samth 13:55:55 luz [n=davids@139.82.89.70] has joined #scheme 13:57:16 Interesting, most c# coders I asked argue *against* the usefulness of typedefs.. It seems aliasing names is *not* a thing they like 13:57:45 ecraven, what's their rationale? 13:57:56 the typedef not being opaque enough? 13:58:06 or falsely opaque? 13:58:29 ".. not useful .." ;) 13:58:36 nothing better showed up 13:59:02 (concrete example why I needed them: type 'time' is 'int' now, but may be forced to 'long' later on) 13:59:06 who needs abstraction, anyway 13:59:16 Indeed, that seems to be the question 13:59:27 -!- samth [n=samth@punge.ccs.neu.edu] has quit ["Ex-Chat"] 13:59:37 abstraction is for losers. I only use 36-bit words everywhere, anyway. 13:59:38 They probably want you to create a class TimeValue 13:59:40 :) 14:00:03 With AddOneSecond and SubOneSecond methods for manipulation 14:00:06 -!- dnm [n=dnm@c-68-49-47-248.hsd1.va.comcast.net] has quit [] 14:01:09 sjamaan: the nice thing is, you can't inherit from System.Int32 (or any value type). so there is no way short of writing a wrapper class (and forwarding any and all methods)... 14:02:27 samth [n=samth@129.10.112.208] has joined #scheme 14:02:28 imagine the "interesting" effects if you could inherit, and (typep x 'System.Int32) meant something completely different from what you expect... 14:02:59 I wish I were programming Dylan instead of C# :) much more interesting 14:03:31 ecraven, well, maybe you can get money from M$ for porting Dylan to .NET? 14:03:45 ecraven: just use F#: type time = System.Int32 14:04:33 chandler: does that work across files? 14:04:57 I can do "using time = System.Int32", but it is only declared within the one file 14:05:14 It works with modules, just like any other type... 14:06:06 I wish I could convince my colleagues to switch :/ 14:07:19 -!- copumpkin [n=pumpkin@c-24-63-67-154.hsd1.nh.comcast.net] has quit [Read error: 110 (Connection timed out)] 14:07:30 It looks like the next beta will be released this week too 14:07:55 ecraven, the WHOLE point of using .NET or any other platform is about NOT having to convince anyone to switch 14:08:08 if your platform requires every one to agree, it has FAILED 14:08:19 Except for the colleagues who might have to read or modify your code... 14:08:58 Exactly. That's like saying you can use Chicken in a project that's otherwise written in C 14:09:06 (because it compiles down to C and can integrate) 14:09:18 -!- joelr [n=joelr@222.Red-83-58-219.dynamicIP.rima-tde.net] has left #scheme 14:10:33 I wouldn't mind a Dylan.NET though. 14:13:07 -!- leppie [n=lolcow@dsl-243-13-101.telkomadsl.co.za] has quit [] 14:15:44 thehcdreamer [n=thehcdre@94.198.78.26] has joined #scheme 14:17:09 most of my friends who were taking an undergrad degree in electronics and communications are now recruited by one major software company of my country. My friends don't know how to program. There was one single paper on C for which they by-hearted the programs.. now they are at the company training campus to become "software engineers" in the next six months.. how does it work? i hear they are more like "coders"(whats that?) what do 14:17:09 they actually do there? 14:18:36 i mean say how does it actually differ from a free software project?!!!:) 14:19:08 coz i know more about how things work on a free software project:) 14:21:54 chandler, riaxpander, incidentally, gives an error on the c.l.s LET-SYNTAX example, for rebinding FOO in an environment. 14:24:22 pumpkin [n=pumpkin@pumpkinpro.cs.dartmouth.edu] has joined #scheme 14:25:46 shyam_k: probably learn the syntax of the company's favorite programming language (which is probably something object oriented) learn some design patterns and some style issues. "coder" is just a hip word for programmer 14:25:55 -!- Fare [n=Fare@c-24-218-127-11.hsd1.ma.comcast.net] has quit [Read error: 113 (No route to host)] 14:29:16 chandler, riaxpander also treats the LET-SYNTAX examples in as the same errors. 14:34:02 chandler, also, riaxpander does not treat synonyms for BEGIN any differently from BEGIN -- in general, riaxpander deals with the meanings of names and expressions, not their text, which appears to be different from Ikarus (which in turn seems to be pretty broken!). 14:34:12 s/names and expressions/names and forms/1 14:36:16 (This is why, for example, ((let-syntax ((foo )) foo) ...) works to invoke , and also why ( ...) does the same.) 14:36:38 OK, what bugs me about Aziz' logic for LET-SYNTAX & DEFINE-SYNTAX is that it doesn't match the behavior for LET + DEFINE. 14:37:20 In (let ((foo ...)) (define foo ...) ), references to foo inside refer to the internal define. 14:37:49 Fare [n=Fare@c-24-218-127-11.hsd1.ma.comcast.net] has joined #scheme 14:38:00 What's different about LET-SYNTAX, foof, at least in the R6RS, is that it is treated as a splicing form, rather than as a scoping form. 14:38:56 You can always get a scoping form by writing (let-syntax (...) (let () ...)) rather than (let-syntax (...) ...). 14:39:44 Riastradh: Right, but it could still apply the internal define-syntax to the body while splicing. 14:40:01 C-Keen: hmm.. got it.. these days these companies shift their training centres to engineering colleges itself, where selected students irrespective of all branch(electronics, electrical computers or even mechanical it seems;-) ) are taught about object oriented programming:) 14:40:35 shyam_k: that matches my personal experience at least. 14:43:20 *shyam_k* is just self studying and reading around these days familiarizing the basics of programming that i can get active on projects to get the real experience:) 14:45:10 was studying k&r and now reading sicp.. have to read about c++ too later.. 14:45:16 -!- a-s [n=user@nat-240.ro.66.com] has quit [Remote closed the connection] 14:45:22 nah, save that time :) 14:45:36 to do what? 14:46:02 save that time to study c++? 14:46:42 foof, I could implement that semantics in riaxpander, but the naive way to do that would cause (begin (let-syntax (<1>) (define-syntax foo <2>)) (foo)) to behave differently depending on whether FOO is listed in <1>, even if it is not used in <2>. (The `naive way' is for the DEFINE-SYNTAX to behave like a SET!, because there isn't a new contour for the internal scope: there is the splicing contour of LET-SYNTAX where names are f 14:46:49 Yikes. 14:46:59 C-Keen: i want to contribute to bayonne, which surprisingly is all about c++:) https://savannah.gnu.org/projects/bayonne :) 14:47:13 oh well then do it 14:47:31 (The `naive way' is for the DEFINE-SYNTAX to behave like a SET!, because there isn't a new contour for the internal scope: there is the splicing contour of LET-SYNTAX where names are first resolved, and there is the enclosing contour where definitions take effect.) I haven't thought through the implications of a less naive way. 14:49:02 Anyway, I have to run now. 14:57:02 Riastradh: Aziz claims the bug with syntactic wrappers of `begin' is just an unrelated bug, but I'm sure that he can't fix it without changing the behavior of Ikarus on Derrick's first example. I also think the Larceny behavior has some degenerate edge cases as well, which I will explore. 15:09:04 -!- mmc [n=mima@esprx02x.nokia.com] has quit [Remote closed the connection] 15:13:44 sepult [n=levgue@87.78.172.47] has joined #scheme 15:14:07 -!- ASau [n=user@77.246.230.154] has quit ["off"] 15:14:20 -!- sepult [n=levgue@87.78.172.47] has quit [Read error: 131 (Connection reset by peer)] 15:15:49 sepult [n=levgue@xdsl-87-78-172-47.netcologne.de] has joined #scheme 15:26:20 -!- npe [n=npe@195.207.5.2] has quit [] 15:27:01 chandler, let me know if you ever come across degenerate edge cases in riaxpander! 15:28:10 I'm not actively testing it, as I don't currently have Chicken 3 around anywhere. 15:28:27 You can also load it into Scheme48 or MIT Scheme and call it manually. 15:28:43 I'll try that out later, then. 15:29:36 -!- ineiros [n=itniemin@james.ics.hut.fi] has quit [Read error: 104 (Connection reset by peer)] 15:29:42 ineiros [n=itniemin@james.ics.hut.fi] has joined #scheme 15:29:43 For MIT Scheme, just load mit-load.scm (or mit-compile.scm first if you want it to run faster); for Scheme48, load s48-interfaces.scm and s48-packages.scm into the config package, and open the SYNTACTIC structure. In both cases, you just evaluate (SEXP/EXPAND
(MAKE-SEXP-ENVIRONMENT)), or (SEXP/EXPAND* (MAKE-SEXP-ENVIRONMENT)). 15:33:21 -!- sepult [n=levgue@xdsl-87-78-172-47.netcologne.de] has quit [Remote closed the connection] 15:41:07 Oh, I see: the R6RS is just inconsistent. 15:41:24 What?! Say it ain't so! 15:41:44 I don't think there's any reason for LET-SYNTAX and LETREC-SYNTAX to be restricted to be definition-only or expression-only, if BEGIN is not restricted thus. 15:42:18 I wish other languages let you use - inside symbol names 15:43:21 *foof* gets Haskell envy for the use of prime in identifiers 15:43:24 I understand why they don't, but still 15:43:32 yeah, that too :P 15:43:39 You can always use * instead. 15:43:47 I use ^ 15:43:58 Since it is never interpreted as an operator, there is no danger of its being confused with pullbacks and pushforwards. 15:44:00 I use * around constants, usually 15:44:56 vim does the right thing for those 15:45:00 I should learn to use emacs 15:45:22 That's unusual, Elly. Circumfixed asterisks usually mean mutable globals. 15:45:40 hm 15:45:44 (Thus, they draw attention to design errors!) 15:45:45 what do constants look like then? 15:46:01 There is no general convention for them. 15:46:10 hrm 15:46:16 uppercase, like in C? 15:46:19 If there is a group of them related by some common theme, I prefix the name of the theme and a colon to all their names. 15:46:23 No, that doesn't distinguish them. 15:46:41 (`That' being case distinctions.) 15:46:59 why not? 15:47:03 I realize scheme is case-insensitive 15:47:08 but you can write them in all uppercase 15:47:16 Well, sure. 15:47:20 of course then when you talk about code they stop standing out 15:47:33 Seldom do I come across constants, though, that stand alone, and not in some group related by a common theme. 15:47:48 well, what do groups of constants look like? 15:49:02 E.g., (define interrupt-bit:keyboard 0) (define interrupt-bit:timer 1) (define interrupt-bit:post-gc 2) ... 15:50:36 hrm 15:50:47 that still doesn't really convey "constant" to me 15:51:03 if # wasn't special, I'd use that 15:51:06 maybe $ 15:52:15 What's more important to convey -- `constant', or `the name of an interrupt bit'? 15:52:33 Generally, not circumfixing asterisks conveys `constant'. 15:53:08 hrm 15:53:10 I guess 15:54:03 >.> my DM is adding a group of librarians to his campaign whose mission is to organize the world's information and make it universally accessible and useful, named the Librarians of Goog 15:54:07 npe [n=npe@94-224-251-223.access.telenet.be] has joined #scheme 15:54:09 I also use ~flag to denote flags that can be joined by bitwise-ior - the identifier looks like it's waving a little flag. 15:54:36 agh 15:54:46 that would drive me insane thinking it was bitwise-not 15:55:02 No, that's ¬. 15:55:17 that is not what ? is for :P 15:55:24 ejs [n=eugen@95.135.107.80] has joined #scheme 15:55:42 Even my random configuration of irssi + screen + ssh + terminal is capable of displaying that! 15:56:14 I was about to say, I think that's the first non-ASCII character I've ever seen Riastradh type! 15:56:39 It's one of the few that is typable in this configuration. 15:57:13 I am using irssi + screen + ssh + terminal, but I think my screen was not screen -U'd 15:57:52 Oh, hey, `screen -U' makes this work a lot better. 15:58:06 ...er, no, it doesn't. Now my earlier ¬ looks like a ¬. 15:58:20 hey 15:58:29 that showed up as a logical not :P 15:58:41 So which of me is broken? 15:58:48 well, I don't know 15:58:56 jlongster [n=user@c-68-59-187-95.hsd1.tn.comcast.net] has joined #scheme 15:59:16  15:59:19 apparently at least me 15:59:25 since that was a unicode lambda 15:59:52 Elly|spare [n=elly@VECTIS.RES.CMU.EDU] has joined #scheme 15:59:56 ? 16:00:00 nope, didn't work there either 16:00:46 -!- poe [n=poe@unaffiliated/poe] has quit [] 16:01:03 maybe my font just doesn't contain unicode lambda 16:01:14 ? 16:01:15 instead of a question mark, I get a blank space on debian 16:01:29 that also looked like a question mark on both machines 16:01:39 poe [n=poe@unaffiliated/poe] has joined #scheme 16:01:43 I might have actually inserted a question mark. I honestly don't know. 16:01:55 -!- Elly|spare [n=elly@VECTIS.RES.CMU.EDU] has quit [Client Quit] 16:02:24 still no love with LOCALE set to en_US.UTF8 16:03:03 Did you export UNICODE_ME_HARDER=1 ? 16:03:07 :P 16:03:18 Argh! Mac OS X's `Character Palette' doesn't show the code point. What lunatic decided that it would be helpful to omit that? 16:04:32 ? 16:04:32 doh 16:04:37 I do not have my fonts installed 16:04:49 I give up. 16:05:36 hrm 16:06:21 I really, really hate linux fonts 16:06:25 did I mention that? 16:06:47 Who doesn't? 16:08:01 I can't seem to type a lambda in xterm, even in unicode mode 16:08:20 Oh, gosh, xterm. That sounds hard. 16:08:57 hkBst [n=hkBst@gentoo/developer/hkbst] has joined #scheme 16:12:44 I do not understand why copying and pasting a lambda yields λ 16:12:58 sepult [n=levgue@xdsl-87-78-172-47.netcologne.de] has joined #scheme 16:13:33 -!- cornucopic [n=r00t@202.3.77.129] has quit ["so long.."] 16:13:46 Elly: encoding mismatch? 16:13:55 quite 16:14:24 but I have told xterm to use utf-8 16:14:25 Elly, looks like something decoded the UTF-8 octets as ISO-8859-1 octets, and then encoded the resulting code point sequence in UTF-8. 16:14:54 hm 16:15:07 according to the man page, the cut buffer is coerced to ISO8859 16:15:19 -!- langmartin [n=user@exeuntcha.tva.gov] has quit ["ERC Version 5.3 (IRC client for Emacs)"] 16:15:24 let's see if firefox ignores that 16:15:37 aha, it does :) 16:15:40 cky [n=cky@166.165.211.119] has joined #scheme 16:15:40 langmartin [n=user@152.85.133.62] has joined #scheme 16:15:54 Elly|spare [n=elly@VECTIS.RES.CMU.EDU] has joined #scheme 16:16:00 Behold!  16:16:07 my beautiful lambdas 16:16:14 Looks like  to me. 16:16:24 that's what it is! 16:16:26 excellent 16:16:54 Just a minute: that means that my screen is now interpreting the octets as ISO-8859-1. 16:17:00 You broke me, Elly! 16:17:03 I did not! 16:17:16 I am now speaking UTF-8 all the way 16:17:20 those were UTF-8 lambdas 16:18:15 Hmm. If I *omit* -U from screen, I see lambdas. 16:18:18 I used to know how to type unicode directly 16:18:27 maybe your LOCALE is set to something silly like shift-jis? 16:18:38 ...and all my ¬'s look like ¬'s. 16:18:47 aren't linux fonts fun? 16:18:55 Actually, Linux isn't involved here. 16:18:59 really? 16:19:18 *cky* uses wterm, which only supports ISO-8859-1, so all those characters looked like ? to me. :-D 16:19:32 jeapostrophe [n=jay@lallab.cs.byu.edu] has joined #scheme 16:20:04 I do not think I have a compose key bound 16:20:13 which is probably why it is difficult to type unicode keys 16:20:15 *cky* will view the IRC logs with a UTF-8-capable terminal just to have full...appreciation of Elly's lambdas. :-) 16:20:30 mzscheme appreciates my lambdas fully as well :) 16:20:32 *Elly|spare* -> food 16:20:45 Elly|spare: :-) 16:21:29 -!- thehcdreamer [n=thehcdre@94.198.78.26] has quit [] 16:22:20 Riastradh: I've given up on irssi and UTF-8. I start it correctly, and it always breaks sooner or later on its own. 16:23:30 It seems happy know, except that the input buffer is schizophrenic about counting default grapheme clusters, which it sometimes counts as octets, sometimes counts as code points, sometimes counts as default grapheme clusters, and sometimes LOOK OVER THERE A FISH!. 16:23:32 Elly|spare: The convention for constants is +this-is-a-constant+, at least in my use (and in the CL world). 16:23:46 All I get is fish behavior. 16:23:58 (+THIS-IS-A-CONSTANT+ isn't valid lexical syntax in Scheme.) 16:24:38 `now' 16:24:43 (It's up to the discretion of the implementation. Obviously, I'd forgotten about that.) 16:24:43 Go away, K. 16:25:17 (Implementations that accept that are not very discreet.) 16:25:17 (...although they may be discrete.) 16:25:35 Hehehehe. 16:26:00 -!- jao [n=jao@80.24.4.74] has quit [Read error: 145 (Connection timed out)] 16:26:08 (No, the other meaning of discretion.) 16:26:38 (Which word goes with which -- discretion, discre[e]t[e]ness, and discrete, discreet?) 16:26:47 discretion => discreet 16:27:04 It was a rhetorical question, cky. 16:27:12 Whoops. 16:28:10 Speaking of things in the CL world that doesn't translate to Scheme, I've noticed that Scheme does not have ,. (or what I might call unquote-splicing!, in line with SRFI-1's naming), and wonder if that's...by design. 16:29:10 Mutation is hard. 16:29:19 Let's go constant-folding. 16:29:37 chandler: *lol* 16:30:02 Me, I'm going quesodilling. I'm hungry. 16:30:14 That sounds like a fantastic idea. 16:30:29 Enjoy! 16:34:35 -!- davazp [n=user@56.Red-79-153-148.dynamicIP.rima-tde.net] has quit [Remote closed the connection] 16:36:09 jonrafkind [n=jon@crystalis.cs.utah.edu] has joined #scheme 16:38:33 gpaci [n=gpaci@66.159.87.107] has joined #scheme 16:39:01 Hi. I'm looking through Krishnamurthi's book and came across something I'm not familiar with: 16:39:37 (local ([define .... 16:39:53 What is "local"? Scheme48 doesn't seem to understand it. 16:40:30 a PLT extension 16:40:34 makes a lot of sense 16:40:44 but not portable to other schemes 16:40:54 though you could probably write a macro... 16:42:03 Hm. Unless I had the macro in hand, it would probably be easier to just install PLT scheme :-) 16:42:03 blackened` [n=blackene@ip-89-102-28-224.karneval.cz] has joined #scheme 16:42:30 (I'm proud of myself that I managed to define let/cc as a macro, apparently correctly.) 16:42:50 mokogobo [n=mokogobo@71.31.214.210] has joined #scheme 16:43:29 -!- schmir [n=schmir@mail.brainbot.com] has quit [Remote closed the connection] 16:43:32 Fare: Are you in Boston? 16:48:39 yes 16:48:39 gpaci, if you're using PLAI, you should definitely be using PLT Scheme 16:49:25 samth: I'm not exactly using it; I was just trying to refresh my understanding of continuations. 16:49:51 I remember reading his lecture notes on them a couple of years ago; I guess that's all in the book now. 16:50:35 actually samth is more in boston than I 16:50:41 *Fare* denounces his comrade and runs away 16:50:57 only during the day 16:51:47 at night you turn into a bat and fly away? 16:56:23 -!- jeapostrophe [n=jay@lallab.cs.byu.edu] has quit [Read error: 104 (Connection reset by peer)] 16:56:53 jay-mccarthy_ [n=jay@128.187.81.189] has joined #scheme 16:57:40 -!- kniu [n=kniu@ELMUNDO.RES.CMU.EDU] has quit [Read error: 60 (Operation timed out)] 17:00:17 -!- Fare [n=Fare@c-24-218-127-11.hsd1.ma.comcast.net] has quit ["Leaving"] 17:00:57 Kirill [n=user@74.12.124.120] has joined #scheme 17:01:28 hi! can someone recommend an emacs scheme mode, where I can do stuff like "eval current definition in my running scheme", etc.? I'm using mzscheme 17:03:21 Just type `M-x run-scheme RET'. In your Scheme buffers, C-M-x should do the right thing. 17:03:50 Wish I was back in Boston. Or Somerville. I'm not picky. 17:04:02 I wish I was in Pittsburgh 17:04:06 mmc [n=mima@89.27.122.78] has joined #scheme 17:04:08 *Elly* looks around 17:04:10 I got my wish! 17:04:31 Elly: I have a seven-year-old with an unreasoning hatred of Pittsburgh. 17:04:49 weird 17:05:03 Yeah; he claims it's "too suburban." 17:05:12 We have to change the subject when he brings it up. 17:05:24 pittsburgh is too suburban? 17:05:45 ASau [n=user@ppp91-76-57-158.pppoe.mtu-net.ru] has joined #scheme 17:05:45 that's a new one 17:05:45 Did I mention "unreasoning"? He's only been there once. 17:05:55 the complains I have heard about it which are valid is that it's decaying, the infrastructure is crumbling, the weather is awful, and there's fuck-all to do if you aren't a college student 17:05:59 complaints, even 17:07:00 Sadly, those aren't unique to Pittsburgh. The Flats seemed fun, though. 17:07:33 also the city as a whole is dirt-poor and the public transit system tosses a coin to decide whether to be solvent every year 17:07:49 Solvent? When it rains, the whole system dissolves in the water? 17:08:16 Try repeating this: "At least we're not Detroit!" 17:09:12 gpaci: oh, that works 17:09:22 however! 17:09:34 there is a top-notch university here, and I *am* a college student, so it's all okay :) 17:09:52 Pitt's good, too. 17:10:07 Pitt's medical school is awesome 17:10:26 our (CMU's) CS department and some of our engineering departments are world-class 17:10:28 A friend of mine's wife went there; she runs an ER now. 17:10:41 CMU's drama is good, too, right? 17:10:48 I guess so? 17:10:55 I don't interact with drama people much :P 17:11:12 -!- ASau [n=user@ppp91-76-57-158.pppoe.mtu-net.ru] has quit [Remote closed the connection] 17:11:18 ASau [n=user@ppp91-76-57-158.pppoe.mtu-net.ru] has joined #scheme 17:11:23 Gee, I thought drama was a core requirement at CMU, just like differential equations at MIT. 17:12:29 -!- Kirill [n=user@74.12.124.120] has left #scheme 17:13:27 haha :P 17:13:31 in a manner of speaking! 17:13:44 -!- ASau [n=user@ppp91-76-57-158.pppoe.mtu-net.ru] has quit [Read error: 104 (Connection reset by peer)] 17:13:47 the current drama is the proposed rewrite of the CS curriculum 17:13:57 ASau [n=user@ppp91-76-57-158.pppoe.mtu-net.ru] has joined #scheme 17:13:57 removing Java from it entirely and replacing it with Python and Standard ML 17:14:30 kniu [n=kniu@CMU-284828.WV.CC.CMU.EDU] has joined #scheme 17:14:39 That doesn't sound so bad. 17:14:45 -!- jay-mccarthy_ is now known as jeapostrophe 17:14:47 yeah 17:14:51 -!- ejs [n=eugen@95.135.107.80] has quit [Read error: 145 (Connection timed out)] 17:14:51 What, does anyone oppose it or something? 17:14:57 well 17:15:02 there's one controversial change in it 17:15:11 which is that the intro C class gets split into two smaller classes 17:15:13 -!- jeapostrophe [n=jay@128.187.81.189] has quit [] 17:15:28 That sounds unrelated to chucking Java. 17:15:30 -!- shyam_k [n=user@unaffiliated/shyam-k/x-8459115] has quit ["ERC Version 5.3 (IRC client for Emacs)"] 17:15:31 one of which teaches a local dialect called "L5" which is a proper subset of C (doesn't have pointer arithmetic, all variables are initialized, etc) 17:15:41 and the other of which teaches you just the sharp edges of real C 17:15:47 I am fine with getting rid of Java 17:15:58 people have raised concerns that it will make it basically impossible for students to get internships 17:16:06 (No pointer arithmetic? How do you deal with non-static arrays?) 17:16:17 compiler-enforced bounds checking 17:16:22 at runtime if necessary 17:16:22 Oh, that's ridiculous. Students are capable of learning languages. 17:16:44 -!- jlongster [n=user@c-68-59-187-95.hsd1.tn.comcast.net] has quit [Remote closed the connection] 17:16:48 I am disappointed that my proposal didn't work out 17:16:58 I proposed replacing everything but the systems programming track with scheme 17:17:01 By that token, they should also be teaching Perl, C#, Visual Basic .NET or whatever, and whatever other languages are popular these days in companies. 17:17:20 jlongster [n=user@c-68-59-187-95.hsd1.tn.comcast.net] has joined #scheme 17:17:20 for that matter, we *do* teach Perl 17:17:30 the "Intro C and Unix" class covers it for two weeks 17:18:13 Yechh, why? 17:18:26 I get by on Unix without Perl -- quite happily, in fact. 17:18:27 because it's supposed to teach you how to get stuff done on a unix box? 17:18:45 it teaches: C, bash ins and outs, gdb, make, and perl 17:19:21 Bash? That's even sillier. 17:19:44 by 'bash ins an outs' I mean stuff like pipes and & 17:19:44 a lot of people come in not knowing any of it 17:19:44 Do you mean `bash' or `Bourne shell'? 17:19:46 -!- roderic [n=user@bubbles.ccs.neu.edu] has quit [Remote closed the connection] 17:19:56 (or `Bourne-like shells', i.e. `sh') 17:19:56 we use some bashisms, I think 17:20:08 to e honest it's been like three years since I even looked at the syllabus for that class 17:20:20 Why? That's very unhelpful: it's a terrible language for doing anything non-trivial, and using bashisms only makes it non-portable as well. 17:20:21 my experience with it is grading the people that come out of it :P 17:20:36 Basically, using bash to do just about anything is stupid. 17:20:51 don't look at me :P 17:21:02 when I took the class it was just C, make, and gdb 17:21:03 Uhm, well, sometimes doing stuff in bash is fun :) 17:21:17 -!- poe [n=poe@unaffiliated/poe] has quit [Read error: 110 (Connection timed out)] 17:21:17 (Maybe it is justifiable within particular GNU/Linux distributions that always come with bash -- although I recall hearing that Debian was replacing bash by a smaller shell, dash, anyway.) 17:21:31 debian installs "always" have bash though 17:21:42 anyway, yeah 17:21:46 Riastradh: debian also ships bash, the point was to be able to boot without bash. 17:21:58 the intro C and unix class leads into systems programming which leads into operating systems 17:22:15 Leonidas: well, also to keep people who say '#!/bin/sh' honest :P 17:23:34 mrsolo [n=mrsolo@209.131.62.113] has joined #scheme 17:24:13 heh, that too :) 17:24:16 -!- peddie [n=peddie@TEP.MIT.EDU] has quit ["leaving"] 17:24:21 peddie [n=peddie@TEP.MIT.EDU] has joined #scheme 17:24:46 Leonidas: Doing stuff in bash? This is madness! 17:26:06 I'm trying to use scsh, myself. 17:26:17 Unfortunately, scsh is not in a very happy state these days. 17:26:49 poe [n=poe@unaffiliated/poe] has joined #scheme 17:27:16 gpaci: it is madness, and exactly because it is so limited, it is fun, probably in a sick way. 17:28:01 of course, at some (rather early) point it gets too painful but still... 17:33:01 -!- ASau [n=user@ppp91-76-57-158.pppoe.mtu-net.ru] has quit [Read error: 104 (Connection reset by peer)] 17:34:37 ASau [n=user@ppp91-76-57-158.pppoe.mtu-net.ru] has joined #scheme 17:35:19 -!- kniu [n=kniu@CMU-284828.WV.CC.CMU.EDU] has quit [Read error: 110 (Connection timed out)] 17:38:16 kniu [n=kniu@ELMUNDO.RES.CMU.EDU] has joined #scheme 17:40:07 -!- ASau [n=user@ppp91-76-57-158.pppoe.mtu-net.ru] has quit [Read error: 104 (Connection reset by peer)] 17:40:16 ASau [n=user@ppp91-76-57-158.pppoe.mtu-net.ru] has joined #scheme 17:41:25 -!- gpaci [n=gpaci@66.159.87.107] has quit [Read error: 131 (Connection reset by peer)] 17:42:56 gpaci [n=gpaci@66.159.87.107] has joined #scheme 17:43:25 -!- ASau [n=user@ppp91-76-57-158.pppoe.mtu-net.ru] has quit [Read error: 54 (Connection reset by peer)] 17:44:08 ASau [n=user@ppp91-76-57-158.pppoe.mtu-net.ru] has joined #scheme 17:49:13 -!- ASau [n=user@ppp91-76-57-158.pppoe.mtu-net.ru] has quit [Remote closed the connection] 17:49:19 ASau [n=user@ppp91-76-57-158.pppoe.mtu-net.ru] has joined #scheme 17:50:01 emma [n=a59bcafe@gateway/web/flash/eris.tuxhacker.org/x-wtplwhhaydkdstpd] has joined #scheme 17:51:25 -!- gpaci [n=gpaci@66.159.87.107] has quit [Read error: 145 (Connection timed out)] 17:53:36 gpaci [n=gpaci@gpaci-02.dsllan.toad.net] has joined #scheme 17:53:43 elf [i=elf@antenora.aculei.net] has joined #scheme 17:57:54 -!- ASau [n=user@ppp91-76-57-158.pppoe.mtu-net.ru] has quit [Read error: 104 (Connection reset by peer)] 17:58:35 ASau [n=user@ppp91-76-57-158.pppoe.mtu-net.ru] has joined #scheme 18:01:07 dzhus [n=sphinx@93-80-245-94.broadband.corbina.ru] has joined #scheme 18:01:14 -!- ASau [n=user@ppp91-76-57-158.pppoe.mtu-net.ru] has quit [Read error: 104 (Connection reset by peer)] 18:01:23 apgwoz` [n=apgwoz@216.156.136.2.ptr.us.xo.net] has joined #scheme 18:01:43 ASau [n=user@ppp91-76-57-158.pppoe.mtu-net.ru] has joined #scheme 18:02:24 -!- apgwoz` is now known as release 18:02:29 -!- release is now known as apgwoz` 18:03:00 -!- apgwoz` is now known as release 18:04:23 MrFahrenheit [n=RageOfTh@users-38-219.vinet.ba] has joined #scheme 18:05:13 -!- emma [n=a59bcafe@gateway/web/flash/eris.tuxhacker.org/x-wtplwhhaydkdstpd] has quit [Remote closed the connection] 18:05:55 -!- apgwoz [n=apgwoz@216.156.136.2] has quit [Read error: 145 (Connection timed out)] 18:05:56 jao [n=jao@22.Red-213-98-198.dynamicIP.rima-tde.net] has joined #scheme 18:06:28 -!- release is now known as apgwoz 18:07:52 -!- gpaci [n=gpaci@gpaci-02.dsllan.toad.net] has quit [Read error: 104 (Connection reset by peer)] 18:10:20 gpaci [n=gpaci@gpaci-02.dsllan.toad.net] has joined #scheme 18:10:21 -!- mokogobo [n=mokogobo@71.31.214.210] has quit ["Leaving"] 18:11:00 Nshag [i=user@Mix-Orleans-106-4-235.w193-248.abo.wanadoo.fr] has joined #scheme 18:11:09 Summermute [n=scott@c-76-114-212-247.hsd1.dc.comcast.net] has joined #scheme 18:12:02 -!- luz [n=davids@139.82.89.70] has quit ["Client exiting"] 18:21:41 bweaver [n=user@75-148-111-133-Chattanooga.hfc.comcastbusiness.net] has joined #scheme 18:23:37 -!- ASau [n=user@ppp91-76-57-158.pppoe.mtu-net.ru] has quit [Read error: 104 (Connection reset by peer)] 18:23:41 lolcow [n=lolcow@dsl-243-13-101.telkomadsl.co.za] has joined #scheme 18:23:54 ASau [n=user@ppp91-76-57-158.pppoe.mtu-net.ru] has joined #scheme 18:26:20 nothingHappens [n=nothingH@173-25-176-111.client.mchsi.com] has joined #scheme 18:32:41 -!- ASau [n=user@ppp91-76-57-158.pppoe.mtu-net.ru] has quit [Read error: 54 (Connection reset by peer)] 18:33:14 ASau [n=user@91.76.57.158] has joined #scheme 18:33:50 mabes [n=mabes@66.236.74.194] has joined #scheme 18:42:13 cky_ [n=cky@166.165.108.210] has joined #scheme 18:42:15 -!- ASau [n=user@91.76.57.158] has quit [Read error: 131 (Connection reset by peer)] 18:42:26 ASau [n=user@ppp91-76-57-158.pppoe.mtu-net.ru] has joined #scheme 18:45:05 -!- cky [n=cky@166.165.211.119] has quit [Read error: 145 (Connection timed out)] 18:45:06 -!- ASau [n=user@ppp91-76-57-158.pppoe.mtu-net.ru] has quit [Read error: 104 (Connection reset by peer)] 18:45:36 ASau [n=user@91.76.57.158] has joined #scheme 18:50:17 ecyrb [i=bamoore@SDF.LONESTAR.ORG] has joined #scheme 18:53:35 -!- ASau [n=user@91.76.57.158] has quit [Read error: 131 (Connection reset by peer)] 18:53:47 ASau [n=user@ppp91-76-57-158.pppoe.mtu-net.ru] has joined #scheme 18:57:42 -!- lolcow [n=lolcow@dsl-243-13-101.telkomadsl.co.za] has quit [Read error: 110 (Connection timed out)] 18:58:01 -!- sepult [n=levgue@xdsl-87-78-172-47.netcologne.de] has quit [Remote closed the connection] 18:58:15 lolcow [n=lolcow@dsl-241-175-158.telkomadsl.co.za] has joined #scheme 18:58:30 -!- lolcow [n=lolcow@dsl-241-175-158.telkomadsl.co.za] has quit [Client Quit] 18:58:44 leppie [n=lolcow@dsl-241-175-158.telkomadsl.co.za] has joined #scheme 19:01:06 Why is the order of applications specified for FOR-EACH but not for MAP? 19:01:30 for-each is called for side effects and map isn't 19:02:15 -!- ve [n=a@94-193-95-252.zone7.bethere.co.uk] has quit ["leaving"] 19:03:51 -!- ASau [n=user@ppp91-76-57-158.pppoe.mtu-net.ru] has quit [Read error: 104 (Connection reset by peer)] 19:04:24 ASau [n=user@ppp91-76-57-158.pppoe.mtu-net.ru] has joined #scheme 19:05:29 Would the best way to create l-to-r-map be to use a consing lambda in a fold, and reverse the result? 19:05:45 why would you reverse the result? 19:06:02 why do you want a left to right map/ 19:06:22 the only reason you would want that is if you are calling map for side-effects 19:06:26 which makes you a naughty person 19:06:54 roderic [n=user@zerowing.ccs.neu.edu] has joined #scheme 19:08:13 I mean, a fold is not necessary 19:08:15 (define (ordered-map f l) (if (null? l) l (cons (f (car l)) (ordered-map f (cdr l))))) 19:08:37 of course 19:08:51 don't call map for side-effects :P 19:11:57 I was updating global statistics and returning a modified list of elements at the same time with my map. 19:12:44 your ordered map uses recursion, where a fold would not 19:13:03 er 19:13:07 er, I guess that depends on the implementation 19:13:09 how would you do a fold without recursion? 19:13:21 I am deeply curious as to this proposed idea 19:13:26 a foldl can be done iteratively, but that's not the way you would implement it in scheme 19:13:43 what's wrong with recursion anyway? 19:13:52 Doesn't a foldr require recurion, but not a foldl ? 19:13:54 well, mine is not *tail-recursive* 19:13:57 which is not great 19:14:10 tail-recursive code is fine though 19:14:24 Not if it blows the stack 19:14:24 -!- ASau [n=user@ppp91-76-57-158.pppoe.mtu-net.ru] has quit [Read error: 104 (Connection reset by peer)] 19:14:25 foldl can be done tail-recursively, while foldr cannot 19:14:35 ASau [n=user@ppp91-76-57-158.pppoe.mtu-net.ru] has joined #scheme 19:14:44 Summermute: tail-recursive code doesn't 19:14:49 Summermute: that is, as it were, the entire point 19:15:08 Right, but foldr 19:15:13 i think foldr doesn't make much sense in strict languages like scheme 19:15:23 ??? 19:15:59 mm_freak: Oh, I see. vs. lazy languages, right? 19:16:09 *Elly* -> class 19:16:35 non-strict languages 19:16:36 Elly, your definition of ORDERED-MAP does not, in fact, guarantee any particular order on the applications of F. 19:16:48 FOLDR can be implemented tail-recursively very straightforwardly. 19:16:49 mm_freak: much more nicely put :-) 19:16:52 Riastradh: well, it's true 19:17:03 Riastradh: to actually *guarantee* order you would need to use continuations 19:17:16 Riastradh: it would blow the stack anyway 19:17:18 Um, yes, continuations are involved, but if you mean that you need to use CWCC, then no. 19:17:23 mm_freak, no. 19:17:25 Riastradh: I didn't know that. CPS style? 19:17:37 Elly: a tail recursive version would also be ordered 19:17:37 Riastradh: how can that be done? 19:17:37 Riastradh: no, I just mean CPS 19:17:41 Elly, all you need to do is to guarantee that the call to F be done before the recursive call to ORDERED-MAP. 19:17:45 No CPS is needed either. 19:17:51 I would do it with CPS :P 19:17:55 *Elly* -> number theory 19:18:18 else just explcitly evaluate the arguments 19:18:34 (define (ordered-map f l) (if (pair? l) (let* ((a (f (car l))) (d (ordered-map f (cdr l)))) (cons a d)) '())) 19:18:59 mm_freak, reverse the list first. 19:19:08 Riastradh: Is there a some ordered transformation that uses a counter for the return stack temporary? 19:19:24 (define (foldr f x l) (foldl f x (reverse l))) 19:19:32 Summermute, what? 19:20:11 Ah, reverse the list first. 19:23:20 So I'll use a fold then. 19:23:54 Summermute66 [n=scott@c-76-114-212-247.hsd1.dc.comcast.net] has joined #scheme 19:23:56 ecyrb, the two easiest ways to perform a guaranteed-left-to-right MAP are (1) to use SRFI 1's MAP-IN-ORDER, or (2) to use your favourite loop macro, if you have one; e.g., (collect-list (for x (in-list l)) (begin (hack x) (generate-value x))) with foof-loop. 19:23:58 Riastradh: ok, foldl in scheme is different from what i'm used to 19:24:04 mm_freak, what? 19:24:24 > (foldl string-append "x" '("a" "b" "c")) 19:24:25 "cbax" 19:24:28 > foldl (++) "x" ["a", "b", "c"] 19:24:28 "xabc" 19:24:34 mm_freak, I'm ignoring any issues of argument ordering here, by the way; in my definition of FOLDR you may need to substitute (lambda (x y) (f y x)). 19:24:48 I can never remember in which order foldl and foldr take their arguments, and it's different from one language to another. 19:25:01 yeah, indeed 19:25:32 foldr in scheme is still iterative, but just reversed 19:25:41 Not necessarily, mm_freak. 19:25:56 Generally foldr is defined not by an iterative process but by a recursive one. 19:26:22 What's important, though, is that neither foldl nor foldr is lazy in Scheme, whereas foldr is lazy in Haskell (even though foldl isn't). 19:26:22 -!- ASau [n=user@ppp91-76-57-158.pppoe.mtu-net.ru] has quit [Read error: 104 (Connection reset by peer)] 19:26:38 by iterative i mean that recursion can be removed without changing the meaning of the function 19:26:38 ASau [n=user@ppp91-76-57-158.pppoe.mtu-net.ru] has joined #scheme 19:27:06 Pretty much any definition in Scheme will be syntactically recursive at some level. 19:27:54 I usually find fold faster than explicit looping in interpreters, so I think I'll stick with fold 19:28:00 *Riastradh* blinks. 19:28:09 If you are concerned with speed, you shouldn't be using interpreters as dumb as that. 19:28:54 What interpreters are those, anyway? 19:30:05 well, I mean implicit loops are usually faster than explicit ones. I'm thinking R, matlab 19:30:24 oh 19:30:25 Gosh. Are their implementations that bad? 19:30:33 That's pretty damning. 19:30:36 in matlab at least, yeah 19:30:36 -!- ASau [n=user@ppp91-76-57-158.pppoe.mtu-net.ru] has quit [Read error: 104 (Connection reset by peer)] 19:30:45 ASau [n=user@ppp91-76-57-158.pppoe.mtu-net.ru] has joined #scheme 19:30:51 you can move from several minutes to a couple of seconds by using a vectorized array accumulator function 19:30:59 (from a language-level loop) 19:31:08 (it's rather gross) 19:31:29 Well, is that because it can take advantage of hardware features for vectorized operations, or is it just because they have a crummy implementation of their language? 19:31:36 both 19:32:08 their array functions are all hand-optimized in c/asm/whatever (and often use a LAPACK behind the scenes) 19:32:18 and the interpreted language is almost as fast as ruby ;) 19:32:25 ha! 19:32:52 If a specific sequence of effects is needed for general procedure calls, I can't imagine how any hardware features could possibly help for this, so I guess Matlab must just have a rotten interpreter. 19:32:52 same goes for some of the JVM languages. The compiled code is fine, but interpreted has slow loops. 19:33:26 -!- CaptainMorgan [n=CaptainM@c-24-62-183-102.hsd1.ma.comcast.net] has quit [Remote closed the connection] 19:33:55 Fortunately, there exist at least halfway decent implementations of Scheme, so this isn't something you need to worry about here. 19:34:12 good to know. I think I will write some test cases though, just to be safe. 19:34:48 next question: What's the preferred way of abstracting map / fold / whatever for different underlying data structures? 19:34:57 Can you be more specific? 19:35:16 *pumpkin* tries to resist bringing up CT 19:35:19 I mean, if I change a representation of something from lists to vectors, I have to change list-ref to vector-ref and map to vector-map 19:35:46 Yes. Sorry. Generic operations are hard to do right. 19:36:26 -!- ASau [n=user@ppp91-76-57-158.pppoe.mtu-net.ru] has quit [Read error: 104 (Connection reset by peer)] 19:36:43 is there even support for that? 19:38:31 -!- Summermute [n=scott@c-76-114-212-247.hsd1.dc.comcast.net] has quit [Read error: 110 (Connection timed out)] 19:38:55 ASau [n=user@ppp91-76-57-158.pppoe.mtu-net.ru] has joined #scheme 19:41:05 what is CT? 19:41:22 A minor^Wsmall state of the union. 19:41:52 A well-known university whose name begins with Y which has the unfortunate rhyme with `gaol' lives there. 19:42:05 Or, generalized abstract nonsense (a field of mathematics). 19:42:26 yeah, I definitely intended the former when talking about abstracting recursion schemes :) 19:42:37 Connecticut is the root of all recursion 19:42:55 Riastradh: why nonsense? 19:43:02 that's what people call it 19:43:04 Especially when its yankees turn up in the court of a well-known chap named Arthur. 19:43:30 (History loop, you see -- or, excuse me, history recursion.) 19:50:48 -!- ASau [n=user@ppp91-76-57-158.pppoe.mtu-net.ru] has quit [Read error: 104 (Connection reset by peer)] 19:50:57 ASau [n=user@ppp91-76-57-158.pppoe.mtu-net.ru] has joined #scheme 19:52:49 Minor thought on interpreters: Why should they even exist? In this day of fast cpu/disk/etc. why not just compile everything and then run a nice fancy debugger. Heck, Turbo Pascal did that over 20 years ago. 19:52:49 -!- ASau [n=user@ppp91-76-57-158.pppoe.mtu-net.ru] has quit [Read error: 104 (Connection reset by peer)] 19:53:06 ASau [n=user@ppp91-76-57-158.pppoe.mtu-net.ru] has joined #scheme 19:53:15 -!- Mr_Awesome [n=eric@pool-98-108-10-185.chi01.dsl-w.verizon.net] has quit [Read error: 110 (Connection timed out)] 19:54:27 Summermute66: People usually use the "fast CPU" argument against compilers, not for them. I like your reasoning better than the opposite, though. 19:54:41 Interpreters are easier to write and maintain. 19:56:14 I think the compiler versus interpreter divide is not very clear, however. What is an optimizing compiler that targets an abstract virtual machine? It's very easy for such an animal to outperform the most naieve of native code generators. 19:56:25 Riastradh: Yeah, exactly. As if we hadn't developed better software writing tools in the past 20+ years. Hell, the next Lisp/Scheme I use will have a superior stack frame + globals + inspector + line-by-line debugger or I'll switch to Scala or something :-) 19:56:41 -!- 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"] 19:57:25 Oh, and register values display just like my ancient Turbo Pascal :-) 19:57:39 Who cares about registers? 19:58:12 This isn't Turbo Pascal. You probably won't be dipping into assembly on a routine basis. 19:58:49 chandler: I do - I want to know if compiled lisp is keeping the 'right' values in registers in a tight loop. 19:59:19 What will you do if it isn't, out of curiosity? 19:59:20 -!- ASau [n=user@ppp91-76-57-158.pppoe.mtu-net.ru] has quit [Read error: 104 (Connection reset by peer)] 19:59:40 ASau [n=user@ppp91-76-57-158.pppoe.mtu-net.ru] has joined #scheme 19:59:45 That's probably irrelevant on x86. "Hot" memory addresses are put into a small cache known as "rename registers" that have efficiency equal to that of real registers. 20:00:11 Most systems support disassembling procedures, or showing intermediate stages of compilation, by the way. 20:00:32 True enough - the somewhat "opaque" moder x86 architecture 20:03:43 Riastradh: "What will you do if it isn't, out of curiosity?" - Switch to C++ :-) 20:07:37 Makes me think, actually, over 20 years we've gone from 2Mb boxen to 4Gb boxen, 14 inch monitors to 24 inch monitors, no-net or slow-net to Gb ethernet - and have Scheme/Lisp environments gotten appreciably better? We used to have an old Lisp machine in the office (don't ask), and based on that experience, me'thinks we've moved considerably backwards. 20:10:02 dmoerner [n=dmr@134.173.91.168] has joined #scheme 20:10:16 Well, emacs has been getting better, if it counts as Scheme/Lisp environment. :-) 20:10:32 Ok ;-) 20:10:46 -!- ASau [n=user@ppp91-76-57-158.pppoe.mtu-net.ru] has quit [Read error: 104 (Connection reset by peer)] 20:11:12 When you identify a particular problem that you'd like to solve, we'll all be happy to see the solution. 20:12:07 But otherwise I must say that sedative-induced rambling about general states of affairs is tiresome, and thus it is unlikely to inspire anyone to go out and solve the problems that you have vaguely alluded to. 20:12:23 Sure, how about just a nice Smalltalk like development environmnet, integrated GUI api and a tree pruner for application distribution. 20:12:39 Then don't listen. 20:13:16 ASau [n=user@ppp91-76-57-158.pppoe.mtu-net.ru] has joined #scheme 20:13:44 Riastradh: It's a perfectly legitimate question about how our tools have gotten to where they are today from where they were yesterday. 20:14:30 After all, it's a #scheme IRC group, not a #problem-solving IRC group 20:14:52 It is a legitimate question, and the answer is generally that yes, the Lisp machine was much nicer in many respects than Lisp environments today. I was, however, making a general remark about your tendency lately to ramble about general states of affairs (e.g., the organization of PLT Scheme) rather than identifying particular problems and showing your nifty solutions to them. 20:15:02 s/the Lisp machine was/Lisp machines were/1 20:15:42 In the immortal words of someone: 20:15:43 minion: chant! 20:15:44 MORE CODE 20:18:01 That's all. I apologize if I sounded confrontational: what I meant was to encourage you to write more cool code! 20:18:15 -!- dzhus [n=sphinx@93-80-245-94.broadband.corbina.ru] has quit [Connection timed out] 20:19:28 No prob, I just happen to be writing a compiler in PLT and using the experimental typed-scheme, hence the nature of my frequently general PLT'ish inquiries 20:19:59 jcowan [n=jcowan@72.14.228.129] has joined #scheme 20:20:16 Drat. Apparently I accidentally replied via email to Aziz using Google Groups, and it doesn't save the sent message anywhere. 20:20:57 Always check the box to have a copy forwarded to you. Always. 20:20:57 jcowan, memo from Riastradh: The `tmp' directory is not (just) for unfinished work; rather, it is an indicator that the URI is not permanent, possibly because the work is unfinished, possibly because it is just a temporary test case that doesn't need to last, possibly because it is not even my work but I needed to transmit it to someone, &c. 20:20:58 jcowan, memo from Riastradh: Your proposed `inexact' module should be called `transcendental' unless it is meant to do more than provide a few procedures for transcendental functions, which may well have exact definitions (for example, using continued fractions). 20:22:04 jcowan: There's no such box. 20:22:04 -!- ASau [n=user@ppp91-76-57-158.pppoe.mtu-net.ru] has quit [Read error: 104 (Connection reset by peer)] 20:22:10 Arrgh. That's bad. 20:22:20 And it was entirely accidental anyway. 20:22:34 But I'm logged in with my Gmail account; why isn't it in my sent messages? 20:23:46 Because the coupling between GMail and Google Groups isn't that good; they probably share only your bare identity. 20:24:25 ASau [n=user@ppp91-76-57-158.pppoe.mtu-net.ru] has joined #scheme 20:25:09 That's a shame. I don't want to know anything about internal divisions within Google. All of the products should act as if they were designed by one organization. (This is a complaint I've had about other Google tools as well.) 20:25:29 It's what often happens when services are acquired rather than organically grown. 20:25:45 The Deja acquisition is ancient history now. 20:25:47 They're merely glued together where absolutely necessary, instead of properly sharing infrastructure. 20:26:27 arcfide [i=arcfide@adsl-99-31-14-79.dsl.bltnin.sbcglobal.net] has joined #scheme 20:27:06 Do there exist good Usenet clients? 20:27:14 I don't think so 20:27:16 Riastradh: Does there exist a good Usenet? 20:27:19 Riastradh: What are your needs? 20:27:28 I use Opera and nzb. 20:27:32 There exist better ones than Google Groups, but I'm not willing to pay for Usenet access anymore. 20:27:38 -!- Summermute66 [n=scott@c-76-114-212-247.hsd1.dc.comcast.net] has quit [] 20:27:45 -!- ASau [n=user@ppp91-76-57-158.pppoe.mtu-net.ru] has quit [Read error: 104 (Connection reset by peer)] 20:28:28 chandler: I attempted to clarify my thoughts on Aziz's model by providing a pseudo proof by contradiction. If you're interested, I'd like to know whether I make any sense or not in that example. 20:30:02 ASau [n=user@91.76.57.158] has joined #scheme 20:30:04 seamus_android [n=alistair@212.183.134.131] has joined #scheme 20:30:30 -!- attila_lendvai [n=ati@catv-89-134-66-153.catv.broadband.hu] has quit [Read error: 110 (Connection timed out)] 20:31:04 arcfide: Was this a public reply? 20:31:20 chandler pasted "The example I showed Aziz" at http://paste.lisp.org/display/88930 20:31:42 Both uses of (bar bar) cause syntax violations in Ikarus and Larceny. 20:32:25 And no wonder. chandler, you are a sicko. 20:32:56 -!- langmartin [n=user@152.85.133.62] has quit ["ERC Version 5.3 (IRC client for Emacs)"] 20:33:13 Hm? This is just a reduction of what I observed by hand with `free-identifier=?' and `bound-identifier=?'. 20:33:30 -!- ASau [n=user@91.76.57.158] has quit [Read error: 131 (Connection reset by peer)] 20:33:33 I'm convinced that any behavior other than erroring is going to lead to very strange edge cases having to do with free variable matching. 20:33:41 Er, erroring on the inner define-syntax of bar. 20:33:49 Yes, that's what I meant. 20:34:24 *jcowan* continues to think with Dijkstra that name-shadowing of any sort was a dreadful mistake. 20:34:27 chandler: I think it should have been public. I got it from my news server. 20:34:33 Oh, really? 20:34:45 Then I don't understand the response I got from Aziz about keeping the discussion public. 20:34:49 Maybe it hasn't populated down yet. 20:34:58 What? 20:35:15 I received a private response from Aziz that said "Others may benefit from this discussion so don't keep it private." 20:35:25 I didn't see any response by him about that, but I did post my reply publicly to the list. 20:35:26 Also, I don't see my second post in that thread on Google Groups. 20:35:35 Oh. Sorry, my misunderstanding. 20:35:41 ASau [n=user@ppp91-76-57-158.pppoe.mtu-net.ru] has joined #scheme 20:36:14 Can you just lisppaste your post? 20:36:18 Not erroring on the duplicate definition requires you to have a very strange model of evaluation that fails my consistency check. 20:36:29 There is an "Add cc" feature in GG, but I agree that's nowhere near as good as "Check this to get a copy" 20:36:59 jcowan: Had I intended to reply privately, I probably would have done that. 20:37:00 arcfide pasted "Response to Aziz" at http://paste.lisp.org/display/88931 20:37:18 arcfide: OK. That hasn't shown up yet on Groups. 20:37:49 chandler: Some of the quoting is missing in the first few paragraphs. 20:38:29 You and I are essentially making the same argument. 20:38:37 (Well, the argument I made that Groups ate.) 20:39:35 chandler: No, I meant to be sure to cc yourself when posting to any service via any web page, if that's supported at all. 20:39:55 -!- pumpkin [n=pumpkin@pumpkinpro.cs.dartmouth.edu] has quit [] 20:39:57 Ah. Well, next time I'll be less trusting. 20:40:44 chandler: Yes, though I'm trying to make it from the point of view of inconsistent semantics. 20:41:12 I just wasn't sure that I was clear. 20:41:55 I actually have to admit that I was very surprised to see such a difference of opinion on this one among the Schemes. 20:42:01 Because `let-syntax' establishes bindings lexically, any use in the body of an identifier bound by `let-syntax' *must* be renamed or marked differently than a use from the surrounding lexical environment. That much seems inescapable. 20:43:22 -!- ASau [n=user@ppp91-76-57-158.pppoe.mtu-net.ru] has quit [Read error: 104 (Connection reset by peer)] 20:44:17 chandler: Well, I think that the normal expansion process does not require renaming. A simple lookup should work, to make a sort of lazy renaming. 20:44:54 -!- leppie [n=lolcow@dsl-241-175-158.telkomadsl.co.za] has quit [Read error: 104 (Connection reset by peer)] 20:45:47 ASau [n=user@ppp91-76-57-158.pppoe.mtu-net.ru] has joined #scheme 20:47:05 leppie [n=lolcow@dsl-241-175-158.telkomadsl.co.za] has joined #scheme 20:47:47 Lazily or eagerly, a-renaming we must go. 20:48:13 or -renaming. 20:49:03 Well, yes. Actually, even with the eager renaming, this wouldn't work the way Aziz says, because the DEFINE-SYNTAX should then also rename foo for a second time. 20:49:48 Right. Which I *might* be able to accept, except for his assertion that `let-syntax' does not introduce a new lexical contour for the body. 20:50:09 chandler: Well, that second rename should cause the error. 20:50:45 In the same scope, such as with the splicing, you shouldn't have that sort of double rename. 20:51:46 chandler pasted "The response I sent Aziz (and just now posted publicly)" at http://paste.lisp.org/display/88932 20:52:38 arcfide: Yes. As I said, we're essentially arguing the same thing, but probably from different ends. Poor Aziz is caught in the middle. 20:53:16 chandler: Indeed. 20:53:33 chandler: I'm actually amazed that we've been agreeing on some issues to the degree that we have. 20:53:37 Scary! 20:53:46 I mean, first it was with BEGIN, and now LET-SYNTAX! 20:53:47 Ack! 20:54:16 Does this mean you are both going to join WG2? 20:54:21 LOL 20:54:26 I don't think you should be surprised. We're not polar opposites, even though we disagree in some areas. 20:54:44 jcowan: I can't even get Descot out in a timely fashion, what makes you think I can handle WG2??? 20:54:46 I would join WG2, would there be such a WG2 to join. 20:54:55 Polar opposites in general differ on only one point. 20:55:10 Although, maybe I can somehow wiggle Descot into WG2... 20:55:14 *arcfide* chuckles evilly. 20:55:18 There will indeed be a WG2. I can assure you of that. 20:55:47 EleminoP [n=EleminoP@iub-vpn-194-59.noc.indiana.edu] has joined #scheme 20:56:29 "Though the mills of God grind slowly / Yet they grind exceeding small / Though with patience he stands waiting / With exactness grinds he all." 20:56:34 hm 20:56:42 I want to call this module 'module' 20:56:46 In this case it is we who stand waiting while the Steering Committee grinds, or one might even say dinks. 20:56:47 *Elly* looks around furtively 20:56:59 EleminoP pasted "list of coins needed for change" at http://paste.lisp.org/display/88933 20:57:09 am i on the right track for that procedure? 20:57:17 pumpkin [n=pumpkin@pumpkinpro.cs.dartmouth.edu] has joined #scheme 20:57:31 it takes a number and returns a list of the names of the coins needed to make that about of cents 20:57:54 ve [n=a@94-193-95-252.zone7.bethere.co.uk] has joined #scheme 20:58:03 (make-change 42) ;=> (quarter dime nickel penny penny) 20:58:16 I think (>= 0 (- n 25)) is better written as (>= n 25). 20:58:40 ok 20:58:56 You might want to think about some defenses against nasty people who type (make-change 3.14159). 20:59:30 I doubt EleminoP's grader is going to care about that. 20:59:31 so throw an integer? in there somewhere 20:59:34 yeah, me too 21:00:07 Also, what is that mysterious ___ in your code? 21:00:07 -!- ASau [n=user@ppp91-76-57-158.pppoe.mtu-net.ru] has quit [Read error: 104 (Connection reset by peer)] 21:00:17 that's where i don't know what to put 21:00:19 chandler: It's never too early to start thinking like a professional paranoid^Wprogrammer. 21:00:26 ASau [n=user@ppp91-76-57-158.pppoe.mtu-net.ru] has joined #scheme 21:00:47 i know what it needs to be though 21:00:58 (- n value of the coin it just decided) 21:01:21 In that case, you'll also need an `exact?', because there are inexact integers for which (= n (- n 25)) -> #t 21:01:28 -!- mario-goulart [n=user@67.205.85.241] has quit ["ERC Version 5.3 (IRC client for Emacs)"] 21:01:58 oh my 21:04:37 so how do i go about this? 21:04:57 Go about what? 21:05:08 the ___ 21:05:12 at the end of my code 21:05:21 Oh. It should be inside the cond, actually. 21:06:21 This is because the argument to the recursive call will be different depending on what coin you selected. 21:06:24 Do you see that? 21:06:27 yeah 21:06:36 That should be enough for you to put it together. 21:07:50 i hope so 21:07:59 should the cons be inside the cond too? 21:08:13 Riastradh: I've decided that the best approach for Flopsy purposes to polymorphic functions is to make them all syntax. 21:08:58 It's easy to wrap vector-map in a monomorphic procedure, thus: (define (vector-map-2 vec f vec1 vec2) (vector-map vec f vec1 vec2)) 21:09:19 Oh! We've got a live one here! 21:13:34 arcfide: Hm? 21:14:06 chandler: Oh, just taking note of Aziz's responses. 21:15:25 my conds are broken 21:15:34 they trying to apply procedures #t and #f 21:16:27 -!- albacker [n=eni@unaffiliated/enyx] has quit [Remote closed the connection] 21:17:05 arcfide: Hah. I was afraid he'd do that, but he must be wrong. Derrick's first example was equivalent to mine modulo a `begin', so he's still got `begin' problems of one kind or another. 21:17:14 schmir [n=schmir@p54A90D34.dip0.t-ipconnect.de] has joined #scheme 21:17:42 jcowan: Chicken has an expand form, what's wrong with that? 21:19:15 Arelius: I don't understand what you're talking about. 21:19:59 jcowan (expand ...) 21:19:59 -!- ASau [n=user@ppp91-76-57-158.pppoe.mtu-net.ru] has quit [Read error: 104 (Connection reset by peer)] 21:20:20 What's wrong with it for what? 21:20:28 In reference to you're post to chicken-users 21:20:32 ASau [n=user@ppp91-76-57-158.pppoe.mtu-net.ru] has joined #scheme 21:20:34 h. 21:20:35 Ah. 21:22:57 Nothing, except that it's Chicken-specific and has Chickenisms built into it. I want something more portable. 21:23:09 I'm glad to know it's there, though. 21:23:40 -!- ASau [n=user@ppp91-76-57-158.pppoe.mtu-net.ru] has quit [Read error: 54 (Connection reset by peer)] 21:23:47 jcowan: Cool cool 21:23:56 Hope it won't be too hard to port 21:24:57 SvekloC [n=sveklo@unaffiliated/sveklo] has joined #scheme 21:25:18 EleminoP pasted "make-change" at http://paste.lisp.org/display/88936 21:25:33 i guess i don't understand cond 21:25:41 i thought that would work 21:26:01 -!- Edico [n=Edico@unaffiliated/edico] has quit ["Ex-Chat"] 21:26:06 ASau [n=user@ppp91-76-57-158.pppoe.mtu-net.ru] has joined #scheme 21:26:19 but it tries to do (#f) or (#t) depending on whether or not n is greater than 25 21:26:55 anyone here had the idea of building a lisp machine using FPGAs? 21:27:11 EleminoP: You've got more parens than are necessary. 21:27:32 oh, i see now 21:27:37 :-) 21:27:41 you don't need an open parenthesis after cond 21:27:42 Arelius: Porting Flopsy itself should be completely trivial. It will generate portable C code, except that if you don't have a C '99 runtime, some of the procedures will fail at link time. 21:27:55 Then of course you have to hook the compiled code into your favorite Scheme's FFI. 21:28:30 You can write stand-alone programs, but they have very limited I/O facilities. 21:28:36 (mostly meant for testing/debugging). 21:29:02 *jcowan* hastily adds: they will fail *if* you call them, not otherwise. 21:29:48 EleminoP: why do you use both if and cond? 21:30:20 -!- cky_ is now known as cky 21:31:53 Whar is Flopsy 21:31:59 what* 21:32:00 Leonidas annotated #88936 "integrated if into cond" at http://paste.lisp.org/display/88936#1 21:32:26 -!- untouchable [i=untoucha@dhcp-129-64-166-32.dorm.brandeis.edu] has quit ["( www.nnscript.com :: NoNameScript 4.22 :: www.esnation.com )"] 21:33:37 wow 21:33:41 this is why I sometimes like using [ ] instead of ( ) - easier to spot patterns. 21:33:54 PLT's object system is so compellingly the right thing that it kind of hurts to think about 21:37:13 -!- pumpkin [n=pumpkin@pumpkinpro.cs.dartmouth.edu] has quit [] 21:37:27 pumpkin [n=pumpkin@pumpkinpro.cs.dartmouth.edu] has joined #scheme 21:37:58 Elly: that's rather high praise 21:38:24 leonidas, i don't know 21:40:01 i fixed it 21:40:54 lighterthanair [n=lightert@64.50.202.251] has joined #scheme 21:41:25 does mit-scheme work on ppc mac's? 21:41:42 what about mac's ppc? 21:42:00 gyver? 21:42:05 i dl'd mit-scheme, the native code thingy. 21:42:08 EleminoP: see my annotation 21:42:44 i installed it according to the directions at http://renevanbelzen.wordpress.com/2008/11/13/installing-mitgnu-scheme-on-mac-os-x-leopard/ 21:42:44 yeah, that's what i did 21:42:46 -rudybot:#scheme- http://tinyurl.com/ylb2f24 21:43:05 but when i run it, terminal says "/bin/scheme: Bad CPU type in executable" 21:43:05 -!- ASau [n=user@ppp91-76-57-158.pppoe.mtu-net.ru] has quit [Read error: 104 (Connection reset by peer)] 21:43:24 pumpkin: Tell Roth to wax Epstein for a while. 21:43:24 lighterthanair: Are you using the downloaded binaries? 21:43:28 ASau [n=user@ppp91-76-57-158.pppoe.mtu-net.ru] has joined #scheme 21:43:40 and i think i recall someone telling me that i have to build it on a powerpc mac. 21:44:06 lighterthanair: The downloaded binaries are for x86, you're probally going to have to download the source and build it 21:44:36 but it will work on a powerpc mac? 21:44:43 if i dl the source and build it? 21:45:03 lighterthanair: I've never used mit scheme, but I suspect it should. 21:45:16 lighterthanair: The easiest way to find out is by building it 21:45:18 lighterthanair: Why MIT in particular? Nothing wrong with it, I just wonder. 21:45:33 they have a free online course. 21:45:37 *jcowan* nods. 21:46:11 It looks like it is written in portable C, or atleast compiled to it. 21:46:47 http://www.gnu.org/software/mit-scheme/liarc-build.html 21:47:59 -!- bweaver [n=user@75-148-111-133-Chattanooga.hfc.comcastbusiness.net] has quit ["ERC Version 5.3 (IRC client for Emacs)"] 21:48:02 -!- marcoecc [i=me@gateway/gpg-tor/key-0x9C9AAE7F] has quit [Remote closed the connection] 21:48:58 -!- schmir [n=schmir@p54A90D34.dip0.t-ipconnect.de] has quit [Read error: 113 (No route to host)] 21:49:28 yes, Arelius, i saw that page. but it says something about 32-bit intel machines and building can take an hour and i'm just wondering if i should waste my time. 21:49:35 marcoecc [i=me@gateway/gpg-tor/key-0x9C9AAE7F] has joined #scheme 21:49:39 -!- mmc [n=mima@89.27.122.78] has quit [Read error: 145 (Connection timed out)] 21:50:08 What that says about 32-bit intel machines is that if you are running a 32-bit intel machine you should use the native builds 21:50:12 -!- EleminoP [n=EleminoP@iub-vpn-194-59.noc.indiana.edu] has left #scheme 21:50:17 *instead* of that 21:50:38 lighterthanair: I don't know if anyone online atm actually uses MIT 21:51:24 it's okay. i don't have time right now; i need to run to class. i'll check back later. or maybe i'll just build first and cross my fingers :P 21:51:25 and well, it compiles on PPC, since debian ships it. 21:53:08 ASau` [n=user@ppp91-76-57-75.pppoe.mtu-net.ru] has joined #scheme 21:54:19 tx, Leonidas, and i found some other sites that confirm it does. woo hoo. 21:54:24 tx for the help! 21:54:27 -!- lighterthanair [n=lightert@64.50.202.251] has left #scheme 21:54:58 Daemmerung [n=goetter@1133sae.mazama.net] has joined #scheme 21:56:50 -!- ASau [n=user@ppp91-76-57-158.pppoe.mtu-net.ru] has quit [Read error: 60 (Operation timed out)] 21:57:01 -!- ASau` [n=user@ppp91-76-57-75.pppoe.mtu-net.ru] has quit [Client Quit] 21:58:30 -!- apgwoz [n=apgwoz@216.156.136.2.ptr.us.xo.net] has quit [Connection timed out] 21:58:59 -!- hkBst [n=hkBst@gentoo/developer/hkbst] has quit [Connection reset by peer] 22:01:01 For the record MIT Scheme works fine on a PPC Mac if you use the C Back End. 22:01:26 You don't get the native compiler, though. 22:01:31 Hmm 22:01:47 So it just runs interpreted? 22:01:59 No, it compiles to C. 22:02:06 Ohh 22:02:19 rjack [n=rjack@adsl-ull-218-18.51-151.net24.it] has joined #scheme 22:06:24 -!- rjack [n=rjack@adsl-ull-218-18.51-151.net24.it] has quit [Client Quit] 22:10:35 -!- leppie [n=lolcow@dsl-241-175-158.telkomadsl.co.za] has quit [] 22:15:26 leppie [n=lolcow@dsl-241-175-158.telkomadsl.co.za] has joined #scheme 22:15:58 kilimanjaro [n=kilimanj@70.116.95.163] has joined #scheme 22:16:19 -!- SvekloC [n=sveklo@unaffiliated/sveklo] has quit [Read error: 145 (Connection timed out)] 22:17:38 SvekloC [n=sveklo@unaffiliated/sveklo] has joined #scheme 22:21:33 -!- leppie [n=lolcow@dsl-241-175-158.telkomadsl.co.za] has quit [] 22:24:26 leppie [n=lolcow@dsl-241-175-158.telkomadsl.co.za] has joined #scheme 22:25:29 -!- Nshag [i=user@Mix-Orleans-106-4-235.w193-248.abo.wanadoo.fr] has quit ["Quitte"] 22:25:29 MononcQc [n=mononcqc@modemcable062.225-20-96.mc.videotron.ca] has joined #scheme 22:32:20 Fare [n=Fare@c-24-218-127-11.hsd1.ma.comcast.net] has joined #scheme 22:40:35 sladegen [n=nemo@unaffiliated/sladegen] has joined #scheme 22:40:42 huh, that's annoying 22:41:03 if foo.scm does (load "bar/baz.scm"), and baz.scm does (require "foo.scm"), you lose 22:41:39 In what Scheme system would you do such a thing? 22:41:45 in what program 22:42:29 Riastradh: PLT 22:42:35 And why are you calling LOAD in PLT Scheme? 22:42:44 (For that matter, why is the LOAD procedure not relegated to a legacy module?) 22:42:47 it's actually that foo.scm loads bar/baz.scm and baz.scm requires quxx.scm from the same directory as foo.scm 22:42:55 should I be using require for everything? oO 22:43:02 You should not be using LOAD for anything. 22:43:18 ;a propos: http://learnyousomeerlang.com/static/img/circular-dependencies.png 22:43:24 It exists strictly for hysterical raisins, and for interactive use. 22:43:27 I do not have a circular dependency 22:43:34 :( 22:43:46 I have a "bar/baz.scm is looking for quxx.scm in bar/" 22:44:00 The issue may be that require does not know that foo.scm is present until it has finished loading. 22:44:03 Riastradh: wait, so how do you just like... evaluate a filee's contents to get a value? 22:44:17 jcowan: no, no, that's not it 22:44:21 my original statement was ill-formed 22:44:23 You need to give more context, Elly. 22:44:51 foo.scm does: (load "bar/baz.scm"); bar/baz.scm does (require "quxx.scm"), where quxx.scm is in the directory foo.scm lives in 22:45:03 No, you need to give more context about why anything is using LOAD. 22:45:11 (for context: this is an IRC bot that can load modules, and I am trying to make the modules be loadable at runtime) 22:45:31 OK. In that case, I believe what you should be using is DYNAMIC-REQUIRE. 22:45:33 Riastradh: well, each module is a scheme file, and when you load it, it evaluates to a class, which the module loader instantiates and adds to the list 22:45:42 I'd guess that require looks first in the directory in which the requiring file lives. 22:45:50 does dynamic-require require that the file contain a module? 22:45:50 And each module should be, well, a module. 22:46:20 *jcowan* wishes to hear no more of modules at the present, and curses the day they were invented. 22:47:20 agh 22:47:28 then what do I do instead of just having each file return a class? 22:47:43 Have it define THE-CLASS to be a class. 22:47:54 a global? oO 22:47:59 Yes, sure. 22:48:10 how is that more elegant than the file returning the class as its value? 22:48:12 Or, have it start with `#lang an-irc-module', and do magic in #%BEGIN-TOPLEVEL or whatever it's called. 22:48:22 `Elegant'? Don't worry about `elegant' until it WORKS! 22:48:33 it was working until a moment ago 22:48:40 if I flatten the directory heirarchy it will work again 22:48:46 Nshag [i=user@Mix-Orleans-106-4-235.w193-248.abo.wanadoo.fr] has joined #scheme 22:49:10 I do not see why I would not just use LOAD though 22:49:14 No, it worked by accident. 22:49:15 LOAD is broken. 22:49:19 Put it out of your mind -- forget about it. 22:49:20 how so? 22:49:21 It's a hysterical raisin. 22:49:29 what is broken about it? 22:50:00 It was a mistaken design from an earlier age before macros existed, and somehow it managed to persist over the decades because nobody wanted to figure out anything better. 22:50:25 One of the few things about R6RS that Riastradh likes.... 22:50:38 you did not give any concrete reasons why it is broken, Riastradh 22:50:41 That is, until a bit less than two decades ago, when Jonathan Rees designed a sensible module system for Scheme48. 22:51:08 let's skip ahead a little bit: what is the elegant, module-using solution here? 22:51:26 As I said: I think you want to use DYNAMIC-REQUIRE. 22:52:02 but then I end up either using a global to indicate which module is being loaded or mucking about with PLT's magic %#TOPLEVEL stuff 22:52:06 So? 22:52:18 That *works*. LOAD doesn't -- any simulacrum of working is strictly an accident. 22:52:18 globals are bad <.< 22:52:23 ???! 22:52:28 That is abject nonsense. 22:52:30 You use them all the time! 22:52:38 I don't define them all the time! 22:52:42 Yes, you do. 22:52:50 FIGHT FIGHT FIGHT FIGHT FIGHT 22:53:03 my current program has a total of like five globals: module%, irc%, event%, hook%, and bot 22:53:04 let's all use java it is better 22:53:08 -!- cky [n=cky@166.165.108.210] has quit [Read error: 60 (Operation timed out)] 22:53:14 Let's all use Clojure. 22:53:32 If you break your program into separate procedures -- as almost *everyone* writing almost *any* program does --, then you use globals. 22:53:44 my procedures tend to be local to modules 22:53:45 Let's wear makeup so the boys will like us. 22:53:48 Sure. 22:53:53 And so would the binding in what you DYNAMIC-REQUIRE. 22:53:53 and the modules just export the classes they define 22:54:00 oO wait, what? 22:54:03 how is that done? 22:54:25 Daemmerung: not actually necessary! :O 22:54:38 When you DYNAMIC-REQUIRE something, the module is loaded dynamically, and you can get at its bindings by mapping the module to a namespace and then resolving the name within the namespace. You can probably also get at the exports directly. 22:54:54 wow, I did not know you could do that 22:54:57 What is a namespace in PLT? 22:55:04 jcowan, an environment. 22:55:26 Doubtless, but not very helpful. Is this one of the infamous first-class environments, then? 22:55:39 No, but they are first-class environments. 22:55:50 -!- npe [n=npe@94-224-251-223.access.telenet.be] has quit [] 22:55:59 wow, the documentation for dynamic-require assumes more understanding of the module system than I have 22:58:09 *offby1* has never quite grokked namespaces or dynamic-require or any of all that there 22:58:12 Perhaps try this: . 22:58:33 At the very bottom there appears to be an example of pretty much what you described that you want. 22:59:38 woah 22:59:48 *offby1* halts 22:59:50 *confusion* 22:59:51 *offby1* whinnies 23:00:27 wait 23:00:51 the symbol passed to dynamic-require is the one I want back from loading the module? 23:00:51 that's cute 23:01:56 *Elly* contemplates deeply 23:02:39 ecyrb pasted "dfs internal subtree ref" at http://paste.lisp.org/display/88952 23:02:41 How do I do that in a more scheme-like fashion? 23:02:49 untouchable [i=untoucha@dhcp-129-64-166-32.dorm.brandeis.edu] has joined #scheme 23:03:12 ecyrb, for a start, indent the body of LETREC* with two spaces, not nine. 23:03:37 Sorry. I'm just using emacs indent-region 23:04:03 must not be using scheme-mode 23:04:51 Another quick local change is to avoid SET! in the DO, by writing (do ((found '() (helper (car branches))) ...) ...) rather than (do ((found '()) ...) ... (set! found (helper (car branches)))). 23:05:56 As for the structure of the code, there are several changes that one might consider to improve it. 23:07:36 One is to make the HELPER procedure (which I'd call LOOP or RECUR or DESCEND) have two parameters, the tree and the index, and return two values, a boolean flag indicating whether the node with that index was found, and either the value found or the number of nodes in that tree if it was not found. 23:08:37 Another is to make the HELPER procedure have four parameters: the two as before, and then one parameter for a procedure to be called if the node with the desired index was found (to be applied to the value), and another parameter for a procedure to be called if the node was not found (to be applied to the number of nodes in that tree). 23:09:46 Also, personally I usually prefer to use internal definitions rather than LETREC, because they make the structure of the code clearer. (With LETREC, in the middle of a vast sea of white emptiness, all you see is: (foo (lambda ...)). With internal definitions, you see (define (foo ...) ...).) 23:11:21 -!- Daemmerung [n=goetter@1133sae.mazama.net] has quit ["Smoove out."] 23:12:36 Good stuff. Thanks. 23:13:53 dnm [n=dnm@c-68-49-47-248.hsd1.va.comcast.net] has joined #scheme 23:14:25 that's our Riastradh 23:15:33 -!- Kusanagi [n=Lernaean@unaffiliated/kusanagi] has quit [] 23:16:50 Internal definitions? More like INFERNAL definitions, amirite? 23:17:21 Internal DEFINE is not infernal. Only internal syntax definitions are infernal. 23:17:37 Internal syntax definitions aren't infernal. Only syntax definitions internal to LET-SYNTAX...in Ikarus...are infernal. 23:17:42 Curse the name of the camel and the camel's mother of whoever thought to add internal definitions and all their opportunities for semantic strangeness to Scheme. 23:18:44 *offby1* shrugs 23:18:50 *offby1* never uses this modern gimcrackery 23:18:52 Honestly, I don't mind them very much, but everyone implementing macro expanders (except for me) seems to screw them up with some horrendously overcomplicated expansion process that misses the forest for the newts. 23:18:53 jcowan: Quick quiz. What is the meaning of (define-syntax foo (syntax-rules () ((_) (begin (define x 1) x)))) ? 23:19:14 What's the meaning of (begin (define x 2) (foo) x) ? 23:20:08 It's a sequence, consisting of two definitions followed by two expressions, which has the syntactic effect of binding two variables, one of which is not visible outside the expansion of (FOO). 23:20:43 And when it occurs, say, as the entirety of the body of a lambda whose procedure is applied, the value that procedure returns is 2. 23:20:51 Oops, sorry, that was a quiz for jcowan. 23:21:07 chandler: Surely Ikarus doesn't mess that one up. 23:21:20 Now where's that little blinky red pen that those guys in black tuxes left behind the other day? 23:21:27 *offby1* forgets 23:21:42 Geesh, I wasn't even pointing it at you, offby1. 23:21:43 *offby1* thought it was suits, not tuxes 23:21:46 No; this quiz is from the chapter of the book entitled "making fun of Chicken". 23:21:52 (That was meant for arcfide.) 23:22:11 *Riastradh* vanishes. 23:23:43 chandler: No...way. 23:24:01 chandler: Tell me your not insinuating what I think you are insinuating. 23:24:32 However, in the spirit of making fun of Ikarus, what is the meaning of (let-syntax ((x (syntax-rules () ((_ e ...) 1)))) (define x (lambda args (if (null? args) (x '()) 2))) (x)) ? 23:25:09 Actually, these last few weeks have been strangely enlightening and depressing all at the same time. How could so many Schemes get the basics wrong. Okay, sharing state across phases, and some other fairly obscure use cases, sure, we can all argue that till the cows come home, but this other stuff shouldn't be that hard! I mean, this is pretty core to hygiene and referential transparency. 23:25:22 incubot: (define-syntax foo (syntax-rules () ((_) (begin (define x 1) x)))) 23:25:23 Error: (define-syntax) during expansion of (define-syntax ...) - highlevel macros are not supported 23:25:28 D'oh. 23:25:35 incubot: (use riaxpander) 23:25:36 Error: unbound variable: riaxpander 23:25:42 incubot: (require-extension riaxpander) 23:25:43 Error: (require) can not load extension: riaxpander 23:25:46 Hygiene and referential transparency *are* hard. 23:25:47 Bah. 23:25:51 What? 23:25:53 No, they aren't. 23:25:59 chandler pasted "bawk!" at http://paste.lisp.org/display/88953 23:26:01 jcowan: It's pretty straightforward. 23:26:01 And they're completely orthogonal to internal definitions. 23:26:16 I've seen two macro systems built from scratch to demonstrate them, and they worked just fine. 23:26:16 arcfide: That's what I'm insinuating. 23:26:25 Getting from here to there to Rittenhouse Square is pretty straightforward too, but when I get there I'll pull your hair. 23:26:38 araujo: Which two? 23:26:50 incubot: (chicken-version) 23:26:51 3.4.0 23:26:52 chandler: That's insane. 23:27:25 Riastradh: So do you think it's reasonable for me to treat polymorphic procedures as syntax? 23:27:30 Wait, there isn't wiggle room in R5RS on this one, is there? 23:27:39 jcowan, I am perfectly serious when I say that hygiene is straightforward (and referential transparency, if you insist on separating them, although I always forget which is which). Jonathan Rees has a nice, brief paper explaining them with a full and very concise implementation. 23:27:43 There is wiggle room in the R5RS. It doesn't make it any less sane. 23:27:48 Er, any more sane. 23:27:49 (Special exception: if a pseudo-procedure expects a procedure as an argument, it will accept a pseudo-procedure as well.) 23:28:06 *jcowan* has been reading the HCL paper. 23:28:32 jcowan, sure. Or, just provide SYNTAX-RULES, and you'll be able to load foof-loop. 23:28:33 arcfide: That's why I proposed the quiz. Per the R5RS, the answer might well depend on the context in which `foo' is used. 23:28:53 chandler: Eh? 23:28:59 Wait, no, nevermind, I don't want to know. 23:29:00 Alexpander is my friend, which is why I'm upgrading it for Chicken 4. 23:29:07 jcowan, the paper I mention, by the way, is `Implementing Lexically Scoped Macros', published as a `Scheme of Things' column in a 1993 issue of Lisp Pointers. 23:29:38 What is there to recommend alexpander over riaxpander, except that alexpander supports SRFI 46? 23:29:50 arcfide: (let () (begin (define x 2) (foo) x)) -> 2 always. Take away the `let', and it depends on the implementation. 23:30:10 chandler: Why?? 23:30:36 arcfide, we discussed this a while ago: (begin (define-syntax foo (syntax-rules () ((foo y) (define x y)))) (foo 5) x) 23:30:40 We had this argument on the r6rs-discuss list a while ago. There's wiggle room in the R5RS allowing this behavior, is what it boils down to. 23:30:56 It's still stupid to treat it this way. 23:31:05 More precisely, there is a stupid clause in the R5RS that can serve as a stupid excuse for stupid behaviour. 23:31:08 What is there to recommend riaxpander over alexpander? 23:31:09 *arcfide* scrathes his head. 23:31:21 Yes, that's right, I remember how this came up, and yeah, let's just forget it ever happened. :) 23:31:24 Kusanagi [n=Lernaean@unaffiliated/kusanagi] has joined #scheme 23:31:26 Aziz is currently arguing himself into another, similar corner. 23:31:37 -!- nothere [n=nothere4@cpe-98-14-187-196.nyc.res.rr.com] has quit ["Computer has gone to sleep"] 23:31:43 jcowan, riaxpander supports explicit renaming and syntactic closures, and its implementation is much easier to understand (I think, anyway), and much more clearly reflects the structure of Scheme syntax. 23:31:49 *Riastradh* really vanishes this time. 23:31:55 (define-syntax foo (syntax-rules () ((_ v) (begin (define v 1) v)))) 23:32:09 I assert that (foo x) -> 1 in all contexts where it is valid. 23:32:14 Aziz does not. 23:34:06 Well, oh well. :-/ 23:34:26 I actually thought the R6RS made this pretty clear. 23:34:33 Nope. 23:34:40 Aziz is the Felix of R6RS. 23:34:48 nothere [n=nothere4@cpe-98-14-187-196.nyc.res.rr.com] has joined #scheme 23:34:55 On the surface, it actually favors Aziz's interpretation, but in reality it contradicts itself. 23:35:33 -!- MrFahrenheit [n=RageOfTh@users-38-219.vinet.ba] has quit [Read error: 60 (Operation timed out)] 23:35:35 Well, what is tthe behavior of the Scheme systems whose implementors were Editors? 23:35:51 (begin (let-syntax ((foo (identifier-syntax 1))) (define-syntax foo (identifier-syntax foo))) foo) -> 1 according to Aziz 23:35:53 Why should you suppose that the editors understood the text better than anyone else? 23:35:55 Only PLT Scheme and Chez Scheme claim compliance, right? 23:36:16 jcowan: I'm not suggesting they are inherently right in this case, but just think that it would be interesting to see. 23:36:25 Larceny, I think, is only compatible? 23:36:36 Scheme48 has not been updated.... 23:37:06 *jcowan* nods. 23:37:14 I don't know what Larceny claims, but I do know that it's the only implementation to strictly enforce the rule about definitions that affect the meaning of undeferred portions of the body. 23:37:33 chandler: Really? 23:37:38 Yup. 23:38:34 PLT, Chez, Larceny, Ikarus, IronScheme, Ypsilon, and Mosh are what Our New Insect Overlords call the major R6RS systems. 23:38:54 jcowan: New Insect Overlords? 23:39:03 The Steering Committee, dolt! 23:39:13 *jcowan* punishes arcfide. 23:39:16 jcowan: Where did they say that? 23:39:28 *jcowan* does the Tarbaby thing. 23:40:34 I tacitly include Chez even though it has not officially released R6RS yes. 23:40:36 yet 23:40:49 How is Chez's support any less official than Ikarus's? 23:41:02 7.9.3 is a lot larger version number than 0.0.4! 23:41:19 (Did you miss the R6RS prerelease version?) 23:41:28 People *pay* for Chez support. That makes the distinction "official" vs. "unofficial" meaningful. 23:41:54 I think that's inconsistent, and doubly so when it comes to Chez. 23:42:02 How so? 23:42:53 I can't see any sense in which an unsupported version of Chez is more unofficial than an unsupported version of any other Scheme, regardless of the separate availability of a supported version of Chez. 23:43:17 Furthermore, Chez exists in a free (Petite) form, which is really no different than the other free implementations. 23:43:35 "Petite". Must be for girls 23:44:46 -!- nothere [n=nothere4@cpe-98-14-187-196.nyc.res.rr.com] has quit ["Computer has gone to sleep"] 23:46:51 offby1, you might want to scroll back or look in the logs to read my report of our little tete-a-tete. 23:48:28 *offby1* backs away slowly 23:48:33 emma [n=em@unaffiliated/emma] has joined #scheme 23:48:49 I'll keep my head right here, firmly attached as always 23:49:21 Oh, quite. 23:49:39 I just told the #schemers about how I extracted your true name from you -- just a sensible precaution -- 23:49:52 and then interrogated you about various channel members. No biggie. 23:50:13 oh, my true name is no secret. 23:51:27 I didn't mention any of the secrets you gave up under tortu^H^H^H^Henhanced techniques. 23:52:02 *offby1* suffers from Stockholm Syndrome, and thus applies for a job a jcowan's employer 23:52:09 ooh, look, they have free lattes 23:52:18 Free FroYo, too. 23:52:22 Not that I can eat it. 23:52:23 -!- sstrickl [n=sstrickl@129.10.110.45] has quit [] 23:52:36 I got a crown today, and my teeth hurt, and anyway I can't eat sweet stuff any more.