00:08:09 copumpkin [n=pumpkin@c-24-63-67-154.hsd1.nh.comcast.net] has joined #scheme 00:09:24 -!- MrFahrenheit [n=RageOfTh@SE400.PPPoE-1515.sa.bih.net.ba] has quit [Read error: 110 (Connection timed out)] 00:10:02 -!- Adamant [n=Adamant@unaffiliated/adamant] has quit [] 00:16:00 -!- athos [n=philipp@92.250.250.68] has quit [Remote closed the connection] 00:19:19 CaptainMorgan [n=CaptainM@75.68.42.94] has joined #scheme 00:19:57 rouslan [n=Rouslan@unaffiliated/rouslan] has joined #scheme 00:26:03 -!- mrsolo [n=mrsolo@nat/yahoo/x-13c2e0821c57a45d] has quit [Read error: 54 (Connection reset by peer)] 00:26:38 -!- metasyntax [n=taylor@pool-71-127-125-129.aubnin.fios.verizon.net] has quit ["Nichts mehr."] 00:30:43 lowlycoder [n=x@unaffiliated/lowlycoder] has joined #scheme 00:49:43 -!- segoe [i=3e164621@gateway/web/freenode/x-f2edfbf04b54b693] has quit ["Page closed"] 00:52:07 -!- lowlycoder [n=x@unaffiliated/lowlycoder] has quit ["Lost terminal"] 01:00:46 -!- pantsd [n=hkarau@206-248-153-252.dsl.teksavvy.com] has quit [Read error: 60 (Operation timed out)] 01:01:25 pantsd [n=hkarau@69-165-148-185.dsl.teksavvy.com] has joined #scheme 01:02:34 attila_lendvai [n=ati@catv-89-132-189-132.catv.broadband.hu] has joined #scheme 01:13:44 -!- synx [i=synx@gateway/gpg-tor/key-0xA71B0C6A] has quit [Remote closed the connection] 01:14:52 synx [i=synx@gateway/gpg-tor/key-0xA71B0C6A] has joined #scheme 01:17:40 -!- arthurmaciel [n=user@189.100.126.138] has quit [Read error: 113 (No route to host)] 01:34:03 Riastradh: I fixed the typo, and sent your summary to Matthew. 01:34:34 Riastradh: You can still post it on the mailing list though -- regardless of being documented. 01:35:33 Riastradh: (But it looks like this can only be an issue with `let-syntax'.) 01:36:03 -!- blackened` [n=blackene@ip-89-102-28-224.karneval.cz] has quit [] 01:37:24 eli, what was the typo? 01:37:54 17:25 < Riastradh> eli, if you're up for fixing typos: the document incorrectly says `than' where I substituted `from'. 01:37:58 Oh, right. 01:38:06 elderK [n=elderK@222-152-92-36.jetstream.xtra.co.nz] has joined #scheme 01:38:18 -!- elderK [n=elderK@222-152-92-36.jetstream.xtra.co.nz] has quit [Remote closed the connection] 01:38:42 Riastradh: Yes, that one. 01:39:19 And btw, I said in my email that you might raise it on the mailing list, if you'd want to do that. 01:40:56 -!- shagou [i=user@Mix-Orleans-106-1-179.w193-248.abo.wanadoo.fr] has quit [Remote closed the connection] 01:41:47 -!- attila_lendvai [n=ati@catv-89-132-189-132.catv.broadband.hu] has quit [Read error: 113 (No route to host)] 01:42:36 It is an issue with any local syntax definitions, whether they be introduced by LET-SYNTAX, LETREC-SYNTAX, or DEFINE-SYNTAX. 01:43:04 -!- saccade_ [n=saccade@dhcp-18-188-74-28.dyn.mit.edu] has quit ["This computer has gone to sleep"] 01:43:40 arcfide [n=arcfide@h-69-3-100-36.chcgilgm.dynamic.covad.net] has joined #scheme 01:49:17 Riastradh: Yes, I should have said "local macros" rather than "`let-syntax'". 01:49:26 OK. 01:53:09 elderK [n=elderK@222-152-92-36.jetstream.xtra.co.nz] has joined #scheme 01:54:21 chandler pasted "Why does datum->syntax accept template identifiers that cross phases?" at http://paste.lisp.org/display/82529 01:55:49 Hey guys, 01:55:59 anyone know where I can find an example of how apply would be implemented? 01:56:00 I'm curious 01:56:04 Why should it care about crossing phases, chandler? 01:56:25 elderK, magic. 01:56:25 I'd like to see how it passes the elements of the list, to the function :) 01:56:45 :P lol 01:56:47 Cheers Riastradh. 01:57:44 At best you can start with a primitive binary %APPLY, and turn it into an n-ary %APPLY using CONS* from SRFI 1: (define (apply procedure argument . arguments) (%apply procedure (%apply cons* (cons argument arguments)))) 01:58:02 But that doesn't really answer your question; that only helps to explain what is going on with multiple arguments. 01:58:23 And the real answer is that APPLY is generally primitive, or implemented in terms of a primitive, like CAR, IF, CONS, and LAMBDA. 01:58:36 I was wondering :) 01:58:44 Just checked guile's sources. 01:58:49 like, it's libraries. 01:58:51 @apply is there 01:58:56 in the apply procedures definition 01:59:10 I was thinking if I wrote apply for fun, as a macro, it'd be cheating. 01:59:23 It doesn't make sense for APPLY to be a macro. 01:59:33 Okay, why? 01:59:33 :) 01:59:42 I'd be doing it purely to get a better understanding and ot see if I could. 01:59:43 :) 01:59:46 There's nothing syntactically interesting about APPLY. 01:59:50 Well, it _can't_ be since you can APPLY APPLY. 01:59:58 That too. 02:00:07 r4rs.scm:(set! apply (lambda (fun . args) (@apply fun (apply:nconc2last args)))) 02:00:59 heya foof! 02:01:03 *elderK* ponders 02:02:37 Hm. So, it's a primitive? 02:02:52 :P I can't help but wonder how you would destructure the input, like, 02:05:01 like, I wonder how... it extracts the list components, so they can appear individually in the call to the function. 02:05:25 hm. 02:05:29 Magic, as I said. 02:05:43 GreyLensman [n=ray@c-76-109-2-157.hsd1.fl.comcast.net] has joined #scheme 02:05:50 But, Magic in terms of 'its interpreter implementation magic' or, Magic in terms of 'continuations and complicated scary stuff' 02:05:57 The former. 02:06:07 Okay, there we go :) 02:06:10 :P See, if it was the latter, 02:06:14 -!- GreyLensman [n=ray@c-76-109-2-157.hsd1.fl.comcast.net] has left #scheme 02:06:19 I would have to see the implementation of such a procedure. I couldn't not. 02:06:20 :) 02:06:23 :P Curiosity. you know how it is. 02:06:29 morning 02:06:38 Mornin' :) 02:08:53 Riastradh: I would have expected that the syntactic binding established by `syntax-case' for `point' in phase 1 would not be visible to `datum->syntax' in phase 2. 02:13:54 Hm. Or maybe I shouldn't expect that. syntax-case often confounds my expectations. 02:14:37 kilimanjaro [n=kilimanj@70.116.95.163] has joined #scheme 02:14:55 -!- ASau [n=user@193.138.70.52] has quit ["off"] 02:17:45 reprore [n=reprore@ntkngw261071.kngw.nt.ftth.ppp.infoweb.ne.jp] has joined #scheme 02:28:03 dysinger_ [n=tim@71-20-231-3.war.clearwire-wmx.net] has joined #scheme 02:33:38 I don't quite understand why all occurrences of formal arguments would be evaluated in applicative-order evaluation. 02:33:47 For example: http://pastebin.com/d66da7a8e 02:33:51 -!- dysinger [n=tim@71.20.231.3] has quit [Read error: 60 (Operation timed out)] 02:34:50 Why would "y" be evaluated, even if the "if" combination does not reach "y"? 02:35:25 I thought only the normal-order evaluation strategy would evaluate it. 02:35:31 rouslan: IF isn't a procedure so no 02:36:23 soupdragon: Could you elaborate? 02:40:13 rouslan: That would kind of miss the point wouldn't it, if the both clauses were executed regardless if the test was true or not? 02:41:34 saccade_ [n=saccade@65-78-24-131.c3-0.smr-ubr1.sbo-smr.ma.cable.rcn.com] has joined #scheme 02:42:49 synx: Yes, but they are both executed. 02:44:45 ASau [n=user@193.138.70.52] has joined #scheme 02:47:20 ventonegro [n=alex@189.100.200.80] has joined #scheme 02:50:41 They aren't though. 02:51:18 chandler annotated #82529 "a slightly different case that illustrates my confusion" at http://paste.lisp.org/display/82529#1 02:51:48 rudybot: eval (if (= 0 1) (display "true\n") (display "false\n")) 02:51:49 synx: error: make-evaluator: expecting a single `module' program; got more than a single expression 02:51:58 evaluated I should say... 02:52:02 I'm not sure how it works, but 'if' somehow defers the evaluation until it can determine whether the test is true or not. 02:52:47 Imagine a function `%if' that takes a predicate and two thunks. 02:52:58 How would you express `if' in terms of this function? 02:52:59 tjafk1 [n=timj@e176206224.adsl.alicedsl.de] has joined #scheme 02:53:40 if is a special form: http://www-pu.informatik.uni-tuebingen.de/users/sperber/pfg-2001/scheme/schintro-v14/schintro_17.html 02:53:42 -rudybot:#scheme- http://tinyurl.com/mdeezl 02:53:51 r5rs if 02:53:51 http://www.schemers.org/Documents/Standards/R5RS/HTML/r5rs-Z-H-7.html#%_idx_98 02:53:53 -rudybot:#scheme- http://tinyurl.com/4xlwxg 02:54:17 dammit 02:54:23 offby1: fix your bot! 02:54:36 It's syntax. It could expand into a function call. 02:54:58 chandler: I'm not really strong on understanding why lambda can defer evaluation either. 02:55:29 Ah. Lambda is the key. 02:56:19 (lambda () (display 3)) <-- does not display 3 02:56:33 I just try to pretend it's magic, and everything else derives pretty cleanly from that. 02:57:44 -!- reprore [n=reprore@ntkngw261071.kngw.nt.ftth.ppp.infoweb.ne.jp] has quit [Read error: 104 (Connection reset by peer)] 02:57:47 it's just like writing a program, it doens't do anything until you actually *call* it 02:57:56 synx: It does not; infinite tail recursion occurs with (test 0 (p)) 02:58:12 reprore [n=reprore@ntkngw261071.kngw.nt.ftth.ppp.infoweb.ne.jp] has joined #scheme 02:59:36 rouslan: (lambda () (test 0 (p))) does not do an infinite loop though. 02:59:51 synx: It does... 03:00:00 Due to (define (p) (p)) 03:00:30 ? 03:00:42 a lambda form cannot surely loop 03:01:06 Never mind. 03:01:08 No when you wrap a lambda around it, nothing happens rouslan 03:01:13 rouslan: (test 0 p) and (test 0 (p)) are subtly different 03:01:50 (test 0 p) will not go into an infinte loop while (test 1 p) will 03:02:12 but (test 0 (p)) and (test 1 (p)) will both go into an infinite loop 03:02:18 If I didn't kill rudybot, I could demonstrate. 03:02:19 hm... 03:02:21 incubot: (define (p) (p)) 03:02:22 # 03:02:22 incubot: (lambda () (p)) 03:02:24 # 03:03:14 excuse, actually, neither (test 0 p) nor (test 1 p) will go into an infinite loop 03:04:10 You have to apply p for its infinite loop to happen. That means putting it on the left side of a paranthetical I think. (p ...) 03:04:14 -!- Axioplase_ is now known as Axioplase 03:04:58 correct, that would be called "applying" p 03:05:27 Riastradh: ping 03:05:28 peter_12 [n=peter_12@S010600119506b129.gv.shawcable.net] has joined #scheme 03:09:00 -!- tjafk2 [n=timj@e176222060.adsl.alicedsl.de] has quit [Read error: 110 (Connection timed out)] 03:12:54 -!- reprore [n=reprore@ntkngw261071.kngw.nt.ftth.ppp.infoweb.ne.jp] has quit [Read error: 104 (Connection reset by peer)] 03:13:23 reprore_ [n=reprore@ntkngw261071.kngw.nt.ftth.ppp.infoweb.ne.jp] has joined #scheme 03:19:13 -!- rouslan [n=Rouslan@unaffiliated/rouslan] has quit [Remote closed the connection] 03:21:02 rudybot: eval (if (= 0 1) (display "true\n") (display "false\n")) 03:21:03 *offby1: your scheme sandbox is ready 03:21:03 *offby1: ; stdout: "false\n" 03:21:09 synx: what's wrong with mr. bot? 03:22:34 -!- reprore_ [n=reprore@ntkngw261071.kngw.nt.ftth.ppp.infoweb.ne.jp] has quit [Read error: 104 (Connection reset by peer)] 03:22:56 reprore [n=reprore@ntkngw261071.kngw.nt.ftth.ppp.infoweb.ne.jp] has joined #scheme 03:23:37 what's wrong is incubot doesn't want to do rudybot's job ;) 03:24:08 -!- reprore [n=reprore@ntkngw261071.kngw.nt.ftth.ppp.infoweb.ne.jp] has quit [Remote closed the connection] 03:25:33 -!- r0bby is now known as r0bby|arr 03:25:47 hey datkin 03:26:09 datkin: did you try foof's chibi-scheme? 03:27:12 -!- r0bby|arr is now known as r0bby 03:27:19 it's pretty cool! 03:27:46 rudybot: eval (quit) 03:27:47 synx: error: make-evaluator: expecting a single `module' program; got more than a single expression 03:27:58 I built it and I probably tried Y or something, I forget exactly 03:29:20 duncanm: why do you ask? 03:29:34 datkin: i thought that's the sort of thing you'd like to read the source code for 03:29:42 oh, it is 03:30:18 offby1: That's what's wrong with it. My sandbox is borked beyond recovery. 03:32:06 synx: try "rudybot: init" 03:32:07 synx: try eval )))))))))))))))))))))? :P 03:33:26 duncanm: I can't make BLUG (?) on Monday unfortunately 03:33:34 I must add that lag over tor is getting up to 1 minute now. crazy... 03:33:45 ah, that's too bad 03:35:08 rudybot: init 03:35:09 synx: error: make-evaluator: expecting a single `module' program; got more than a single expression 03:35:27 Elly: ))))))))))))))))))))): 03:35:27 -!- CaptainMorgan [n=CaptainM@75.68.42.94] has quit [Remote closed the connection] 03:35:55 synx: damn 03:36:24 synx: Did you see what I did earlier, then did `init '? 03:36:25 rudybot: eval whassup 03:36:27 *offby1: error: make-evaluator: expecting a single `module' program; got more than a single expression 03:36:29 :) 03:36:50 rudybot: init scheme 03:36:51 *offby1: your scheme sandbox is ready 03:36:55 rudybot: eval whassup 03:36:55 *offby1: error: reference to an identifier before its definition: whassup in module: 'program 03:37:20 synx: OK, so try "rudybot: init scheme" 03:37:24 So evreesing iz fein. 03:37:33 ees güt 03:38:16 -!- Daeken [n=foo@adsl-34-237-182.asm.bellsouth.net] has left #scheme 03:38:22 offby1: Inorite! 03:38:29 rouslan [n=Rouslan@unaffiliated/rouslan] has joined #scheme 03:39:24 eli: maaaaaaybe 03:39:41 synx: do `init scheme' then. 03:39:46 rudybot: init scheme 03:39:47 synx: your scheme sandbox is ready 03:40:07 c'mon c'mon 03:40:11 I'm pretty sure I tried that already... 03:40:12 do eet 03:40:14 do eet 03:40:32 nope, you didn't 03:40:33 damn 103 seconds lag 03:41:10 What is "(if ...)" if it's not a procedure? 03:41:13 What lag? It's not supposed to do anything. 03:41:26 rouslan: syntax 03:42:44 I guess I must never have tried "init scheme", weird... 03:43:13 You replied in 20 seconds, yay lag is getting better. 03:43:16 -!- rouslan [n=Rouslan@unaffiliated/rouslan] has quit [Read error: 104 (Connection reset by peer)] 03:43:46 rouslan: 'if' is a special form. 03:44:18 eli: I'm just complaining about IRC lag. TOR is kind of slow. :/ 03:45:12 anonymity has its cost 03:46:21 jonrafkind [n=jon@98.202.86.149] has joined #scheme 03:48:07 I just use it for the encryption. 03:49:42 synx: Let's not forget that you use it for encrypting convesations that are publicly logged... 03:50:02 I just read it for the articles 03:51:14 -!- soupdragon [n=f@amcant.demon.co.uk] has quit ["Leaving"] 03:52:47 yeah eli, but that way my ISP can't tell which of their users is a synx. 03:53:34 -!- ventonegro [n=alex@189.100.200.80] has quit [] 03:53:59 -!- MichaelRaskin [n=MichaelR@195.91.224.225] has quit [Remote closed the connection] 03:55:18 sure they can: it's _you_! 03:55:23 *offby1* points triumphantly 03:55:30 synx: ... and that's important because ... ? 03:55:40 synx: No, no, that was rhetorical... 03:56:36 Last time I complained about comcast a representative came over to my house, showed me the logs, and slapped me. 03:58:49 eli: pong, briefly. 03:58:54 -!- hosh [n=hosh@c-71-199-176-82.hsd1.ga.comcast.net] has quit [Read error: 104 (Connection reset by peer)] 04:01:13 With Tor, synx need not reveal his current whereabouts. 04:04:17 I could just get a hostmask for that Riastradh. Well, assuming the sysops were feeling generous. 04:04:35 Nor need synx reveal his current whereabouts to the Freenode administrators. 04:07:22 They kind of require that you do, or you get banned from TOR. 04:07:32 Huh? 04:07:33 At least you need to reveal a non-anonymous email address. 04:07:43 http://www.cs.dartmouth.edu/~nymble/ 04:08:13 Riastradh: synx aside, you said earlier: 04:08:32 synx, yes, but that doesn't have any connection to your current whereabouts. 04:08:41 Riastradh: (let ((x 5)) (let-syntax ((f (lambda (stx) (let ((x 3)) (datum->syntax stx x))))) (f))) --> 3 04:09:01 Riastradh: and then you said "So the truth is a little more complicated than what the excerpt claimed" 04:09:06 I suppose that only applies to one's whereabouts at the time of account creation. :> 04:09:24 Riastradh: Matthew's reply to this was "I'm not sure what this is meant to test. The outer `x' isn't used at all, and the inner `x' is just referenced directly, so the result would be the same in either model." 04:09:44 Riastradh: and: "I don't understand why he says that the truth is more complicated than the docs say, so I welcome suggestions for clarifications." 04:10:18 Riastradh: And as for your "I still don't see why, say, local bindings at phase 0 should shadow module bindings at phase 1." 04:10:32 Riastradh: He said: "They don't have to, and I think either design is probably ok. I've never found an example that particularly needed one or the other." 04:10:42 *eli* finishes proxy session 04:10:44 eli, the documentation says: `If an identifier has a local binding, then it is the same for all phase levels, though the reference is allowed only at a particular phase level.' 04:11:10 Hence I concluded that the example I pasted into the channel should be invalid, because the identifier X has two bindings, one at phase 0 and one at phase 1. 04:13:31 Riastradh: But I don't see how that sentence could mean that your example is invalid, since the inner binding is still different than the outer one. 04:17:01 (`different from') I interpreted the sentence to mean that any binding at another phase level is necessarily the same binding, so that one cannot shadow a phase 0 local binding at phase 1. It is the phrase `it is the same for all phase levels' that confused me. 04:18:17 gfb [i=4c455486@gateway/web/freenode/x-b2c5205fea4e9232] has joined #scheme 04:18:45 -!- gfb [i=4c455486@gateway/web/freenode/x-b2c5205fea4e9232] has quit [Client Quit] 04:18:59 Riastradh: OK, I'll pass that on then. 04:19:07 copumpkin, gee, that web page looks much nicer when I strip the stylesheet, and it even fits inside a window that does not occupy the full screen of a 30" display. 04:19:34 hehe :) don't blame me, I had nothing to do with it! 04:19:43 just seemed vaguely relevant to your tor discussion earlier 04:19:56 and it's a neat idea 04:20:08 What? You mean I can't conclude based on your, um, well, I guess you don't have a cs.dartmouth.edu hostname any longer. 04:20:22 yeah, I had to move out 04:20:47 Oh, I get it: Dartmouth blacklisted you even though you were using Tor! 04:21:05 hmm, interesting... 04:21:14 yup :( 04:22:13 dysinger [n=tim@71-20-231-3.war.clearwire-wmx.net] has joined #scheme 04:23:03 -!- etoxam [n=||||||||@84.79.67.254] has quit [Read error: 60 (Operation timed out)] 04:23:38 -!- erg [n=erg@li13-154.members.linode.com] has quit [Read error: 60 (Operation timed out)] 04:23:41 erg [n=erg@li13-154.members.linode.com] has joined #scheme 04:23:51 -!- pbusser2 [n=peter@ip138-238-174-82.adsl2.static.versatel.nl] has quit [Read error: 60 (Operation timed out)] 04:24:02 pbusser2 [n=peter@ip138-238-174-82.adsl2.static.versatel.nl] has joined #scheme 04:24:18 Has anyone come to a definitive answer regarding this phasing and syntax and bindings thing? 04:24:20 etoxam [n=||||||||@84.79.67.254] has joined #scheme 04:25:05 oh never mind, it's just giving someone else your IP address, no anonymity retained. 04:25:12 yeah just go to www.fed.gov and get a ticket allowing you to use Tor on Freenode. That'll keep you real safe from the evil Freenode admins from knowing your IP. 04:25:26 Which question, arcfide? 04:25:38 There have been several questions. 04:25:46 synx: what else can you expect? :P 04:25:55 synx: the point is to split knowledge about who you are and where you go 04:26:04 still in the "spirit" of tor 04:26:16 if the nodes you go through collude, you're still screwed 04:27:43 Riastradh: (let ([... 42]) (let-syntax ([a (syntax-rules () [(_ a ...) (list 'a ...)])]) (a b c)) 04:28:23 arcfide: I have no idea what you guys are talking about. It's as incomprehensible to me as the notion of syntax rules inside syntax rules. 04:28:24 copumpkin: I don't have the solution, but that's definitely not it. 04:28:25 Yeah TOR kind of sucks. It's the only privacy option with Freenode though. 04:28:28 Mostly it just protects me from clueless script kiddies. I reveal my IP all the time on here. 04:29:06 you people... are putting syntax rules inside syntax rules... what could this possibly accomplish. I can't even tell what the heck you're talking about. 04:29:10 synx: I think it does have potential... the flaws are mostly the same as tor's 04:29:20 you definitely lose anonymity 04:29:21 Riastradh: The fact that you think the binding for ... shouldn't affect the patterns being matched, whereas this happens in many schemes. I don't think I quite got it from eli's explanation either. 04:29:27 incubot: rectnum may be the most unfortunate identifier name since assq 04:29:30 name sure sounds unfortunate when capitalised in that particular way 04:29:41 but it's arguably better than getting all your tor nodes blacklisted after someone abuses them 04:30:28 synx: Get some practice, and before you know it, you'll have a comprehension of our incomprehension in no time. 04:30:32 copumpkin: might as well just directly connect to Freenode if they're going to make me give my IP to the Feds anyway. 04:30:51 synx: no one's saying that the feds should run the entry point 04:31:02 MichaelRaskin [n=MichaelR@213.171.48.239] has joined #scheme 04:31:29 arcfide: I could twist my brain around it for a million years. Syntax that syntaxes syntax is just too much for me. 04:31:46 copumpkin: Believe me, if they didn't initially, it wouldn't be long before they would. 04:32:05 -!- MichaelRaskin [n=MichaelR@213.171.48.239] has left #scheme 04:32:13 well, I know the people who came up with the scheme and can say for sure that they wouldn't :P but others might :) 04:32:28 MichaelRaskin [n=MichaelR@213.171.48.239] has joined #scheme 04:33:59 synx: Yet, you may do it all the time. Take DO for example, and how it could be expanded into a LET, which is just another syntax which is recursively expanded into something else, maybe. 04:36:10 arcfide: I'm fine with that expansion. It's putting the phrase "syntax-rules" inside the body of the definition of a syntax-rule that I find confusing. 04:39:52 AtnNn [n=welcome@modemcable087.62-56-74.mc.videotron.ca] has joined #scheme 04:40:17 -!- dysinger_ [n=tim@71-20-231-3.war.clearwire-wmx.net] has quit [Read error: 110 (Connection timed out)] 04:42:07 synx: (define-syntax foo (make-me-a-macro pepperoni anchovies olives feta-cheese)) 04:42:53 What should the macro MAKE-ME-A-MACRO expand to? 04:42:54 chandler: are you still confused about how the rebinding of ... affects syntax patterns? 04:44:07 arcfide: ... doesn't depend on the environment in syntax-rules according to r5rs, so that's that, no? 04:44:13 augh but it can't expand if it's not a... when you did... 04:44:41 roderic, in the R5RS, you may not put anything but a literal SYNTAX-RULES transformer on the right-hand side of a syntactic binding form. 04:46:01 right, that doesn't effect that question though? 04:46:16 -!- AtnNn [n=welcome@modemcable087.62-56-74.mc.videotron.ca] has quit ["foobar"] 04:46:18 ...oh, sorry, you're right. 04:47:21 I heard an explanation that sort of made sense. Apparently, in some Schemes, Chez among them, only one binding for a given identifier can exist across all phases. ... is considered a bound auxilary keyword, and is treated like any other bound identifier for all intents and purposes here. 04:47:25 AtnNn [n=welcome@modemcable087.62-56-74.mc.videotron.ca] has joined #scheme 04:48:21 This means that rebinding the ... makes that identifier nothing more than another pattern variable, and hence, one gets the behavior of the LET ... LET-SYNTAX form. 04:48:37 The R5RS is unclear on the subject. I think the intent is that `...' should behave just like SYNTAX-RULES literals, such as ELSE in COND and CASE clauses. But all that the R5RS says is that , in its production rules for SYNTAX-RULES patterns and templates, `is the identifier ``...''.' 04:50:57 I think this is the only sensible interpretation, although one argument against it is that `...' does not occur in the production rule in Section 7.1.1 `Lexical structure', whereas ELSE, =>, UNQUOTE, and UNQUOTE-SPLICING do occur in that production rule. 04:51:48 On the other hand, all of Section 7.1 `Formal syntax' is basically bogus. 04:51:58 Riastradh: I am speaking more from R6RS here, wherein the literals like ELSE are actually exported "auxilary keywords" that are bound identifiers. 04:52:10 (including the name of that production rule, which is total nonsense) 04:54:09 Anyways, an illustration of this is (library (new-ellipse) (export a) (import (rename (rnrs) (... &c.))) (define-syntax a (syntax-rules () [(_ a &c.) (list 'a &c.)]))). 04:54:18 And, I'm off. 04:54:22 -!- ASau [n=user@193.138.70.52] has quit [Read error: 110 (Connection timed out)] 04:54:29 Argh. 04:54:54 Excuse me; I overlooked what I corrected the first time. 04:55:25 There should be no problem with (let ((... 42)) (let-syntax &c.)), because the binding of `...' happens at a different phase from the use of SYNTAX-RULES. 04:55:33 (And there isn't in Scheme48, for instance.) 04:56:12 Whether `...' is treated as a literal like ELSE in COND and CASE matters instead for the example (let-syntax ((foo (let ((... 42)) (syntax-rules [rules])))) [body]). 04:56:26 This is not, however, permitted by the R5RS, so it is a bit of a moot point. 04:57:00 So (let ((... 42)) (let-syntax ((foo (syntax-rules () ((foo a ...) (list 'a ...))))) (foo a b c] should always expand to (LIST 'A 'B 'C). 04:57:24 Anyway, it is late, and I need to sleep. 05:16:49 sladegen [n=nemo@unaffiliated/sladegen] has joined #scheme 05:17:29 I wish scheme 48 would have more documentation. 05:18:42 socialite [n=piespy@dynamic-78-8-240-63.ssp.dialog.net.pl] has joined #scheme 05:19:27 -!- peter_12 [n=peter_12@S010600119506b129.gv.shawcable.net] has quit [] 05:24:38 hosh [n=hosh@c-71-199-176-82.hsd1.ga.comcast.net] has joined #scheme 05:26:04 thesnowdog [i=thesnowd@114.73.39.174] has joined #scheme 05:30:18 OMG, Xah Lee just posted an article entitled "Death Of A Troll" regarding Eric Naggum. 05:30:29 IRONY 05:30:35 *foof* explodes of irony overload 05:31:56 leppie|work [i=52d2e3c8@gateway/web/freenode/x-93192cb6e49dd650] has joined #scheme 05:45:07 athos [n=philipp@92.250.250.68] has joined #scheme 05:48:33 -!- hosh [n=hosh@c-71-199-176-82.hsd1.ga.comcast.net] has quit [Remote closed the connection] 05:58:23 hosh [n=hosh@c-71-199-176-82.hsd1.ga.comcast.net] has joined #scheme 06:19:19 -!- X-Scale [i=email@89.180.147.20] has left #scheme 06:25:21 -!- MichaelRaskin [n=MichaelR@213.171.48.239] has left #scheme 06:25:52 MichaelRaskin [n=MichaelR@213.171.48.239] has joined #scheme 06:34:51 there must be a way to open a file into a buffer via http in emacs, right? 06:35:13 the closest i could find is use some wget.el and then opening it 06:39:33 can tramp do this? 06:40:16 nope 06:42:01 you only want to open it, not save it later back to the server? 06:43:27 mmc [n=mima@esprx01x.nokia.com] has joined #scheme 06:45:48 -!- elderK [n=elderK@222-152-92-36.jetstream.xtra.co.nz] has quit [] 06:46:07 ASau [n=user@77.246.230.147] has joined #scheme 06:48:19 -!- arcfide [n=arcfide@h-69-3-100-36.chcgilgm.dynamic.covad.net] has left #scheme 07:05:23 -!- cracki [n=cracki@sglty.kawo2.RWTH-Aachen.DE] has quit ["If technology is distinguishable from magic, it is insufficiently advanced."] 07:15:45 ejs [n=eugen@167-21-135-95.pool.ukrtel.net] has joined #scheme 07:16:39 -!- AtnNn [n=welcome@modemcable087.62-56-74.mc.videotron.ca] has quit [Read error: 110 (Connection timed out)] 07:22:31 amca [n=amca@CPE-121-208-82-97.qld.bigpond.net.au] has joined #scheme 07:26:41 rdd [n=user@c83-250-157-93.bredband.comhem.se] has joined #scheme 07:27:06 cracki [n=cracki@42-078.eduroam.RWTH-Aachen.DE] has joined #scheme 07:32:58 -!- ejs [n=eugen@167-21-135-95.pool.ukrtel.net] has quit ["This computer has gone to sleep"] 07:45:59 ejs [n=eugen@115-69-135-95.pool.ukrtel.net] has joined #scheme 07:48:10 sepult [n=buggarag@xdsl-87-78-72-190.netcologne.de] has joined #scheme 07:48:41 -!- bsund [n=bsund@h29n2fls303o1114.telia.com] has quit [Remote closed the connection] 08:00:46 -!- ejs [n=eugen@115-69-135-95.pool.ukrtel.net] has quit ["This computer has gone to sleep"] 08:15:40 blandest [n=blandest@softhouse.is.ew.ro] has joined #scheme 08:22:19 wingo [n=wingo@188.Red-83-44-189.dynamicIP.rima-tde.net] has joined #scheme 08:25:40 -!- wingo [n=wingo@188.Red-83-44-189.dynamicIP.rima-tde.net] has left #scheme 08:55:37 ejs [n=eugen@77.222.151.102] has joined #scheme 09:06:09 ejs1 [n=eugen@nat.ironport.com] has joined #scheme 09:06:21 hkBst [n=hkBst@gentoo/developer/hkbst] has joined #scheme 09:12:59 -!- 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"] 09:14:51 -!- ejs [n=eugen@77.222.151.102] has quit [Read error: 110 (Connection timed out)] 09:21:42 -!- foof [n=user@dn157-046.naist.jp] has quit [Remote closed the connection] 09:22:45 foof [n=user@dn157-046.naist.jp] has joined #scheme 09:22:54 attila_lendvai [n=ati@catv-89-132-189-132.catv.broadband.hu] has joined #scheme 09:28:03 -!- athos [n=philipp@92.250.250.68] has quit ["leaving"] 09:33:39 -!- rdd [n=user@c83-250-157-93.bredband.comhem.se] has quit [Remote closed the connection] 09:41:20 Sveklo [n=user@a88-115-8-123.elisa-laajakaista.fi] has joined #scheme 09:43:01 -!- foof [n=user@dn157-046.naist.jp] has quit [Read error: 110 (Connection timed out)] 09:46:51 -!- blandest [n=blandest@softhouse.is.ew.ro] has quit [Read error: 110 (Connection timed out)] 09:47:46 lisppaste: url 09:47:46 To use the lisppaste bot, visit http://paste.lisp.org/new/scheme and enter your paste. 09:50:32 borism_ [n=boris@195-50-200-18-dsl.krw.estpak.ee] has joined #scheme 09:51:47 duncanm: http://httpfs.sourceforge.net/ ? 09:53:15 -!- borism [n=boris@195-50-201-218-dsl.krw.estpak.ee] has quit [Read error: 145 (Connection timed out)] 10:08:06 lisppaste: url 10:08:06 To use the lisppaste bot, visit http://paste.lisp.org/new/scheme and enter your paste. 10:08:39 hkBst pasted "weird literal" at http://paste.lisp.org/display/82547 10:08:54 is that a valid macro? 10:09:47 looks like it 10:11:41 what is the meaninf of the `if' in the template, leppie|work? 10:13:25 neilv [n=user@dsl092-071-029.bos1.dsl.speakeasy.net] has joined #scheme 10:17:45 hkBst annotated #82547 "rebind if locally" at http://paste.lisp.org/display/82547#1 10:18:41 -!- MichaelRaskin [n=MichaelR@213.171.48.239] has left #scheme 10:19:09 MichaelRaskin [n=MichaelR@213.171.48.239] has joined #scheme 10:20:10 it matches the if identifier 10:20:46 oh i dunno 10:21:12 this is all confusing me, some say one way, some say the other, and I cant find a definitive answer :( 10:21:39 -!- sepult [n=buggarag@xdsl-87-78-72-190.netcologne.de] has quit ["leaving"] 10:21:54 psyntax based implementations works one way, all the others seem to work another way 10:22:44 drscheme 4.2 says true for the first version 10:23:24 although its check-syntax doesn't draw the arrows correctly for the "if" in the match pattern of the syntax-rules form 10:30:28 jewel_ [n=jewel@dsl-242-129-65.telkomadsl.co.za] has joined #scheme 10:32:44 -!- jewel_ is now known as jewel 10:42:13 -!- dsmith [n=dsmith@cpe-173-88-196-177.neo.res.rr.com] has quit ["Leaving"] 10:46:22 fabse [n=myfabse@wikipedia/Track-n-Field] has joined #scheme 10:46:31 what should be the value of (let ((else #f)) (cond (else #t))) ? 10:47:33 #t? 10:49:42 scheme48 fails me... ;( 10:49:53 blackened` [n=blackene@ip-89-102-28-224.karneval.cz] has joined #scheme 10:57:33 sladegen: it seems that the correct result is (values) 11:02:56 kuribas [i=kristof@d54C434F4.access.telenet.be] has joined #scheme 11:05:04 sepult [n=buggarag@xdsl-87-78-72-190.netcologne.de] has joined #scheme 11:05:10 Edico [n=Edico@unaffiliated/edico] has joined #scheme 11:12:46 hkBst: according to Aziz (from psyntax/Ikarus) that should not work 11:15:17 the else shadows the inner else 11:15:36 so you will get (cond (#f #t)) 11:15:51 -!- Sveklo [n=user@a88-115-8-123.elisa-laajakaista.fi] has quit [Remote closed the connection] 11:16:03 oh, which is valid, oops 11:16:16 which returns unspecified 11:18:50 -!- cracki [n=cracki@42-078.eduroam.RWTH-Aachen.DE] has quit ["If technology is distinguishable from magic, it is insufficiently advanced."] 11:18:58 sladegen: does Scheme48 give #t ? 11:19:33 of course not. 11:20:03 leppie|work: gsi does 11:20:14 but gsi -:s does not 11:20:23 -!- kilimanjaro [n=kilimanj@70.116.95.163] has quit [Remote closed the connection] 11:21:47 bigglo says #t too 11:22:08 bigloo, ekhem. 11:22:29 *sladegen* feels vindicated ;) 11:24:35 rdd [n=user@c83-250-157-93.bredband.comhem.se] has joined #scheme 11:29:39 blandest [n=blandest@softhouse.is.ew.ro] has joined #scheme 11:31:34 luz [n=davids@189.122.121.232] has joined #scheme 11:34:03 *leppie|work* is confused 11:35:10 -!- sepult [n=buggarag@xdsl-87-78-72-190.netcologne.de] has quit ["leaving"] 11:37:38 sladegen: my mind also says #t ;P 11:37:43 hehe, in scheme48 (cond (else #t)) expands to #t but let expands into ((lambda (else) (if else (begin #t) (unspecific))) #f) 11:39:30 it's a common pathology. 11:40:37 shagou [i=user@Mix-Orleans-106-2-85.w193-248.abo.wanadoo.fr] has joined #scheme 11:43:08 -!- kniu [n=kniu@pool-71-107-56-85.lsanca.dsl-w.verizon.net] has quit [Read error: 60 (Operation timed out)] 11:43:52 LiSP is very entertaining. who knew number<-string looks more intuitive ?;) 11:43:59 cracki [n=cracki@sglty.kawo2.RWTH-Aachen.DE] has joined #scheme 11:44:37 as in (x<-y (y<-z ...)) intuitive. 11:45:24 careful with those small pieces. if they fall on the floor, you'll never find them in the carpet 11:52:31 hkBst: The return is unspecified. The lexical binding of `else' established by `let' shadows all other meanings for the identifier, including its meaning as a literal in the `cond' syntax. 11:57:22 -!- exexex [n=chatzill@85.96.117.251] has quit [Read error: 110 (Connection timed out)] 11:59:17 -!- kuribas [i=kristof@d54C434F4.access.telenet.be] has quit ["ERC Version 5.2 (IRC client for Emacs)"] 11:59:40 kniu [n=kniu@pool-71-107-56-85.lsanca.dsl-w.verizon.net] has joined #scheme 12:00:05 Paraselene_ [n=Not@79-67-131-126.dynamic.dsl.as9105.com] has joined #scheme 12:00:15 -!- Ppjet6 is now known as Pepe_ 12:01:47 -!- luz [n=davids@189.122.121.232] has quit ["Client exiting"] 12:06:00 Sveklo [n=user@a88-115-8-123.elisa-laajakaista.fi] has joined #scheme 12:08:34 pierpa [n=user@host202-182-static.80-94-b.business.telecomitalia.it] has joined #scheme 12:20:58 Is there a HTML combinator library for Scheme?? 12:22:14 hkBst, (LET ((ELSE #F)) (COND (ELSE #T))) yields an unspecified value. (LET ((ELSE #F)) (COND (ELSE #T) (#T 'FOO))) yields FOO. In Gambit, `-:s' probably makes COND a hygienic macro, whereas by default, or with `-:S', COND is a non-hygienic macro. 12:23:23 Riastradh: Isn't it supposed to be hygienic, at least for R5RS? I've only seen cond defined as a macro in R5RS, and there are no unhygienic macros mentioned therein. 12:23:52 -!- neilv [n=user@dsl092-071-029.bos1.dsl.speakeasy.net] has quit ["Leaving"] 12:24:11 (My comment is in respect to the specification, i.e., "what should be", not to specific implementations.) 12:25:19 `-:s' means `make Gambit do what it's supposed to do'. 12:25:30 As opposed to `make Gambit behave randomly according to no particular specification'. 12:25:34 (which is the default) 12:25:51 Ah. :-) 12:34:52 luz [n=davids@139.82.89.70] has joined #scheme 12:40:09 Greg02_ [n=greg@ool-18bc79e7.dyn.optonline.net] has joined #scheme 12:42:57 soupdragon [n=f@amcant.demon.co.uk] has joined #scheme 12:46:35 metasyntax|work [n=taylor@75-149-208-121-Illinois.hfc.comcastbusiness.net] has joined #scheme 12:53:10 -!- MichaelRaskin [n=MichaelR@213.171.48.239] has left #scheme 12:53:40 MichaelRaskin [n=MichaelR@213.171.48.239] has joined #scheme 12:55:03 -!- shagou [i=user@Mix-Orleans-106-2-85.w193-248.abo.wanadoo.fr] has quit ["Quitte"] 12:55:10 Nshag [i=user@Mix-Orleans-106-2-85.w193-248.abo.wanadoo.fr] has joined #scheme 12:56:02 rmorris [n=user@209.120.179.205] has joined #scheme 12:56:44 -!- Greg02 [n=greg@ool-18bc79e7.dyn.optonline.net] has quit [Read error: 110 (Connection timed out)] 12:58:13 sepult [n=user@xdsl-87-78-72-190.netcologne.de] has joined #scheme 13:07:55 langmartin [n=user@exeuntcha.tva.gov] has joined #scheme 13:08:58 NNshag [i=user@Mix-Orleans-106-4-135.w193-248.abo.wanadoo.fr] has joined #scheme 13:15:02 -!- blandest [n=blandest@softhouse.is.ew.ro] has quit [Read error: 110 (Connection timed out)] 13:17:29 -!- Nshag [i=user@Mix-Orleans-106-2-85.w193-248.abo.wanadoo.fr] has quit [Success] 13:19:24 -!- sepult [n=user@xdsl-87-78-72-190.netcologne.de] has left #scheme 13:20:40 chandler pasted "what syntactic environment is datum->syntax restoring?" at http://paste.lisp.org/display/82549 13:21:01 -!- NNshag [i=user@Mix-Orleans-106-4-135.w193-248.abo.wanadoo.fr] has quit ["Quitte"] 13:21:06 Nshag [i=user@Mix-Orleans-106-4-135.w193-248.abo.wanadoo.fr] has joined #scheme 13:21:45 -!- fishey [n=fisheyss@ool-4573344b.dyn.optonline.net] has quit [Read error: 110 (Connection timed out)] 13:22:21 fishey [n=fisheyss@ool-4573344b.dyn.optonline.net] has joined #scheme 13:22:45 chandler, my guess is that that's an error, because P doesn't have any interesting binding on the right-hand side of the inner LET-SYNTAX. 13:23:00 Aha! On this one, PLT behaves differently from Larceny. 13:23:13 Or P has a binding at the wrong phase. 13:23:34 What does that actually do? 13:24:56 The result printed by PLT is 3, which indicates that the environment restored by `datum->syntax' is the environment where `g' is defined. 13:25:10 Oh, yes, right. 13:25:25 Larceny issues an error about cross-phase pattern variable reference. 13:25:43 (Once again leaking a psyntax gensym's printed representation.) 13:25:45 message : "invalid reference: Attempt to use binding of p in library (\x0;program~1ahcKm~2) at invalid level 2. Binding is only available at levels: 1" 13:25:47 OK. Neither semantics surprises me. (My reasoning was correct; my conclusion was wrong, because I mixed up one of the indirections you had there.) 13:27:22 PLT's semantics surprised me, actually. I expected it to issue an error about a cross-phase reference of `p'. 13:27:29 -!- fabse [n=myfabse@wikipedia/Track-n-Field] has quit [] 13:27:35 (Why is the syntax of FOR clauses in IMPORTs syntactically backwards from English? We don't say `for, this thing, this phase'; we say `for this phase, this thing'.) 13:28:24 Import specs have been bugging me in general. Would a simple syntax for importing a library at multiple levels have been too much to ask for? 13:29:25 Yes. 13:29:26 I'm not sure that would be a good idea -- it encourages mixture of phases leading to confusing accidental reliance on state. 13:29:32 Right. 13:31:28 ... It does, more than my importing (rnrs base (6)) at (meta 0), (meta 1), and (meta 2) does already? 13:31:30 It wouldn't be quite as bad as the total lossage of implicit phasing, but I don't think it would help anything much either. It is uncommon to use more than two levels, anyway. 13:31:36 I can see ikarus people saying "just import foo at all levels from -3 to +3", it doesn't matter anyway. 13:31:37 bombshelter13_ [n=bombshel@toronto-gw.adsl.erx01.mtlcnds.ext.distributel.net] has joined #scheme 13:32:22 bzzbzz [n=franco@modemcable240.34-83-70.mc.videotron.ca] has joined #scheme 13:32:50 It's also uncommon to have the same requirements at different levels, since they do completely different things. 13:32:54 (and I mean two levels including level 0) 13:32:54 I'm not convinced of the merits of using syntax as a cudgel to encourage or discurage behavior, and I've had to re-type (rnrs base (6)) and (rnrs syntax-case (6)) often enough in the past few days that it's annoyed me. 13:33:40 eli: Did you see http://paste.lisp.org/display/82549 ? PLT's behavior surprised me in this instance. 13:35:09 chandler: re your typing, I think that you can have multiple imports in the same clause, and I think that `rnrs' gives you both. 13:35:37 chandler: and re your code, it'll have to wait for the food (that I'm about to eat). 13:35:54 OK. I'm about to step out for a little while too. 13:36:53 I'm not sure what you mean by "multiple imports in the same clause", but I don't think (for (rnrs base (6)) (rnrs syntax-case (6)) (meta 1)) is valid per R6RS. 13:36:54 chandler, whether syntax is used to encourage or discourage behaviour, I don't think that syntactic sugar for importing at multiple phases would be useful for any libraries but the R6RS base and SYNTAX-CASE libraries, and even then only in an extremely minute number of cases. 13:38:29 That said, I think that it would have been better to separate the importations for other phases in a different way, such as (IMPORT ...) for level 0, (FOR-SYNTAX (IMPORT ...)) for level 1, &c. 13:38:39 Well, if not the same library at multiple levels, then multiple libraries at the same level would be a useful construct. 13:38:52 Right. 13:40:30 xwl [n=user@62.237.32.162] has joined #scheme 13:41:01 eli: If by `rnrs' you meant (rnrs (6)), I prefer a finer-grained approach than that, particularly since there are parts of that I'd like to pretend don't exist (*cough* fixnums). 13:41:17 rouslan [n=Rouslan@unaffiliated/rouslan] has joined #scheme 13:41:31 AtnNn [n=welcome@modemcable087.62-56-74.mc.videotron.ca] has joined #scheme 13:41:37 -!- ejs1 [n=eugen@nat.ironport.com] has quit [Read error: 60 (Operation timed out)] 13:41:58 Is it a good practice to write pseudocode before programming? 13:41:59 I'll be back later. 13:42:34 Or would it be best to mentally imagine the algorithm and code it? 13:42:54 just do it. uml diagrams are useless. 13:42:59 incubot: Too less or too more values? 13:43:03 less than fifty. 13:43:52 -!- rouslan [n=Rouslan@unaffiliated/rouslan] has quit [Read error: 104 (Connection reset by peer)] 13:46:31 blandest [n=blandest@softhouse.is.ew.ro] has joined #scheme 13:48:18 -!- luz [n=davids@139.82.89.70] has quit [Read error: 60 (Operation timed out)] 13:53:46 -!- MichaelRaskin [n=MichaelR@213.171.48.239] has quit [Read error: 104 (Connection reset by peer)] 13:55:49 -!- leppie|work [i=52d2e3c8@gateway/web/freenode/x-93192cb6e49dd650] has quit ["Page closed"] 13:57:36 chandler: AYT? 13:58:25 MichaelRaskin [n=MichaelR@213.171.48.239] has joined #scheme 13:58:46 eli annotated #82549 "reduce `let' -- remove inner `r' binding" at http://paste.lisp.org/display/82549#1 13:59:38 eli annotated #82549 "leftover `r' is never used" at http://paste.lisp.org/display/82549#2 14:04:23 luz [n=davids@139.82.89.70] has joined #scheme 14:05:57 eli annotated #82549 "some renames and comments" at http://paste.lisp.org/display/82549#3 14:06:17 chandler: What I said there, I think. 14:09:26 -!- Sveklo [n=user@a88-115-8-123.elisa-laajakaista.fi] has quit [Remote closed the connection] 14:10:33 Riastradh: Hopefully you saw that (the reply, not the above). 14:19:31 eli: I'm confused by your very first reduction. `g' is syntax; how can that reduction be valid? 14:21:15 On the third annotation, psyntax disputes the idea that #'xx is a new name unrelated to its phase-1 pattern variable binding, and this seems consistent with its treatment of ordinary bindings. 14:22:31 chandler: Huh? The first reduction removes the inner `r' binding, what's wrong about that? 14:24:03 The use of `r' is as an argument to the syntax `g', which explicitly calls `syntax->datum' on its argument. You can't substitute in the value of `r' there. 14:25:44 ejs0 [n=eugen@155-17-135-95.pool.ukrtel.net] has joined #scheme 14:26:03 (And even if it didn't call syntax->datum, it's still not a valid reduction.) 14:26:09 -!- ASau [n=user@77.246.230.147] has quit ["off"] 14:26:38 -!- araujo [n=araujo@gentoo/developer/araujo] has quit ["Leaving"] 14:26:41 chandler: yes, I'm confused, give me a second. 14:31:03 chandler: the paste thing is yours right? 14:31:20 eli annotated #82549 "No reductions, just renaming" at http://paste.lisp.org/display/82549#4 14:31:36 chandler: It's extremely slow for some reason. 14:31:58 chandler: In any case, see the above, which is just the renaming, that fine, right? 14:31:59 athos [n=philipp@92.250.250.68] has joined #scheme 14:32:07 I don't run the machine it's hosted on, and there are other things on that machine. 14:33:18 rouslan [n=Rouslan@unaffiliated/rouslan] has joined #scheme 14:34:05 Are floating-point numbers in Scheme stored as IEEE 754? 14:34:26 It appears to be renamed consistently. 14:35:09 chandler: OK -- now the #'xx is still unrelated to the xx above it, right? 14:35:48 -!- mmc [n=mima@esprx01x.nokia.com] has quit [Remote closed the connection] 14:36:04 -!- blandest [n=blandest@softhouse.is.ew.ro] has left #scheme 14:36:27 No. It is a reference to a pattern-variable binding at the wrong phase, if we are to apply hygiene-first semantics consistently. 14:36:43 Huh? 14:37:16 Try it in a psyntax-based implementation. 14:37:48 I don't have any; and that's irrelevant -- I'm not suspecting you of lying when you say it has an error. 14:37:56 s/has/throws/ 14:38:25 no error on my psyntax for the last paste 14:38:46 Oh. Maybe my copy of larceny is too old. 14:38:56 leppie: The last paste should be identical to the first one, modulo different names. 14:39:01 -!- rouslan [n=Rouslan@unaffiliated/rouslan] has quit [Read error: 104 (Connection reset by peer)] 14:39:41 the 1st one prints 3 14:39:55 But I'm not sure I understand why #'xx is unrelated to the binding above it, given that xx *is* bound as a pattern variable. 14:40:22 and the rest all return 3 14:40:36 is that right? 14:40:48 incubot: (list '--x--) 14:40:49 (--x--) 14:41:00 Bah. Ikarus doesn't like that. 14:41:21 chandler: (Ikarus also gives my 3.) 14:41:24 It is bound in the wrong phase, but that is checked *after* we resolve bindings, in the hygiene-first approach. 14:41:33 chandler: (But that says very little, of course.) 14:41:55 OK. Obviously my copy of larceny has an older psyntax. 14:41:55 chandler: I have no idea what's the "hygiene-first approach". 14:42:31 chandler: But it's like (let ([x 3]) #'x) -- which generates an identifier at a lower level than the one bound to 3. 14:43:13 larceny uses psyntax? 14:43:13 Suppose that `xx' were bound normally, and referred to normally on the right-hand side of a `let-syntax' binding. 14:43:21 chandler: In any case, since (or if) it's unrelated, you can replace it with #'whatever 14:43:38 and that's a random identifier at the right level. 14:43:58 chandler: Where? 14:44:21 Hold on a few minutes; I have to switch computers. 14:47:16 fabse [n=myfabse@wikipedia/Track-n-Field] has joined #scheme 14:49:13 grettke [n=grettke@CPE-69-23-38-57.wi.res.rr.com] has joined #scheme 14:52:25 hi grant 14:53:11 -!- attila_lendvai [n=ati@catv-89-132-189-132.catv.broadband.hu] has quit [Read error: 113 (No route to host)] 14:54:38 eli: Would you agree that in (let ((xx 5)) (let-syntax ((f (lambda (stx) xx))) (f))), the use of `xx' on the right-hand side of a `let-syntax' refers to the enclosing phase-0 binding, but is a syntax violation because it is bound at a different phase than its use? 14:55:57 chandler: yes 14:56:41 Why should the syntactic binding of a pattern variable operate differently? 14:58:12 chandler: You mean make this: (let ([xx 123]) #'xx) an error? 14:58:33 bsund [n=bsund@h29n2fls303o1114.telia.com] has joined #scheme 14:58:34 noo 14:58:47 that will break all my macros! 14:59:51 hi leppie 15:00:03 leppie: Huh? I'm comfortable with that not being an error, but to actually write macros like that is asking for bad karma. 15:01:25 eli: if that's an error, it will be bad 15:02:24 leppie: I don't think I agree with the amount of severity you're applying. 15:03:14 I wonder how many have died by stroke when trying to debug a recursive procedure? 15:03:55 it just seems wrong, why should that be an error? 15:04:02 eli: I believe that follows if phase is not considered when resolving bindings, yes. 15:04:15 cracki_ [n=cracki@sglty.kawo2.RWTH-Aachen.DE] has joined #scheme 15:04:22 we not even dealing with multiple phases 15:05:50 gfb [i=4c421873@gateway/web/freenode/x-882dba0d561c76e4] has joined #scheme 15:05:50 am i the only one that actually convert variables to pattern variables? 15:06:25 Via `with-syntax'? 15:06:29 yes 15:06:42 (with-syntax ((x x)) ... ) 15:07:35 leppie: BTW, that's equivalent to (syntax-case x () [x ...]) 15:07:49 chandler: That's the design decision that Matthew was referring to. 15:07:58 eno_ [n=eno@adsl-70-137-139-149.dsl.snfc21.sbcglobal.net] has joined #scheme 15:08:05 yeah, but I wont have a clear idea whta yours does eli :) 15:08:06 eli: ... can you supply that reference again? 15:08:25 rudybot: eval (syntax->datum (syntax-case #'(1) () [(xx) (let ([xx 123]) #'xx)])) 15:08:26 eli: ; Value: xx 15:08:33 (syntax->datum (syntax-case #'(1) () [(xx) (let ([xxx 123]) #'xx)])) 15:08:38 -!- eno [n=eno@nslu2-linux/eno] has quit [Nick collision from services.] 15:08:40 purely from a readabilty point of view 15:08:46 rudybot: eval (syntax->datum (syntax-case #'(1) () [(xx) (let ([xxx 123]) #'xx)])) ; can't you figure it out? 15:08:47 eli: ; Value: 1 15:08:50 -!- eno_ is now known as eno 15:08:51 leppie: If you attempted to use `x' as an ordinary variable in the body of the `with-syntax' form, you'd find that its binding had been shadowed by its syntactic binding as a pattern variable. Why should that not work in reverse? 15:08:52 im not arguing it's equivalence 15:10:08 leppie: (I didn't mean to say that I don't use `with-syntax' -- I do. Just pointing out that it's not doing any magic.) 15:10:44 -!- antoszka [n=antoszka@unaffiliated/antoszka] has quit ["+++ killed by SIGSEGV +++"] 15:10:46 but why would I use it as an ordinary variable if I just converted it to pattern variable 15:11:17 Why would you use it as a template identifier if it had been bound as an ordinary variable? 15:11:33 (Either one works.) 15:11:40 (s/one/choice/) 15:12:21 exexex [n=chatzill@85.97.160.14] has joined #scheme 15:13:58 chandler: if I need to pass the value to another proc 15:15:15 I'm not sure I agree with that, eli. I think the semantics that PLT and Ikarus apply now are that phase *is* considered when resolving the binding of an identifier, and bindings shadow all possible uses at or above the current phase. I'm not sure I can make sense of that approach; it seems arbitrary to me. 15:17:05 chandler: IIRC, Matthew reply was that it is, more or less, arbitrary. 15:18:03 chandler: (grep through the logs for what I said that he said.) 15:18:28 -!- gfb [i=4c421873@gateway/web/freenode/x-882dba0d561c76e4] has quit [Ping timeout: 180 seconds] 15:19:48 There are two things I've found that he said that seem relevant. 15:19:48 15:40 < eli> (slightly edited) "Local bindings shadow all levels, at least in plt. R6RS doesn't seem to say anything explicit on this point." 15:20:09 That, I believe, is not true. Local bindings only shadow other bindings at the same or higher level. 15:20:35 23:10 < eli> Riastradh: And as for your "I still don't see why, say, local bindings at phase 0 should shadow module bindings at phase 1." 15:20:38 23:10 < eli> Riastradh: He said: "They don't have to, and I think either design is probably ok. I've never found an example that particularly needed one or the other." 15:21:25 blandest [n=blandest@softhouse.is.ew.ro] has joined #scheme 15:21:26 -!- cracki [n=cracki@sglty.kawo2.RWTH-Aachen.DE] has quit [Read error: 110 (Connection timed out)] 15:21:30 chandler: Yes. 15:21:39 And here's a much more difficult puzzle: 15:22:00 It depends on what "either design" means here. I believe that a consistent hygiene-first approach is OK, and that a phase-independent approach is OK, but I believe the design used by PLT and Ikarus is especially arbitrary. 15:22:07 "renderer" vs "referrer" -- what's the excuse for this stupidity? 15:22:49 (chandler: I still have no clue what "hygiene-first approach" means) 15:23:31 (chandler: And I have no clue what Ikarus will do, or why it does so.) 15:23:41 "hygiene-first approach" means applying marks and antimarks to the input without considering the phase at which bindings and uses appear. 15:25:10 chandler: Believe it or not, but I never bothered to study the algorithms. (And I take the fact that I can do macros well without doing so a sign that `syntax-case' is not nearly as bad as it's made to look in *some* places.) 15:25:45 -!- pitui [n=pitui@135.207.174.197] has quit [Remote closed the connection] 15:27:17 IceD^^ [n=theiced@93.84.112.80] has joined #scheme 15:27:29 are there any scheme/qt4 bindings around? 15:30:20 IceD^^: http://chicken.wiki.br/qt 15:30:44 moghar [n=user@unaffiliated/moghar] has joined #scheme 15:30:44 thnx 15:31:56 pants1 [n=hkarau@69-196-180-112.dsl.teksavvy.com] has joined #scheme 15:32:07 MrFahrenheit [n=RageOfTh@SE400.PPPoE-4952.sa.bih.net.ba] has joined #scheme 15:32:52 leppie: If you are concerned about phase-0 bindings shadowing pattern variable bindings, you could always create an explicit namespace for those bindings. 15:34:49 antoszka [n=antoszka@unaffiliated/antoszka] has joined #scheme 15:35:33 -!- blandest [n=blandest@softhouse.is.ew.ro] has quit ["Leaving."] 15:35:38 im just confused, i havent really come across these in my own code 15:36:32 im confused about the behavior (not my code) 15:41:09 gfb [i=4c421873@gateway/web/freenode/x-37830f981361aa3d] has joined #scheme 15:42:58 -!- gfb [i=4c421873@gateway/web/freenode/x-37830f981361aa3d] has quit [Client Quit] 15:47:38 -!- pantsd [n=hkarau@69-165-148-185.dsl.teksavvy.com] has quit [Read error: 110 (Connection timed out)] 16:04:59 samth [n=samth@punge.ccs.neu.edu] has joined #scheme 16:06:42 -!- ejs0 [n=eugen@155-17-135-95.pool.ukrtel.net] has quit [Read error: 104 (Connection reset by peer)] 16:09:17 Foofie [n=innocent@86.80-203-225.nextgentel.com] has joined #scheme 16:11:52 foof [n=user@dn157-046.naist.jp] has joined #scheme 16:13:19 ASau [n=user@193.138.70.52] has joined #scheme 16:14:49 -!- pierpa [n=user@host202-182-static.80-94-b.business.telecomitalia.it] has quit [Read error: 110 (Connection timed out)] 16:17:41 -!- rdd [n=user@c83-250-157-93.bredband.comhem.se] has quit [Remote closed the connection] 16:20:46 dzhus [n=sphinx@95-24-190-26.broadband.corbina.ru] has joined #scheme 16:22:01 -!- dysinger [n=tim@71-20-231-3.war.clearwire-wmx.net] has quit [] 16:23:16 reprore [n=reprore@ntkngw261071.kngw.nt.ftth.ppp.infoweb.ne.jp] has joined #scheme 16:32:17 blueminder [n=enrique@207.2.122.148] has joined #scheme 16:35:00 -!- blueminder [n=enrique@207.2.122.148] has left #scheme 16:43:16 chickamade [n=chickama@222.254.11.197] has joined #scheme 16:45:24 -!- chickamade [n=chickama@222.254.11.197] has left #scheme 16:53:26 -!- MichaelRaskin [n=MichaelR@213.171.48.239] has quit [Read error: 110 (Connection timed out)] 16:54:28 benny99 [n=benny@p5486E14C.dip.t-dialin.net] has joined #scheme 16:55:38 -!- grettke [n=grettke@CPE-69-23-38-57.wi.res.rr.com] has left #scheme 16:56:28 -!- AtnNn [n=welcome@modemcable087.62-56-74.mc.videotron.ca] has quit ["foo"] 17:01:41 chandler, Riastradh, leppie: So, some very quick summary (and samth can continue if there are more questions, since I never intended to go to this level...) 17:02:20 And I'm just assembling some things and trying to get it over with quickly, so you should apply two sacks of salt. 17:03:10 The main difference between PLT/psyntax and Larceny/Andre's thing is whether `syntax' does a level shift or not. In PLT it doesn't, and in Larceny it does. 17:05:46 There are certain issues with the Larceny approach, IIUC, one is what happens when some syntax is used at multiple levels somehow -- and the fact that `syntax' does the shift when its evaluated. What Andre says for this (again, IIUC, and with the above salt) is that you should always just use functions to make `syntax' do the shift at whatever context is using it, instead of getting a specific level at the time it w 17:05:46 as evaluated. 17:06:24 In contrast, in PLT #'foo doesn't do any shift -- it's imports/exports that do so. 17:07:34 -!- benny99 [n=benny@p5486E14C.dip.t-dialin.net] has quit [verne.freenode.net irc.freenode.net] 17:07:34 -!- pbusser2 [n=peter@ip138-238-174-82.adsl2.static.versatel.nl] has quit [verne.freenode.net irc.freenode.net] 17:07:34 -!- joast [n=rick@76.178.184.231] has quit [verne.freenode.net irc.freenode.net] 17:07:34 -!- underspecified [n=underspe@leopard175.naist.jp] has quit [verne.freenode.net irc.freenode.net] 17:07:34 -!- mbishop [n=martin@unaffiliated/mbishop] has quit [verne.freenode.net irc.freenode.net] 17:07:34 -!- Elly [n=elly@unaffiliated/elly] has quit [verne.freenode.net irc.freenode.net] 17:07:34 -!- qebab [n=finnrobi@unicorn.nnordmark.com] has quit [verne.freenode.net irc.freenode.net] 17:07:34 -!- nicktastic [n=nick@unaffiliated/nicktastic] has quit [verne.freenode.net irc.freenode.net] 17:07:34 -!- chandler [n=n@opendarwin/developer/chandler] has quit [verne.freenode.net irc.freenode.net] 17:07:37 qebab_ [n=finnrobi@unicorn.nnordmark.com] has joined #scheme 17:07:39 chandler [n=n@new.unmutual.info] has joined #scheme 17:07:43 pbusser2 [n=peter@82.174.238.138] has joined #scheme 17:07:43 Elly [n=elly@198-144-37-142.static.vdsl.nidhog.net] has joined #scheme 17:07:44 nicktastic [n=nick@unaffiliated/nicktastic] has joined #scheme 17:07:49 If it were to do such shifts in `syntax', then a "lot of stuff" breaks, and a lot of stuff becomes just "broken by design". 17:08:03 mbishop [n=martin@unaffiliated/mbishop] has joined #scheme 17:08:08 -!- chandler is now known as Guest46169 17:08:11 joast [n=rick@76.178.184.231] has joined #scheme 17:09:26 Specific to PLT would be a number of changes that are very extreme, for example, (identifier-binding #'+) gives you information about the binding of `+' in your level, not in level -1 -- so if `syntax' was doing shifts then this either couldn't be a function, or it would need to play some game of taking in an identifier, and shifting it back up a level. 17:11:14 As for the lexical identifiers shadowing all levels, that change wouldn't be too big, and, Matthew said, you can see that in his macro paper if you remove the p=p' condition at the bottom of figure 3, 17:11:21 s/,/./ 17:12:30 Any way that's all I'm saying about this (since saying more will suck much more time). Feel free to bug samth or use the plt mailing list. 17:14:00 hmm 17:14:15 foof: is making chibi-scheme run on bare metal a terrible idea? 17:14:51 Elly: What do you mean with bare metal? 17:15:46 mrsolo [n=mrsolo@nat/yahoo/x-5554e4dd6e2feb67] has joined #scheme 17:15:55 with no supporting operating system 17:15:59 -!- Guest46169 is now known as chandler 17:16:05 Elly: I think that would be a great idea. 17:16:15 I think it could be rather fun as well 17:16:51 Elly: What makes you want to do something like that? 17:17:10 I think it would be fun :) 17:18:04 Elly: Agreed. I have been looking at that too. It would require some changes in Chibi though. 17:18:25 well, all the file-loading stuff would have to go 17:18:39 I'm trying to use mzscheme to evaluate HtDP student language probrams. My desire to use mzscheme is because I'd rather use Emacs than DrScheme. What I'm doing right now is evaluating `(require lang/htdp-intermediate-lambda)` to get the ISL procedures, and then I use the emacs command `scheme-load-file` to load the file I want into the mzscheme REPL, but the (check-expect ...) tests are not run/the pass/fail information is not printed. I also tried 17:18:43 and init.scm would have to be built in somehow 17:19:01 danking: cut off at "I also tried" 17:19:02 Elly: Yep. The reader assumes file I/O AFAIK. It uses getc(). 17:19:20 that I can and would implement 17:19:34 the file stuff not so much though 17:19:37 Elly: It could read from a string instead. 17:19:40 Elly: True. 17:19:45 I also tried the scheme function `load` as in (load "my-file.ss") with the same results. What do I have to do to get a list of passing/failing tests in mzscheme? 17:20:01 keyboard and console interaction, at least on x86en, is not terribly painful 17:20:08 Elly: But it would require some additional code for screen and keyboard I/O for instance. 17:20:11 and chibi really doesn't depend on anything else 17:20:17 Elly: Yep. 17:20:17 that's okay; I've written those parts before 17:20:23 it would be neat to have chibi on bare metal :) 17:20:28 Elly: Oh, cool! 17:22:03 -!- jonrafkind [n=jon@98.202.86.149] has quit [Read error: 110 (Connection timed out)] 17:22:53 eli: Thanks. I will read more about the Larceny implementation, to get a good handle on it. 17:24:28 -!- reprore [n=reprore@ntkngw261071.kngw.nt.ftth.ppp.infoweb.ne.jp] has quit [Read error: 104 (Connection reset by peer)] 17:24:29 Elly: It needs a fake malloc() too. 17:24:51 reprore [n=reprore@ntkngw261071.kngw.nt.ftth.ppp.infoweb.ne.jp] has joined #scheme 17:24:52 pbusser2: I've also done that before, fortunately :) 17:25:03 Elly: What haven't you done before? :-) 17:25:34 Elly: Where did you learn that stuff, if I may ask? 17:25:57 pbusser2: I'm a systems hacker at heart :P I mostly write C, and mostly low-level stuff 17:26:37 Elly: Ok. I like low level stuff too, although I'm not very fond of C anymore. :-) 17:26:52 C still has a special place in my heart 17:27:14 Elly: For me too, the place reserved for an ex-lover. :-P 17:34:33 jonrafkind [n=jon@crystalis.cs.utah.edu] has joined #scheme 17:41:20 dudleyf [n=dudleyf@65.243.31.107] has joined #scheme 17:41:24 melgray [n=melgray@70.99.250.82] has joined #scheme 17:44:06 araujo [n=araujo@gentoo/developer/araujo] has joined #scheme 17:44:07 -!- reprore [n=reprore@ntkngw261071.kngw.nt.ftth.ppp.infoweb.ne.jp] has quit [Read error: 104 (Connection reset by peer)] 17:44:26 reprore_ [n=reprore@ntkngw261071.kngw.nt.ftth.ppp.infoweb.ne.jp] has joined #scheme 17:52:04 -!- reprore_ [n=reprore@ntkngw261071.kngw.nt.ftth.ppp.infoweb.ne.jp] has quit [Read error: 104 (Connection reset by peer)] 17:52:26 reprore [n=reprore@ntkngw261071.kngw.nt.ftth.ppp.infoweb.ne.jp] has joined #scheme 17:53:46 -!- rstandy [n=rastandy@net-93-144-204-143.t2.dsl.vodafone.it] has quit [Read error: 110 (Connection timed out)] 17:55:58 -!- copumpkin [n=pumpkin@c-24-63-67-154.hsd1.nh.comcast.net] has quit [] 17:57:57 melgray_ [n=melgray@70.99.250.82] has joined #scheme 18:00:54 -!- MrFahrenheit [n=RageOfTh@SE400.PPPoE-4952.sa.bih.net.ba] has quit [Read error: 110 (Connection timed out)] 18:02:34 -!- reprore [n=reprore@ntkngw261071.kngw.nt.ftth.ppp.infoweb.ne.jp] has quit [Read error: 104 (Connection reset by peer)] 18:02:58 reprore_ [n=reprore@ntkngw261071.kngw.nt.ftth.ppp.infoweb.ne.jp] has joined #scheme 18:03:28 -!- fabse [n=myfabse@wikipedia/Track-n-Field] has quit ["Jackie Treehorn treats objects like women"] 18:03:40 haha, the icfp programming contest webserver died 18:07:41 morphir [n=morphir@217.168.81.9] has joined #scheme 18:08:34 i wonder if it was slashdotted, or just the participants who overloaded it 18:09:24 -!- eno [n=eno@nslu2-linux/eno] has quit [Read error: 104 (Connection reset by peer)] 18:09:39 -!- melgray [n=melgray@70.99.250.82] has quit [Read error: 113 (No route to host)] 18:10:56 reprore__ [n=reprore@ntkngw261071.kngw.nt.ftth.ppp.infoweb.ne.jp] has joined #scheme 18:11:28 -!- reprore_ [n=reprore@ntkngw261071.kngw.nt.ftth.ppp.infoweb.ne.jp] has quit [Read error: 104 (Connection reset by peer)] 18:14:04 eno [n=eno@nslu2-linux/eno] has joined #scheme 18:14:43 -!- Elly is now known as Elly|blum 18:14:45 -!- morphir [n=morphir@217.168.81.9] has quit ["leaving"] 18:16:56 -!- Elly|blum is now known as Elly 18:23:42 when I use (print-gc-statistics) what does it mean words and blocks and why is so much constant space memory in use? 18:25:04 In MIT Scheme, I presume, Edico? 18:25:15 yes 18:26:35 moghar` [n=user@157.185.jawnet.pl] has joined #scheme 18:26:41 A word is a unit of memory sufficiently large to describe any object, such as a small integer, an immediate constant, a pointer into memory where the object's data are stored, &c. This is usually the size of a machine register, and the natural alignment of the machine's memory; on `32-bit' systems, a word holds thirty-two bits. 18:26:52 dum de dum 18:26:53 hey Riastradh 18:26:53 -!- moghar [n=user@unaffiliated/moghar] has quit [Read error: 104 (Connection reset by peer)] 18:26:58 A block is MIT Scheme's term for one thousand twenty-four words. 18:27:30 Hi. 18:28:11 The constant space holds all of the code for the run-time system, compiler, editor, &c., and nearly anything you load using the LOAD-OPTION procedure. 18:30:30 thanks Riastradh 18:31:49 -!- moghar` is now known as moghar 18:36:55 benny99 [n=benny@p5486D647.dip.t-dialin.net] has joined #scheme 18:37:44 Riastradh: I'm trying to understand the condition situation in s48. I reindented this http://mumble.net/~campbell/tmp/condition.txt to be readable http://paste.lisp.org/display/82570#1 18:38:04 now, is the simple-condition type just a wrapper around conditions from the old system? 18:38:08 and is that why there's repeated info? 18:39:47 rouslan [n=Rouslan@unaffiliated/rouslan] has joined #scheme 18:41:00 -!- dzhus [n=sphinx@95-24-190-26.broadband.corbina.ru] has quit ["Yow! Legally-imposed CULTURE-reduction is CABBAGE-BRAINED!"] 18:41:04 *rouslan* just finished reading section 1 of SICP 18:41:59 Very interesting at times but tiring. 18:43:47 -!- joast [n=rick@76.178.184.231] has quit [Read error: 110 (Connection timed out)] 18:44:29 yes 18:45:16 joast [n=rick@76.178.184.231] has joined #scheme 18:45:18 one does not simply "read" sicp 18:45:59 rmorris, there are two nested conditions, each of which was originally a `simple condition' and later translated into an overcomplicated condition, hence the manifold duplication. 18:46:15 zbigniew: Reading, completing all of the exercises, doing further research on topics introduced. 18:46:29 i thought the second irritant was actual information 18:46:47 rmorris, here's what the original was, basically: (swank-protocol-error "malformed input expression" #{Input-port #{Input-channel "socket connection"}} (read-error "end of file inside list -- unbalanced parentheses" #{String-input-port})) 18:47:43 soupdragon: Would it make any sense to learn POSIX/the Linux kernel (i.e. C programming) at this stage? 18:47:58 I don't know 18:48:01 it seems irrelevant to SICP 18:48:10 obviously 18:48:14 I can't imagine it being especially good or bad in tandum 18:48:18 rouslan: one does not simply read into mordor 18:48:40 rmorris, however, the inner condition was translated into an overcomplicated (i.e. SRFI 35) condition before the outer one was constructed, and then the outer one was also turned into an overcomplicated condition. 18:48:42 Riastradh: ooh, I see. pretty fucked up 18:48:55 ya 18:49:45 rouslan: nice 18:49:51 klutometis: precisely 18:49:58 klutometis: So it's best to develop an understanding of language theory, algorithms, data structures, and AI using SICP, TAOCP, and PAIP? 18:50:31 well I guess you want AIMA too 18:50:36 SICP and PAIP and AIMA 18:50:41 TAOCP is outdated and irrelevant 18:52:54 What about practical concepts (e.g. kernels, development tools, OSs, etc.)? Or should I just ignore them? 18:53:35 do you plan on doing anything practical? 18:54:02 Open-source development perhaps. 18:54:38 But I mainly want to focus on theoretical CS. 18:55:05 *rouslan* needs to form a study plan 18:55:20 If you know the theory well practical things like reading documentation are no trouble 18:59:09 eno_ [n=eno@adsl-70-137-174-27.dsl.snfc21.sbcglobal.net] has joined #scheme 19:00:13 -!- rouslan [n=Rouslan@unaffiliated/rouslan] has quit [Read error: 104 (Connection reset by peer)] 19:01:25 mmc [n=mima@cs162149.pp.htv.fi] has joined #scheme 19:03:31 -!- Kusanagi [n=Lernaean@unaffiliated/kusanagi] has quit [] 19:06:07 -!- antoszka [n=antoszka@unaffiliated/antoszka] has quit ["+++ killed by SIGSEGV +++"] 19:07:09 -!- eno [n=eno@nslu2-linux/eno] has quit [Nick collision from services.] 19:07:14 -!- eno_ is now known as eno 19:11:07 -!- reprore__ [n=reprore@ntkngw261071.kngw.nt.ftth.ppp.infoweb.ne.jp] has quit [Read error: 54 (Connection reset by peer)] 19:11:34 reprore_ [n=reprore@ntkngw261071.kngw.nt.ftth.ppp.infoweb.ne.jp] has joined #scheme 19:11:47 Kusanagi [n=Lernaean@unaffiliated/kusanagi] has joined #scheme 19:12:02 Elly: what do you think, if anything, of glendix? 19:13:18 puchacz [n=puchacz@87-194-5-99.bethere.co.uk] has joined #scheme 19:13:41 zbigniew: is there any mechanism for recursively invoking chicken-setup, sort of like $(MAKE)? 19:15:21 guess i can just hack it with (RUN ...) 19:16:48 kilimanjaro [n=kilimanj@70.116.95.163] has joined #scheme 19:17:15 What is TAOCP and AIMA? 19:18:27 Knuth's _Art of Computer Programming_, and Russell & Norvig's _AI: A Modern Approach_. 19:18:34 -!- benny99 [n=benny@p5486D647.dip.t-dialin.net] has quit [No route to host] 19:19:02 damn C++ is awful. It doesn't even support nested functions. 19:19:53 Riastradh: Ah ok, thanks! 19:20:28 I have volume 1 of Knuth's Art of Computer Programming. It cost me 50 cents. :-) 19:21:29 klutometis: I don't understand the purpose of Glendix. Why not use the Plan9 kernel directly if you want Plan9? 19:21:30 -!- moghar [n=user@unaffiliated/moghar] has quit [Read error: 104 (Connection reset by peer)] 19:22:16 pbusser2: good question; i suppose it's for the luke-warm types that want emacs on P9? 19:23:36 klutometis: As opposed to Plan9 in Emacs, or what? :-P 19:23:47 dzhus [n=sphinx@95-24-190-26.broadband.corbina.ru] has joined #scheme 19:23:49 moghar [n=user@157.185.jawnet.pl] has joined #scheme 19:24:46 pbusser2: heh 19:25:09 klutometis: You mean that Emacs doesn't work on Plan9? 19:28:02 rdd [n=user@c83-250-157-93.bredband.comhem.se] has joined #scheme 19:28:48 pbusser2: not that i was aware of; hence the griping about acme, etc. 19:30:08 -!- moghar [n=user@unaffiliated/moghar] has quit [Read error: 113 (No route to host)] 19:31:42 antoszka [n=antoszka@2001:6a0:14a:0:0:0:0:dada] has joined #scheme 19:32:36 anybody having a S-Exp -> CSS formatter/converter written in Scheme? 19:33:05 I think there's one on gna 19:34:27 pbusser2: perhaps plan9 doesn't support your hardware? 19:34:42 oops, nongnu it is http://nongnu.org/projects/scss 19:35:10 anyway, i think 9vx looks more interesting than glendix 19:35:31 sjamaan: thanks 19:35:58 Doesn't look too great though 19:37:04 Fare [n=Fare@ita4fw1.itasoftware.com] has joined #scheme 19:40:05 Adamant [n=Adamant@c-76-29-188-60.hsd1.ga.comcast.net] has joined #scheme 19:43:12 mejja [n=user@c-49b6e555.023-82-73746f38.cust.bredbandsbolaget.se] has joined #scheme 19:48:12 -!- reprore_ [n=reprore@ntkngw261071.kngw.nt.ftth.ppp.infoweb.ne.jp] has quit [Read error: 113 (No route to host)] 19:50:04 -!- Foofie is now known as fufie 19:54:37 annodomini [n=lambda@130.189.179.215] has joined #scheme 19:55:38 -!- gnomon [n=gnomon@CPE001d60dffa5c-CM000f9f776f96.cpe.net.cable.rogers.com] has quit [Read error: 60 (Operation timed out)] 19:55:51 gnomon [n=gnomon@CPE001d60dffa5c-CM000f9f776f96.cpe.net.cable.rogers.com] has joined #scheme 19:56:11 klutometis: what's glendix? 19:58:40 arcfide [n=arcfide@ppp-70-246-141-17.dsl.stlsmo.swbell.net] has joined #scheme 19:59:03 So, I'm R6RS now. Time to port libraries. Where are they? SRFIs? 19:59:32 lol 20:00:02 -!- joast [n=rick@76.178.184.231] has quit ["Leaving."] 20:00:37 joast [n=rick@76.178.184.231] has joined #scheme 20:01:07 arcfide: http://bazaar.launchpad.net/%7Eikarus-libraries-team/ikarus-libraries/srfi/ 20:01:11 -rudybot:#scheme- http://tinyurl.com/mr69vn 20:01:11 Judofyr [n=Judofyr@c8F99BF51.dhcp.bluecom.no] has joined #scheme 20:02:27 arcfide: Hm. Why did you go R6RS? 20:02:55 arcfide, what were you before? 20:02:56 arcfide: descot going R6RS? 20:04:07 That reminds me that I downloaded the 'bzr' source earlier and never got around to building it, which I'll need to do to build the latest Ikarus. 20:04:09 rotty: Descot will remain language neutral, but the reference implementation will be made available in a format which permits easy expansion into either R6RS or R5RS + Libraries code. 20:04:29 -!- kilimanjaro is now known as eskibro 20:04:40 arcfide: so seperate preprocessor step needed? 20:04:43 rotty: I make, however, no claims as to portability regarding the reference implementation and API outside of R6RS, since the code will be based on that. 20:05:13 or do you use an `include' macro? 20:05:17 rotty: The code is written using noweb, which means that you can tangle out just the code without the module declarations, and wrap your own stuff around it. 20:05:30 ah, ok. 20:05:30 Wait, I think it's weave out. 20:05:46 well, this is r6rs we're talking about 20:05:46 chandler: You do know that I use Chez, right? :-) 20:05:46 *rotty* hasn't played with literate programming yet 20:06:01 rotty: I don't know if it's all that great, I'm using it an experiment at the moment. 20:06:40 Fare: I have been using mostly R5RS compliant Schemes. 20:07:56 chandler: The next version of Chez will be fully R6RS, which means that I want my libraries to be useable on that newer version of Chez. 20:08:02 arcfide: Oh. So, I gather than that a R6RS release of Chez is close. 20:08:14 -!- eskibro is now known as kilimanjaro 20:08:16 chandler: Close? I don't know if you could say that, but it's coming. 20:08:58 To quote the website, it will "soon support [the] R6RS standard." 20:09:08 I think it's said that for a while now, hasn't it? 20:09:18 leppie: Is this the group that has made all the ports of the SRFIs? 20:09:23 chandler: :-) 20:10:18 I wonder what's holding up an Ikarus 0.0.4 release. 20:10:19 I am hoping that the new Chez Scheme will support some level of type "inference" where it doesn't recheck the type of a value which has already been determined. That would be nice. 20:10:32 chandler: You use mostly Common Lisp, don't you? 20:10:39 chandler: I think Aziz is a busy man. 20:10:52 arcfide: yes 20:11:16 *arcfide* doesn't recall what exactly launchpad is. 20:11:19 As of right now, I'm mostly using C. 20:11:43 arcfide: im planning a similar type inference system for version 2 of ironscheme 20:11:54 chandler: Ah, I hope it's ANSI C and not, C++, or C#, or Cwhateverthelatestthingis. 20:12:33 leppie: Well, it's a feature I asked for a while ago. Another one I would like is for range checks to be determined at some point if possible, and automatically use fixnum arithmetic where it is safe. 20:12:35 arcfide: bzr checkout that url 20:12:53 which Scheme(s) have the most comprehensive syscall coverage? 20:12:55 leppie: bzr...bah, now I have to go get something beyond CVS. :-P 20:13:04 Fare: What does that mean? 20:13:18 I've been looking for an excuse to try out bzr 20:13:19 arcfide: F# now includes that, looks quite nice, not sure if I ever would use it 20:13:21 and/or what tool could be used to systematically produce FFI for each and every syscall in the Linux kernel 20:13:28 It seems quite friendly 20:13:35 (and/or important libc function) 20:13:42 ISO C99. Well, I'm actually trying to resurrect working on syntactic abstraction for C, but this time with feeling^H^H^H^H^H^H^Hhygiene. 20:14:05 chandler, resurrect? did it ever exist? 20:14:14 I had an earlier hack called 'scexp'. 20:14:21 http://www.unmutual.info/software/scexp/ 20:14:35 It seems painfully ugly when I look at it now. 20:15:46 Fare: Linux syscalls are fairly low-level. I imagine it's actually libc functions you're looking for. Have you considered using Chicken? 20:16:08 I just nearly converted someone away from static typing with this example: http://l.leptoquark.net/~elly/obj.ss :) 20:16:11 Fare: there are a number of projects which attempt to make producing FFIs easier. 20:16:24 Elly: Keyword: Nearly. 20:16:32 yeah, nearly :( 20:16:39 chandler, seen xtc? http://www.cs.nyu.edu/~rgrimm/xtc/ 20:16:54 chandler, I think I really want to use PLT. 20:17:11 No, I haven't seen that. Thanks. 20:17:26 why that command doesn't work: "mit-scheme --eval (+ 3 5)"? 20:17:45 Eck, AOP. 20:18:07 Edico: why you no speak good english 20:18:08 Edico: The argument to --eval must be a single command line argument. 20:18:13 Fare: Be nice. 20:18:16 Edico: shell quoting problem? 20:18:25 Edico: Try: mit-scheme --eval '(+ 3 5)' 20:18:27 '(+ 3 5)' 20:18:39 dammit, you too fast 20:19:18 thank you chandler 20:19:42 thanks Fare 20:19:46 Edico, read your shell manual about expansion, etc. 20:20:33 Fare you meant that I used that insteed of this? 20:20:34 to have something like (foo "bar" '(1 2 3)) you'll need '(foo "bar" '"'"'(1 2 3))' 20:20:44 or "(foo \"bar\" '(1 2 3))" 20:20:46 copumpkin [n=pumpkin@dhcp-212-202.cs.dartmouth.edu] has joined #scheme 20:21:06 or \(foo \"bar\"\ \'\(1\ 2\ 3\)\) 20:21:21 *sjamaan* pukes 20:21:44 *gnomon* moves away from sjamaan on the bench, there 20:23:46 oh, is that how you get literal single-quotes from within single-quotes in bash; it irritates me to no end that '\'' doesn't work 20:24:07 In standard sh, not just bash. 20:24:55 xargs -0 mit-scheme --eval << "END" 20:24:56 (foo "bar" '(1 2 3)) 20:24:57 END 20:24:59 borism [n=boris@195-50-197-144-dsl.krw.estpak.ee] has joined #scheme 20:25:06 (What irritates me is that anyone uses nonsense like bash to write programs. If you want portable, use standard shell; if you want reasonable, don't use any stupid Unixoid shell!) 20:25:38 Riastradh, having written some non-trivial shell scripts, I can tell you portable shell scripting is HELL. 20:25:38 Amen to that, Riastradh. 20:25:49 ...and amen to that as well, Fare. 20:25:51 Having written non-trivial shell script 20:25:54 Though not quite as much as "portable Scheme programming". 20:26:13 -!- rmorris [n=user@209.120.179.205] has quit [Remote closed the connection] 20:26:40 ...s myself, I certainly know that too, but that doesn't make using bash any more reasonable. 20:27:01 elderK [n=elderK@222-152-92-36.jetstream.xtra.co.nz] has joined #scheme 20:27:14 :) Hey guys. 20:27:16 leppie: You around man? 20:27:20 :) Was wondering if you could help me understand a fault in my latest creation :) 20:27:23 seems to expand properly. 20:27:31 just, some weirdness 20:27:41 Riastradh, using computers isn't reasonable. 20:28:02 elderK, can you paste it on a paste bot? 20:28:27 Oh brave new world of DVCSes, that has such wonders in it! bzr is talking to the launchpad server, but I don't think it's actually started checking out any files yet. 20:28:40 -!- dlctestnt [n=dlctestn@206.251.250.209] has quit [Remote closed the connection] 20:28:40 -!- ioizzgd [n=ioizzgd@206.251.250.219] has quit [Remote closed the connection] 20:29:28 Sure can, Fare. 20:29:29 :) Moment. 20:29:53 Fare: is "portable" shell generally rife with gems like: ``if test "X$1" = X--no-reexec; then...''? 20:30:08 chandler: it takes a while 20:30:27 that ubiquitous x-in-equality-tests hack is bizarre 20:30:28 bzr is rather slow on slow connections 20:30:34 -!- borism_ [n=boris@195-50-200-18-dsl.krw.estpak.ee] has quit [Read error: 145 (Connection timed out)] 20:30:36 dvcsen are awesome :) 20:30:54 My connection isn't slow; at least I don't *think* it's slow. 20:31:03 ioizzgd [n=ioizzgd@206.251.250.219] has joined #scheme 20:31:34 klutometis, Yes! 20:31:47 http://paste.lisp.org/display/82331 20:31:48 :) 20:31:53 though you can now use [ instead of test 20:32:03 systems w/o [ have ceased to exist. 20:32:25 -!- rdd [n=user@c83-250-157-93.bredband.comhem.se] has quit [Remote closed the connection] 20:32:26 *eli* hides his 2k-lines bash script under the couch 20:32:28 and you can use shell functions, too, unless you still care about Ultrix. 20:34:07 klutometis, how is it bizarre? It works around the case where comparing against an empty value behaves weirdly in some very old shells. 20:34:32 *gnomon* grumbles about stupid NULL issues 20:34:34 bonnet [n=user@bas3-ottawa10-1279550985.dsl.bell.ca] has joined #scheme 20:34:53 -!- bonnet [n=user@bas3-ottawa10-1279550985.dsl.bell.ca] has quit [Remote closed the connection] 20:35:13 It is bizarre that some shells used to screw that up. 20:35:19 Empty values are not the issue. 20:35:32 no, it's not the variable being empty that's the problem 20:35:44 it's the variable passing for an operator 20:35:52 such as -x -o \( or some such 20:35:52 Oh, heh. 20:36:16 if [ -x = -x ] ??? 20:37:06 dedebkbrn [n=dedebkbr@206.251.250.213] has joined #scheme 20:39:27 [ -n = -o -a = -a ] --> is this true or false? 20:40:11 Ack. I ran './configure && make' in ikarus, and the make step is running configure again. 20:46:22 $ if /bin/test -n = -x -o -a = -a; then echo yes; else echo no; fi 20:46:22 test: -x: unknown operand 20:46:59 Riastradh: this is not a good idea 20:47:36 We're talking about shell scripts, and you bring up `good ideas'? What planet are you from? 20:48:03 I come from the land of C and Python :P 20:48:17 *copumpkin* does not like that land 20:49:10 let's declare WAR! 20:49:30 here's my plan: first, we invade. 20:49:36 then we install Democracy. 20:49:54 war is already being waged in the land of shootout.alioth.debian.org 20:50:00 -!- bzzbzz [n=franco@modemcable240.34-83-70.mc.videotron.ca] has quit ["leaving"] 20:50:06 install: missing destination file operand after `Democracy' 20:50:06 Try `install --help' for more information. 20:50:08 then the inhabitants start leaving lots of null pointer dereferences around, right? 20:50:51 and we can all dance a great fandango on core! 20:51:38 so... if I wanted to import FFI support for syscalls wholesale into PLT, what would be a good tool? has that happened in any other Scheme? 20:52:32 Fare: The usual problems. 20:52:44 usual problems? 20:52:59 -!- metasyntax|work [n=taylor@75-149-208-121-Illinois.hfc.comcastbusiness.net] has quit ["If you reach back in your memory, a little bell might ring, 'bout a time that once existed when money wasn't king."] 20:53:12 How do you map a C function's signature into a high-level language? It requires a lot of understanding about what the function actually does with its arguments. 20:53:33 chandler, there are two steps 20:53:37 Step 1. Magic! 20:53:42 Step 2. Profit! 20:53:44 Fare: structs, unions, vectors, higher-order functions, output pointers, pointer ownership, constructors & destructors, status code, atomicity, errno, etc 20:53:46 Does it take a pointer to pointer to structure because it allocates a structure and returns that to the user via the pointer, or because it's expecting an array of pointers to structures? 20:53:50 one is the low-level access, which can be automated from the C signature 20:53:52 Wait, I think I left something out. Shouldn't there be ellipsis somewhere? 20:53:55 No, it can't. 20:54:00 ejs [n=eugen@111-46-135-95.pool.ukrtel.net] has joined #scheme 20:54:07 the other one is proper wrappers, that do or do not need to be written by hand 20:54:22 that could be leveraged from other Scheme/Lisp implementations, too 20:54:50 Macros, too, if you want general C libraries, not just system calls. 20:55:04 sure. And? 20:55:21 in any case, this has been done before. 20:55:26 Really? 20:55:30 just not for PLT scheme yet. 20:55:36 Fare: You mean my list was not enough for you? 20:55:37 I am curious to hear about this magic! 20:55:52 Plenty of other lang/impl have good coverage of syscalls -- e.g. Perl. 20:56:20 That doesn't mean that Perl uses the automagic you described. 20:56:33 That could just mean that somebody spent a lot of time writing stubs carefully. 20:56:41 SBCL's SB-POSIX certainly is magic. I think it was written by a lot of little elves with names like 'Christophe Rhodes' and 'Nikodemus Siivola'. Odd names for elves, those. 20:56:54 nope. But for the calling of the C function itself, you can automagic. The semantics of the wrapper needs more help 20:57:15 If you can automagic it, it's not likely to be useful. 20:57:18 Fare: I've never seen one done automatically. In case it was unclear, I was serious with that list -- all of these things are facts that you need to know to create an interface, and header files give you *very* little of what you need. 20:57:31 There is *not* enough information in a C function's signature to do anything useful automagically. 20:58:02 Certainly it'd be possible to come up with some higher level description, which could potentially even be shared between implementations and languages. 20:58:28 chandler: re "... not likely to be useful." -- there are good examples. The best one I've seen was ImageMagick. 20:58:47 chandler: CFFI kind of does that between CL implementations. It also comes with a groveller to do the right thing with macros & structs. 20:58:59 drwho [n=drwho@c-98-225-211-78.hsd1.pa.comcast.net] has joined #scheme 20:59:18 I am sure that PLT has a foreign function interface, if that's what you're looking for. 20:59:48 automagic cannot be a 100% solution. But a 80% solution can sometimes be great -- especially if there's a good separation from the 20% that remain. 20:59:56 Maybe Fare means that it's not all that difficult to follow any particular ABI, all the issues of resource responsibility and memory motion and hairy control structures for callbacks and stuff aside. 21:00:18 eli, when chandler said `useful' there, I suspect he meant `generally useful'. 21:00:47 Yes -- I don't want to have to instruct the FFI that field time is at offset 6 on a i386 but offset 8 on a x86_64 21:01:04 This is required in PLT's FFI? 21:01:20 or that O_RDWR is 2 on Linux, but 3 on wherever. 21:01:25 I think that it is probably possible to concisely automate the generation of FFIs for particular libraries, if within each library there is a regular set of conventions adhered to in the header files. 21:02:09 or that foo_t is 32-bit on some OS, but 64-bit on another. etc. 21:02:26 all the low-level details SHOULD be grovelled automatically. 21:02:34 The definition of those conventions themselves can't be automated, however. There is information which can't be specified in C which must be known in order to generate a set of useful bindings, (where "useful bindings" implies that you don't have to dip into C semantics to use the bindings). 21:02:35 Even if the high-level semantics have to be coded. 21:03:16 chandler, stop this strawman argument. 21:03:52 the point is (1) the low level parts of the interfacing can be automated 21:04:08 (2) the high-level parts can be written in a fairly portable way. 21:06:57 -!- mejja [n=user@c-49b6e555.023-82-73746f38.cust.bredbandsbolaget.se] has quit [Remote closed the connection] 21:09:14 -!- dudleyf [n=dudleyf@65.243.31.107] has quit [] 21:22:36 -!- puchacz [n=puchacz@87-194-5-99.bethere.co.uk] has quit [Remote closed the connection] 21:27:10 -!- jonrafkind [n=jon@crystalis.cs.utah.edu] has quit ["Leaving"] 21:27:57 -!- Edico [n=Edico@unaffiliated/edico] has quit ["Leaving"] 21:29:49 -!- jao [n=jao@94.Red-88-6-161.staticIP.rima-tde.net] has quit [Remote closed the connection] 21:37:11 -!- langmartin [n=user@exeuntcha.tva.gov] has quit ["ERC Version 5.3 (IRC client for Emacs)"] 21:40:26 -!- bombshelter13_ [n=bombshel@toronto-gw.adsl.erx01.mtlcnds.ext.distributel.net] has quit [] 21:41:15 -!- exexex [n=chatzill@85.97.160.14] has quit [Read error: 110 (Connection timed out)] 21:41:47 -!- Fare [n=Fare@ita4fw1.itasoftware.com] has quit ["Leaving"] 21:44:41 borism_ [n=boris@195-50-199-95-dsl.krw.estpak.ee] has joined #scheme 21:48:05 -!- borism [n=boris@195-50-197-144-dsl.krw.estpak.ee] has quit [Read error: 145 (Connection timed out)] 21:50:35 jao [n=jao@94.Red-88-6-161.staticIP.rima-tde.net] has joined #scheme 21:54:25 -!- Adamant [n=Adamant@unaffiliated/adamant] has quit [] 21:54:34 mokogobo [n=mokogobo@thecoffeehouse.ellipse.net] has joined #scheme 22:04:52 hm 22:04:59 are there any Xlib bindings out there for PLT? 22:06:50 jonrafkind [n=jon@crystalis.cs.utah.edu] has joined #scheme 22:08:08 -!- mokogobo [n=mokogobo@thecoffeehouse.ellipse.net] has quit ["Leaving"] 22:08:43 -!- ejs [n=eugen@111-46-135-95.pool.ukrtel.net] has quit ["This computer has gone to sleep"] 22:09:08 -!- copumpkin [n=pumpkin@dhcp-212-202.cs.dartmouth.edu] has quit ["Leaving..."] 22:09:30 CaptainMorgan [n=CaptainM@75.68.42.94] has joined #scheme 22:13:41 -!- dzhus [n=sphinx@95-24-190-26.broadband.corbina.ru] has quit ["Yow! Legally-imposed CULTURE-reduction is CABBAGE-BRAINED!"] 22:26:22 pantsgay [n=hkarau@nat/uwaterloo/x-19af00c2583794e5] has joined #scheme 22:26:35 how do I specify an alternative stuffer in pltscheme? 22:27:39 -!- pfo_ [n=pfo@chello084114049188.14.vie.surfer.at] has quit [Read error: 104 (Connection reset by peer)] 22:27:45 MrFahrenheit [n=RageOfTh@SE400.PPPoE-2235.sa.bih.net.ba] has joined #scheme 22:33:03 rdd [n=user@c83-250-157-93.bredband.comhem.se] has joined #scheme 22:39:07 leppie: ping 22:40:16 or altnerively some good sample code which uses non-standard stuffers would also be awesome 22:44:07 -!- elderK [n=elderK@222-152-92-36.jetstream.xtra.co.nz] has quit [] 22:46:11 -!- xwl [n=user@62.237.32.162] has quit [Read error: 113 (No route to host)] 22:50:22 gfb [i=80640586@gateway/web/freenode/x-fd7da1b21480834b] has joined #scheme 22:53:53 exexex [n=chatzill@85.97.160.14] has joined #scheme 22:55:19 -!- gfb [i=80640586@gateway/web/freenode/x-fd7da1b21480834b] has quit [Client Quit] 23:05:10 copumpkin [n=pumpkin@c-24-63-67-154.hsd1.nh.comcast.net] has joined #scheme 23:05:28 is there a way to match a literal in syntax-rules? 23:05:59 for example... I want to make fn f0 f ... -> b0 b ... expand into lambda (f0 f ...) (b0 b ...) 23:06:05 which means I need to match the literal arrow 23:09:17 like (syntax-rules (->) ((_ f0 f ... -> b0 b) (lambda (f0 f ...) (b0 b ...)))) ? 23:09:33 oh, *that's* what that argument to syntax-rules is for? 23:09:45 err... with a few more "..." and maybe fewer or more parens 23:09:45 aha! 23:09:54 yeah, that is for literals 23:09:58 woo! 23:10:00 I never knew that :) 23:10:31 huh 23:10:42 it does not like (fn f0 f ... -> b0 b ...) 23:10:45 -!- luz [n=davids@139.82.89.70] has quit ["Client exiting"] 23:10:48 "ellipses follows other ellipses" 23:11:59 interesting, sounds like a job for syntax-case (or ERSs) then 23:12:10 *Elly* does not know how to use syntax-case! 23:12:13 time to learn, it seems 23:13:32 even with syntax-case, it still complains 23:14:33 you'll presumably have to do the matching yourself 23:14:52 I do not actually know how to do that either 23:15:19 this is my first venture into macros, in case that's not obvious :P 23:15:32 http://www.scheme.com/tspl3/syntax.html#./syntax:h3 23:16:41 Kent Dybvig has a decent introduction in one of the chapters in "Beautiful Code" 23:19:40 lowlycoder [n=x@unaffiliated/lowlycoder] has joined #scheme 23:20:29 -!- hkBst [n=hkBst@gentoo/developer/hkbst] has quit [Read error: 104 (Connection reset by peer)] 23:20:39 -!- Judofyr [n=Judofyr@c8F99BF51.dhcp.bluecom.no] has quit [Remote closed the connection] 23:20:50 -!- arcfide [n=arcfide@ppp-70-246-141-17.dsl.stlsmo.swbell.net] has left #scheme 23:20:51 -!- exexex [n=chatzill@85.97.160.14] has quit [Remote closed the connection] 23:21:23 -!- mmc [n=mima@cs162149.pp.htv.fi] has quit [Read error: 110 (Connection timed out)] 23:21:39 huh 23:21:44 I can't think of an elegant way to write this 23:22:39 do you have examples of what you're trying to expand from and to? 23:23:19 sure 23:23:33 for example, (fn x y -> + x y) should expand to (lambda (x y) (+ x y)) 23:24:17 -!- lowlycoder [n=x@unaffiliated/lowlycoder] has quit [Client Quit] 23:24:54 actually 23:25:01 I guess I could do (fn x y -> (+ x y)) pretty easily 23:25:03 and it looks nicer 23:26:02 aha, victory! 23:26:14 -!- sladegen [n=nemo@unaffiliated/sladegen] has quit [Read error: 110 (Connection timed out)] 23:26:18 -!- socialite [n=piespy@dynamic-78-8-240-63.ssp.dialog.net.pl] has quit [Read error: 110 (Connection timed out)] 23:26:18 (define-syntax fn (syntax-rules (->) ((fn f0 f ... -> b) (lambda (f0 f ...) b)))) 23:26:24 Elly, see http://srfi.schemers.org/srfi-26/ 23:27:11 ooh, cute 23:27:19 Indeed. 23:27:26 But only after long debate. 23:28:45 -!- Nshag [i=user@Mix-Orleans-106-4-135.w193-248.abo.wanadoo.fr] has quit ["Quitte"] 23:28:47 hm 23:28:58 the syntax for requiring an srfi is (require srfi-26), isn't it? 23:29:46 That depends on your implementation, I'm afraid. 23:30:18 -!- borism_ [n=boris@195-50-199-95-dsl.krw.estpak.ee] has quit [Read error: 131 (Connection reset by peer)] 23:30:21 This is PLT 23:30:25 borism [n=boris@195-50-199-95-dsl.krw.estpak.ee] has joined #scheme 23:31:01 in plt, (require srfi/26) 23:31:03 Wrong!! 23:31:05 THIS IS 23:31:07 SPARTAAAAAA 23:35:28 -!- joast [n=rick@76.178.184.231] has quit [Read error: 110 (Connection timed out)] 23:37:28 joast [n=rick@76.178.184.231] has joined #scheme 23:44:38 -!- maskd [n=maskd@unaffiliated/maskd] has quit [Read error: 60 (Operation timed out)] 23:45:35 arthurmaciel [n=user@189.100.124.251] has joined #scheme 23:48:04 hi there 23:49:43 I'm reading TSS nad it has just explained the applicative-order imperative Y combinator, talking about letrec. Could anyone explain me more about this, please? I have not understood that. 23:52:49 perhaps 23:52:52 what's TSS? 23:53:23 datkin: The Seasoned Schemer 23:53:37 how much do you understand (could you explain to someone else) and what parts don't you get, or just the whole concept? 23:54:17 datkin: I understand just that it is used to make recursive functions without using define, nothing more 23:54:29 really does not understand how that could be done. 23:54:48 (recursion make things too complicated when used here) 23:54:56 (on a side note, is the chapter in TLS on Y different from the TSS chapter on Y?) 23:55:43 datkin: TLS talks about the Y used to avoid 'define's and TSS talks about Y!, used to make recursive functions. 23:56:05 Y is only useful for making recursive functions 23:56:24 datkin: WHAT is Y? 23:56:39 datkin: why the name, what is its function, what does it represent? 23:56:46 heheh, okay so consider the standard def'n of length that they look at in TLS 23:57:20 ok 23:57:30 (define (len l) (if (null? l) 0 (+ 1 (len (cdr l))))) 23:57:52 If you wanted to make an anonymous function (a lambda) for len, how would you do it? 23:59:12 err... (lambda (l) (if (null? l) 0 (+ 1 (len (cdr l))))) 23:59:25 but let's assume that you don't have "define" 23:59:27 datkin: oh, sh*t! 23:59:30 yeah 23:59:31 now Isee 23:59:46 how could I? 23:59:47 the definintion is fine, except `len' isn't bound to anything