00:03:56 -!- rramsden [~rramsden@s64-180-62-209.bc.hsia.telus.net] has quit [Quit: Leaving] 00:05:12 soveran [~soveran@186.19.214.247] has joined #scheme 00:07:29 -!- gozoner [~ebg@ip68-6-68-92.sb.sd.cox.net] has quit [Quit: Leaving...] 00:10:11 -!- pyrony [~epic@office1.klout.com] has quit [Ping timeout: 246 seconds] 00:12:17 -!- dsmith [~dsmith@cpe-184-56-129-232.neo.res.rr.com] has quit [Ping timeout: 246 seconds] 00:16:35 -!- ckrailo [~ckrailo@208.86.167.249] has quit [Quit: Computer has gone to sleep.] 00:23:48 kilimanjaro [~kilimanja@unaffiliated/kilimanjaro] has joined #scheme 00:25:58 -!- futilius [~otheruser@2001:470:d:128:216:3eff:fe86:c70e] has quit [Read error: Operation timed out] 00:26:50 -!- pygospa [~TheRealPy@kiel-4dbeca0b.pool.mediaWays.net] has quit [Read error: Operation timed out] 00:27:34 pnkfelix [~Adium@c-68-82-87-23.hsd1.pa.comcast.net] has joined #scheme 00:27:37 futilius [~otheruser@2001:470:d:128:216:3eff:fe86:c70e] has joined #scheme 00:29:31 pygospa [~TheRealPy@kiel-4dbec41a.pool.mediaWays.net] has joined #scheme 00:33:19 -!- jonrafkind [~jon@crystalis.cs.utah.edu] has quit [Ping timeout: 248 seconds] 00:39:07 rramsden [~rramsden@d173-180-120-249.bchsia.telus.net] has joined #scheme 00:58:51 -!- nteon [~nteon@c-98-210-195-105.hsd1.ca.comcast.net] has quit [Remote host closed the connection] 01:23:22 Riastradh [debian-tor@fsf/member/riastradh] has joined #scheme 01:23:23 bipt [~bpt@user-0c8h24l.cable.mindspring.com] has joined #scheme 01:25:15 xwl_ [~user@nat/nokia/x-iwipswsusutoaonn] has joined #scheme 01:28:58 dsmith [~dsmith@cpe-184-56-129-232.neo.res.rr.com] has joined #scheme 01:33:42 -!- gcartier [~gcartier@modemcable041.134-82-70.mc.videotron.ca] has quit [Read error: Connection reset by peer] 01:34:34 -!- xwl_ [~user@nat/nokia/x-iwipswsusutoaonn] has quit [Quit: ERC Version 5.3 (IRC client for Emacs)] 01:35:55 eli: ping 01:36:04 foof: ? 01:37:31 I did read your posts. I don't see any other alternative to using a wrapper for the syntax-case family of transformers. 01:37:38 What do you suggest? 01:38:54 My claim was that for a syntax case system a wrapper doesn't make any sense, whereas for ER/etc it does. 01:39:11 It makes sense if you want (define-syntax my-if if) to work. 01:39:59 Or ((syntax-case-transformer (lambda (stx) (syntax-case stx ...))) x y z). 01:40:02 OK. I'm not talking about specific systems so much as a standard. The proposal in that thread is to require _all_ systems to use the bare (lambda (stx) ...) signature. 01:40:31 foof: If the bottom line is that you want to allow systems that do not implement syntax case then that's fine, and can be resolved easily by making those systems barf if the expression that is on the RHS of `define-syntax' is not one that they recognize, syntactically. 01:41:04 Riastradh: I don't see the relevance there. 01:41:07 eli: No, that doesn't work. They wouldn't recognize syntax-rules, for instance, which is just a library syntax. 01:41:15 (Not that one can't make those work otherwise, but there is a nice, simple mechanism by which they work, which rejects (define-syntax (lambda (stx) ...)).) 01:41:31 s/by which they work/by which they can work/ 01:41:42 s/define-syntax (lambda/define-syntax foo (lambda/, bah. 01:42:48 Riastradh: that sounds like it rejects plain evaluation rules for the RHS, assuming that you're not referring to fexpers and the value of `if'. 01:43:14 foof: Why not? In those systems `syntax-rules' would just evaluate to something that they do recognize as something blessed. 01:43:38 -!- kilimanjaro [~kilimanja@unaffiliated/kilimanjaro] has quit [Ping timeout: 246 seconds] 01:44:04 Sort of, eli. It rejects normal evaluation rules, yes: because of course you don't evaluate the right-hand side of (define-syntax x ...) like the right-hand side of (define x ...). 01:44:11 eli: If you *evaluate* the RHS, then all you ever get back are procedures and you can't distinguish between single arity procedures and triple arity procedures. 01:44:36 But it applies the same expansion rules to the E in (define-syntax x E) as it does to the E in (E x y z). 01:44:44 And to the E in (define x E). 01:44:56 -!- bokr [~eduska@109.110.36.4] has quit [Quit: Leaving.] 01:45:08 And to the E in (let-syntax ((x y)) E). 01:45:24 So you can even do ((let-syntax ((x y)) (syntax-rules ...)) a b c), if you really want, using this mechanism. 01:45:38 *eli* shrugs in Riastradh's general direction 01:45:52 And (define-syntax my-syntax-rules ...) (define-syntax x (my-syntax-rules ...)) without messing with environment towers. 01:46:31 foof: Huh? I'd assume that these systems have *some* way to identify the result of `er-macro-transformer', and `syntax-rules' could evaluate to the same thing. 01:47:19 So in the last case, you don't have to have an implied import of the SCHEME module at the first storey up in the syntactic tower. 01:47:21 eli: Why should they? Does Racket have some way to identify the (lambda (stx) ...) people pass to define-syntax? 01:48:07 foof: Obviously. 01:48:22 rudybot: (define-syntax foo (lambda (x y) x)) 01:48:22 eli: Done. 01:48:24 rudybot: (foo 1 2) 01:48:24 eli: error: eval:1:0: foo: illegal use of syntax in: (foo 1 2) 01:49:43 jcowan [~John@cpe-74-68-112-189.nyc.res.rr.com] has joined #scheme 01:49:52 -!- bgs100 [~ian@unaffiliated/bgs100] has quit [Quit: Leaving] 01:50:09 eli: I mean, before it's passed to define-syntax. The whole point of your suggestion is that define-syntax would need to distinguish between ER-style transformers and syntax-case-style transformers, and in both systems those are just ordinary procedures. 01:50:18 It's not any kind of "macro" object. 01:50:53 And even if you could detect arity, (lambda (x . _) ...) is valid for both. 01:52:20 Tagging the ER functions should be easy in any respectable implementation. 01:53:22 Chibi's procedure objects don't have any slot for tags, you want me to change my runtime as well as my macro expander? 01:54:03 xwl_ [~user@nat/nokia/x-huscpfcvneihffpl] has joined #scheme 01:54:24 It doesn't even have to be a function -- just some value that contains one, and is identifiable. 01:54:47 I think eli means (define (er-macro-transformer procedure) (list 'I-am-an-ER-macro-transformer procedure)), foof. 01:54:56 ;) 01:54:59 Ugh. 01:55:04 s/;/;/ 01:55:09 I was just typing that. 01:55:23 eli: tautological substitution? 01:55:32 *eli* sighs 01:55:52 Well, I say ugh to evaluating the RHS and using different expansion rules for (E x y z) and (define-syntax m E). 01:55:52 s/s\/;\/l\//s\/;\/:/ 01:55:57 If that makes it better... 01:56:00 Heh 01:56:48 foof: The bottom line -- which is what I wrote in that post earlier today -- is that with ER macros you have a very good reason to use a wrapper anyway, and it'd be easy for you to reject any non-tagged function values. 01:56:52 pyrony [~epic@184.232.207.199] has joined #scheme 01:57:50 klutometis: (to further clarify, it took me a long time to start using ":)", so it'll take me probably another decade to use ";)", so the typo horrified me.) 01:58:15 *eli* ughs at his sentence 01:58:32 Try using sed to fix your sentence up, then! 01:58:46 or just pretend it is german and move the verb to the end 01:58:52 *eli* takes sed to a dark corner, and shoots it. twice. 01:59:30 s/ t/ T/1 02:00:02 That was intentional -- since I can't make the sentence begin with "Eli", I just aimed for consistency.\ 02:00:09 s/\\// 02:00:36 foof, he's flummoxed -- quick, seize the opportunity! 02:00:39 eli: Is `;)' a little too chauvinist? 02:01:25 klutometis: No, just too obscure. (The internet being a bad medium for such nuances etc.) 02:01:40 pyrony_ [~epic@99-204-55-253.pools.spcsdns.net] has joined #scheme 02:01:40 *eli* waits for Riastradh's s/ in/ In/. 02:02:02 No, always felt `the Internet' looked silly. 02:02:13 Whew. 02:02:23 -!- pyrony [~epic@184.232.207.199] has quit [Ping timeout: 276 seconds] 02:08:11 -!- rramsden [~rramsden@d173-180-120-249.bchsia.telus.net] has quit [Ping timeout: 240 seconds] 02:12:33 -!- tauntaun [~Crumpet@ool-44c72ce0.dyn.optonline.net] has quit [Quit: Ex-Chat] 02:16:23 Euthydemus [~euthydemu@vaxjo4.213.cust.blixtvik.net] has joined #scheme 02:31:09 araujo [~araujo@gentoo/developer/araujo] has joined #scheme 02:37:19 -!- pyrony_ [~epic@99-204-55-253.pools.spcsdns.net] has quit [Ping timeout: 252 seconds] 02:50:47 Reading all your guys stuff I feel like such a "noob" 02:52:07 That feeling will pass if you stick with it. And most folks here are glad to explain things; we have more than our share of Geek Answer Syndrome. 02:53:32 I don't have many specific questions at this point, I'm mingling my way through 02:54:12 Although its an "easier: language in many ways, something like Python or Ruby usually has a more direct learning "system" with racket there is a ton of doc hunting even for new users 03:05:02 well, there are books 03:07:49 EM03: what system are you thinking of, a tutorial? 03:08:04 Oh I'm very much on my way 03:08:14 messing with mysql stuff with racket right now 03:08:38 I'm just curious what is easier about python for new programmers 03:09:36 Outlining is more familiar than paren-counting (and yes, experts don't paren-count, but novices have to) 03:11:05 -!- ASau [~user@95-26-159-184.broadband.corbina.ru] has quit [Quit: off] 03:11:28 -!- MrFahrenheit [~RageOfTho@62.101.146.140] has quit [Ping timeout: 258 seconds] 03:11:47 well, that depends a bit on the editor. but ok, I can see the syntax might be easier to read 03:12:17 And write correctly. 03:12:35 well, with a half-decent editor, that is less convincing. 03:12:48 but maybe being thrown in a new editor is its own barrier 03:12:53 Python has a much easier learning curve for sure, but in the past 3-5 days I don't think I have made bad progress just lots of questions that took a while 03:13:16 EM03: but was python your first language? 03:13:18 I still don't really understand the whole #lang thing and what is and what it not scheme and if something is following the r5r6 or what not etc 03:13:37 Nope Basic was 03:14:16 but I've had tons of fun with many things for different projects, python ruby php smalltalk (squeak and gnu) and lua for embedded stuff ....C for modifying instant messaging protocols 03:14:27 objective C for early mac osx dev, the cocoa lib is kinda different now 03:15:05 "#lang foo/bar" just says that what follows is in the foo/bar language. 03:15:25 I'm talking racket here 03:15:26 That can be a specific version of Scheme, a subset, a superset, or a totally different language like Algol 60 or JavaScript. 03:16:07 In essence, it installs a preprocessor that knows how to convert the language in question into Scheme. 03:16:23 I see 03:16:40 for instance the whole web server part of scheme / framework is like #webserv instance or what not 03:16:50 leo2007 [~leo@123.114.54.165] has joined #scheme 03:27:06 nalaginrut [~nalaginru@183.15.164.149] has joined #scheme 03:28:10 nego [~nego@c-76-16-30-244.hsd1.il.comcast.net] has joined #scheme 03:31:46 -!- MichaelRaskin [~MichaelRa@195.91.224.225] has left #scheme 03:37:50 -!- nego [~nego@c-76-16-30-244.hsd1.il.comcast.net] has quit [Quit: Lost terminal] 03:42:55 rramsden [~rramsden@173.180.120.249] has joined #scheme 03:49:12 bokr [~eduska@109.110.36.4] has joined #scheme 03:50:19 -!- bokr [~eduska@109.110.36.4] has left #scheme 03:52:30 bokr [~eduska@109.110.36.4] has joined #scheme 03:56:01 Most people would have given up, if your forced into this at a univ for 3 months I can see why you might stick with it. Like right now I have created a struct and created I dont know how to say it but a "instance" of that struct with data and I have no clue how to print it out heh 04:00:59 EM03, with racket's structs, put a #:transparent at the end of the struct's declaration. 04:01:14 rudybot, (struct point (x y) #:transparent) 04:01:15 DT``: your r5rs sandbox is ready 04:01:15 DT``: error: eval:1:20: application: missing argument expression after keyword at: #:transparent in: (#%app struct point (x y) #:transparent) 04:01:25 rudybot, init racket 04:01:25 DT``: your sandbox is ready 04:01:29 rudybot, (struct point (x y) #:transparent) 04:01:30 DT``: Done. 04:01:34 rudybot, (point 1 2) 04:01:35 DT``: ; Value: #(struct:point 1 2) 04:03:13 http://pastebin.mozilla.org/1224153 04:03:32 (post-title BLOG) does not work and I think that it should 04:04:09 well, BLOG is a list, the post is the first element of the list. 04:04:30 (post-title (car BLOG)) 04:08:59 why is the car needed? 04:09:42 because the list can contain more than 1 post? 04:09:52 yes. 04:10:25 http://docs.racket-lang.org/continue/index.html?q=file/gif is this why they used map here? 04:10:56 exactly. 04:11:52 os essentially it would map each one? I don't see any recursion for the looping of getting all the post there ....I assume map does that or something? 04:12:36 ,@(map render-post a-blog))) this in particular 04:12:42 `map' essentially applies a procedure to all the elements of a list. 04:13:02 (or more lists) 04:13:25 ah makes perfect sense 04:13:56 so its picking out the list in sequence much like was done with first and then its used with post-title etc 04:13:59 err car 04:14:06 but I think first does the same thing 04:14:24 yeah, it's an alias for car. 04:14:44 i never used map in either ruby or python ...poor me ...but most people did not but the way scheme uses it is probably far superior 04:14:56 well that makes some serious sense 04:15:05 and that's still nothing! 04:15:23 you mean its a very simple example of whats capable? 04:16:32 yeah, once you get how continuations work everything will be clear. (you can implement *anything* with continuations) 04:17:59 I'm still unclear of really what continuations are DT`` ....I don't think its used in that example? if a continuation is calling a function from another one and having the result used in the parent? but in the smalltalk web world a continuation goes much deeper 04:19:29 the simpler definition of continuation is ``the future of a computation'', but that doesn't help much with understanding them. 04:20:02 Distinguish between *continuation* and *escape procedure*. 04:20:15 http://pastebin.mozilla.org/1224163 04:20:21 is a continuation used here? 04:20:29 nope. 04:21:26 hmmm 04:21:52 in the smalltalk sense a continuatiion can get very deep and the seaside framework is not to good for the modern internet because we need our back buttons 04:22:03 it looks like they are "optional" in rackets web stuff 04:22:22 I can do url based dispatch just like I can in rails or what not 04:22:55 I don't know how continuations are used for the web. 04:23:10 Maybe under the covers. 04:23:32 MichaelRaskin [~MichaelRa@195.178.216.22] has joined #scheme 04:23:49 I know they are there (serializable continuations), but I don't know how would you use them. 04:23:49 also this racket is cool but I'm missing my emacs and drracket just seems required to me right now 04:24:04 EM03, there's geiser for emacs. 04:24:36 http://www.nongnu.org/geiser/ 04:28:30 very interesting 04:40:39 -!- bipt [~bpt@user-0c8h24l.cable.mindspring.com] has quit [Read error: Connection reset by peer] 04:43:04 -!- pearle [~pearle@blk-224-181-222.eastlink.ca] has quit [Ping timeout: 246 seconds] 04:43:44 -!- bokr [~eduska@109.110.36.4] has left #scheme 04:43:56 bokr [~eduska@109.110.36.4] has joined #scheme 05:00:03 -!- dnolen [~davidnole@184.152.69.75] has quit [Quit: dnolen] 05:01:02 -!- soveran [~soveran@186.19.214.247] has quit [Remote host closed the connection] 05:06:10 -!- bokr [~eduska@109.110.36.4] has left #scheme 05:07:02 -!- pnkfelix [~Adium@c-68-82-87-23.hsd1.pa.comcast.net] has quit [Quit: Leaving.] 05:11:05 -!- tupi [~david@189.60.162.71] has quit [Quit: Leaving] 05:12:50 fantazo_ [~fantazo@178-191-160-151.adsl.highway.telekom.at] has joined #scheme 05:16:56 -!- fantazo__ [~fantazo@178-190-238-119.adsl.highway.telekom.at] has quit [Ping timeout: 276 seconds] 05:25:36 -!- mjonsson [~mjonsson@38.109.95.149] has quit [Remote host closed the connection] 05:29:11 saiko-chriskun [~chris-kun@adsl-75-36-213-28.dsl.pltn13.sbcglobal.net] has joined #scheme 05:29:11 jcowan_ [~John@cpe-74-68-112-189.nyc.res.rr.com] has joined #scheme 05:29:11 -!- saiko-chriskun [~chris-kun@adsl-75-36-213-28.dsl.pltn13.sbcglobal.net] has quit [Changing host] 05:29:11 saiko-chriskun [~chris-kun@fsf/member/saiko-chriskun] has joined #scheme 05:31:55 -!- jcowan [~John@cpe-74-68-112-189.nyc.res.rr.com] has quit [Ping timeout: 260 seconds] 05:38:55 kilimanjaro [~kilimanja@unaffiliated/kilimanjaro] has joined #scheme 05:42:16 jrtayloriv [~jrtaylori@207-118-45-56.dyn.centurytel.net] has joined #scheme 05:49:25 lewis1711 [~lewis@125-239-253-151.jetstream.xtra.co.nz] has joined #scheme 05:50:23 wsxiaoys [~wsxiaoys@222.66.175.253] has joined #scheme 05:55:36 -!- cafesofie [~cafesofie@ool-18b97779.dyn.optonline.net] has quit [Remote host closed the connection] 05:57:36 -!- kilimanjaro [~kilimanja@unaffiliated/kilimanjaro] has quit [Ping timeout: 248 seconds] 06:04:54 -!- turbofail [~user@c-107-3-149-149.hsd1.ca.comcast.net] has quit [Ping timeout: 240 seconds] 06:05:39 turbofail [~user@c-107-3-149-149.hsd1.ca.comcast.net] has joined #scheme 06:10:10 -!- leo2007 [~leo@123.114.54.165] has quit [Quit: rcirc on GNU Emacs 23.3.50.1] 06:10:17 -!- realitygrill [~realitygr@adsl-76-226-103-171.dsl.sfldmi.sbcglobal.net] has quit [Read error: Connection reset by peer] 06:10:43 realitygrill [~realitygr@adsl-76-226-103-171.dsl.sfldmi.sbcglobal.net] has joined #scheme 06:11:18 leo2007 [~leo@123.114.54.165] has joined #scheme 06:16:22 -!- realitygrill [~realitygr@adsl-76-226-103-171.dsl.sfldmi.sbcglobal.net] has quit [Read error: Connection reset by peer] 06:16:43 realitygrill [~realitygr@adsl-76-226-103-171.dsl.sfldmi.sbcglobal.net] has joined #scheme 06:22:30 -!- jrtayloriv [~jrtaylori@207-118-45-56.dyn.centurytel.net] has quit [Ping timeout: 240 seconds] 06:22:47 homie [~levgue@xdsl-78-35-129-43.netcologne.de] has joined #scheme 06:22:57 jrtayloriv [~jrtaylori@207-118-45-56.dyn.centurytel.net] has joined #scheme 06:23:38 -!- rramsden [~rramsden@173.180.120.249] has quit [Quit: Leaving] 06:24:20 -!- realitygrill [~realitygr@adsl-76-226-103-171.dsl.sfldmi.sbcglobal.net] has quit [Quit: realitygrill] 06:31:02 hkBst [~quassel@gentoo/developer/hkbst] has joined #scheme 06:39:09 -!- chrissbx [~chrissbx@69-196-152-229.dsl.teksavvy.com] has quit [Ping timeout: 260 seconds] 06:49:30 kuribas [~user@d54C43D8A.access.telenet.be] has joined #scheme 06:55:27 -!- wsxiaoys is now known as Meng 06:55:37 -!- Meng is now known as MengZhang 07:05:45 chrissbx [~chrissbx@69-196-152-229.dsl.teksavvy.com] has joined #scheme 07:08:49 -!- jrtayloriv [~jrtaylori@207-118-45-56.dyn.centurytel.net] has quit [Quit: Leaving] 07:08:54 stis [~stis@host-78-79-225-85.mobileonline.telia.com] has joined #scheme 07:10:48 -!- saiko-chriskun [~chris-kun@fsf/member/saiko-chriskun] has quit [Quit: WeeChat 0.3.4] 07:16:44 wingo [~wingo@90.164.198.39] has joined #scheme 07:26:04 pyrony [~epic@99-105-56-162.lightspeed.sntcca.sbcglobal.net] has joined #scheme 07:28:44 -!- pygospa [~TheRealPy@kiel-4dbec41a.pool.mediaWays.net] has quit [Ping timeout: 260 seconds] 07:35:41 -!- kuribas [~user@d54C43D8A.access.telenet.be] has quit [Quit: ERC Version 5.3 (IRC client for Emacs)] 07:41:07 -!- nalaginrut [~nalaginru@183.15.164.149] has quit [Remote host closed the connection] 07:59:11 i have a tonne of a car now! 07:59:12 pygospa [~TheRealPy@kiel-d9bfc70f.pool.mediaWays.net] has joined #scheme 07:59:12 lol 07:59:30 gravicappa [~gravicapp@ppp91-77-168-144.pppoe.mtu-net.ru] has joined #scheme 08:04:25 pdelgallego [~pdelgalle@1385159903.dhcp.dbnet.dk] has joined #scheme 08:05:33 that cdr been better 08:09:19 -!- blueadept [~blueadept@unaffiliated/blueadept] has quit [Remote host closed the connection] 08:11:37 nope 08:11:51 not really 08:12:44 like swiss cheese.... 08:13:56 corroding too fast, but it was handy.... 08:14:09 rramsden [~rramsden@173.180.120.249] has joined #scheme 08:24:19 -!- gravicappa [~gravicapp@ppp91-77-168-144.pppoe.mtu-net.ru] has quit [Ping timeout: 264 seconds] 08:35:59 -!- Riastradh [debian-tor@fsf/member/riastradh] has quit [Remote host closed the connection] 08:36:58 Riastradh [debian-tor@fsf/member/riastradh] has joined #scheme 08:39:00 brandelune [~suzume@pl571.nas982.takamatsu.nttpc.ne.jp] has joined #scheme 08:41:01 -!- MengZhang [~wsxiaoys@222.66.175.253] has quit [Remote host closed the connection] 08:55:03 -!- fantazo_ [~fantazo@178-191-160-151.adsl.highway.telekom.at] has quit [Remote host closed the connection] 09:04:38 kuribas [~user@d54C43D8A.access.telenet.be] has joined #scheme 09:12:10 blueadept [~blueadept@unaffiliated/blueadept] has joined #scheme 09:14:15 gremset [ubuntu@117.192.107.188] has joined #scheme 09:17:12 superjudge [~superjudg@195.22.80.141] has joined #scheme 09:18:20 -!- gremset [ubuntu@117.192.107.188] has quit [Remote host closed the connection] 09:18:46 kuribas` [~user@d54C43D8A.access.telenet.be] has joined #scheme 09:22:33 elliottcable [~ec@ec2-174-129-205-205.compute-1.amazonaws.com] has joined #scheme 09:22:44 gravicappa [~gravicapp@80.90.116.82] has joined #scheme 09:23:06 Hey all. Reading R6RS to learn, and I am *massively* confused about `(values )`, `(call-with-values  )`and such 09:23:46 first off, what does `(values)` actually *do*? How, for example, is `(values 1 2 3)` different from `(list 1 2 3)`? 09:23:58 (forgive me if I ask a stupid question or write some patently incorrect code; Im still new to lisp.) 09:28:22 `values' returns multiple values to a continuation. 09:28:32 you understand continuations? 09:29:43 I thought I did. 09:29:58 in 09:30:02 I think what Im misunderstanding is something about how continuations are implemented in a Scheme. 09:30:10 ah is it an implementation question? 09:30:45 the continuations can be thought of just as functions, because that is what they are, at least semantically 09:30:51 how does the continuation get to `(values)`? it doesnt take an argument to pass in the continuation as an argument. If there is a continuation maintained for the currently executing code, and its talking about *that* continuation, then it just seems that the call into `(values)` would be the return point  09:31:20 Delivers all of its arguments to its continuation. Where is its continuation, exactly? 09:31:21 elliottcable: you may enjoy http://www.cs.indiana.edu/~dyb/pubs/mrvs.pdf 09:31:37 efficient implementations will return multiple values on the stack 09:31:40 wingo: readlaterd 09:32:00 it's like returning from a function, but with more values 09:32:06 and it doesn't have to be in tail position 09:32:19 you can return values to any continuation in your code that is prepared to handle them 09:32:45 the standards only specify certain contexts (continuations) that can accept a number of values other than 1 09:33:02 so I have it completely backwards? `(values)` gives you a continuation to which you can then later hand multiple results? 09:33:05 so the result of evaluation (+ (values 1 2) 3) is implementation-dependent 09:33:13 if you run the code through cps, a (values a b .. n) is just transformed to ( a b ..n) 09:33:16 elliottcable: every expression has a continuation! 09:33:34 the continuation must be a function that accepts that many values, and such ones can be created using call-with-values 09:33:40 logically, i mean; that doesn't mean that the implementation creates continuation objects all the time 09:34:15 -!- kuribas [~user@d54C43D8A.access.telenet.be] has quit [Quit: ERC Version 5.3 (IRC client for Emacs)] 09:34:22 -!- kuribas` [~user@d54C43D8A.access.telenet.be] has quit [Quit: ERC Version 5.3 (IRC client for Emacs)] 09:34:32 kuribas [~user@d54C43D8A.access.telenet.be] has joined #scheme 09:34:37 usually the continuation expects one argument, so you can do (+ 1 (values 2)) 09:35:01 Hold on. 09:35:15 Im still missing how `(+ 1 (values 2))` is different from `(+ 1 2)` 09:35:20 what is `(values)` *doing* in that example? 09:35:39 (+ 1 (values 2)) is the same as (+ 1 2) 09:35:55 if the compiler does cps, the code will most likely be exactly equal 09:36:01 is the same as (values ((values +) (values 1) (values 2))) 09:36:20 -!- monqy [~chap@pool-71-102-217-117.snloca.dsl-w.verizon.net] has quit [Quit: hello] 09:36:43 *elliottcable* rubs head against wall papered with sandpaper 09:37:14 okay, let me try this again. What makes `(values 1 2)` and `(list 1 2)` different? Do they not both have an in-situ value of the list, `'(1 2)`? 09:37:24 nope! 09:37:40 (list 1 2) returns one value to the continuation, which is a list 09:37:48 (values 1 2) evaluates to the two values, 1 and 2 09:37:56 (list 1 2) evaluates to the one value, (1 2) 09:38:12 Hm. So the in-situ value, *what the thing is at that spot*, for `(list 1 2)` is one thing, but that one thing is a list 09:38:23 whereas the ISV for `(values 1 2)` is in fact, simultaneously, two different things? 09:38:59 and youre saying theres only particular places in the syntax where a single node (forgive my *terrible* misapplication of terminology here, but Im completely scrambling with confusion) is capable of having more than one value, sanely? 09:39:51 it's not so much syntax as context 09:39:53 for example. 09:40:00 (define (two-values) (values 1 2)) 09:40:16 the meaning of (two-values) depends on its context 09:40:26 where by `(two-values)` you mean something like a `(values)` call that has two ISVs, yes? 09:40:33 if its context -- its continuation -- accepts multiple values, then it is defined. 09:40:45 -!- rramsden [~rramsden@173.180.120.249] has quit [Quit: Leaving] 09:40:49 so: (begin (two-values) 3) evaluates to 3. 09:40:52 hmmk. 09:41:01 because a non-tail position in a `begin' accepts any number of values. 09:41:17 (call-with-values (lamdba () (two-values)) (lambda (x y) y)) evaluates to 2 09:41:31 because in that case, the continuation was set up by call-with-values. 09:41:44 but (+ (two-values) 3) is not defined in r5rs or r6rs. 09:41:53 Does r5rs mandate BEGIN to be able to handle multiple values? 09:41:54 because the continuation of that call is for one value. 09:41:59 Okay, beginning to grasp it: next question, related; how does the specs example implementation of `(values)` work? As I read it, it would simply preform a no-op of creating-continuation and then resuming continuation, and then the resultant value would be the value of the last expression in that lambda, and thus the return value of the lambda, yes? 09:42:17 but how come *that* lambda can return two values simultaneously, while it sounds like most of the time, thats an invalid location for these multiple-values? 09:42:18 ecraven: not sure, actually. most impls accept that, though. 09:43:05 it is defined in r6, fwiw. 09:43:26 still not grasping `(call-with-values)`, either. 09:43:49 The call-with-values procedure calls producer with no arguments and a continuation that, 09:43:53 is what is confusing me, in a nutshell. 09:44:00 How does it call it with a continuation if it provides no arguments? 09:44:17 does every procedure/lambda have an implicit, invisible continuation argument or something? 09:44:24 yes, that! 09:44:25 yes 09:45:03 okay! thats exactly what I needed to know! awesome. 09:45:18 happy hacking :) 09:45:27 So, wild guess, maybe Im way off: the whole the return value is the last value, is that actually resuming that implicit continuation-argument with the result of the last expression of the procedure? 09:45:41 elliottcable: Every expression has a implicit continuation. 09:46:18 elliottcable: yes, that's exactly it. 09:46:32 except, "with the *results*" 09:46:38 so I can stop wasting everybodys time: anybody got a link to a particularly good blog post or tutorial explaining this aspect? I dont need a primer on the concept of continuations; just Schemes contination-semantics with regard to all this jazz. 09:46:44 could be 1 value, 0 values, etc... 09:46:51 wingo: yah, yah, makes sense. 09:49:11 wingo: I definitely appreciate your time. This has cleared much of my confusion up a thousand times faster than trying to eke these answers out of the spec. 09:50:33 bokr [~eduska@109.110.36.4] has joined #scheme 09:50:38 np. have fun with scheme :) 10:04:29 -!- Euthydemus [~euthydemu@vaxjo4.213.cust.blixtvik.net] has quit [Ping timeout: 260 seconds] 10:05:22 stis_ [~stis@host-95-196-159-23.mobileonline.telia.com] has joined #scheme 10:06:10 -!- stis [~stis@host-78-79-225-85.mobileonline.telia.com] has quit [Ping timeout: 240 seconds] 10:06:15 Caleb-- [~caleb@bzq-79-176-213-60.red.bezeqint.net] has joined #scheme 10:09:57 stis__ [~stis@host-95-194-99-240.mobileonline.telia.com] has joined #scheme 10:10:10 -!- stis_ [~stis@host-95-196-159-23.mobileonline.telia.com] has quit [Ping timeout: 250 seconds] 10:20:53 -!- Caleb-- [~caleb@bzq-79-176-213-60.red.bezeqint.net] has quit [] 10:24:01 elliottcable: the producer doesn't accept any arguments but returns some number of values when it is called (with no arguments) 10:24:29 returns, how, if its not handed a continuation to call? just the standard value(s)-of-last-expression mechanism? 10:24:37 masm [~masm@bl19-151-234.dsl.telepac.pt] has joined #scheme 10:24:54 yep 10:24:58 elliottcable: either that or with a call to values as in wingo's example 10:25:10 mkay 10:25:59 so, `call-with-current-continuation` doesnt always use the continuation for *that expression*, but can also sometimes use the continuation-handed-to-the-procedure-as-an-implicit-argument that I was trying to suss out earlier? 10:26:36 i.e. the implementation of `(values)` is providing those values to the continuation pointing to consumer, not the one inside the body of the implementation of `(values)`? 10:26:39 -!- pdelgallego [~pdelgalle@1385159903.dhcp.dbnet.dk] has quit [Ping timeout: 260 seconds] 10:27:09 elliottcable: think about a procedure that accepts 2 arguments. You can't just call it on a list of length 2, for that you need `apply'. Unfortunately (with my current understanding) you also cannot directly call your procedure on some values; for that you need `call-with-values'. 10:32:45 elliottcable: in scheme procedures do not return values but pass them on to their continuations. In continuation passing style (CPS) returning and function calling is somehow inverted and thus it is as natural to call a procedure with multiple arguments as it is to call a continuation with multiple arguments. But to be able to do that without having to write your code in CPS you need `values' and (unfortunately) `call-with-values'. 10:32:55 yes, I know what CPS is 10:33:03 I just didnt know Scheme was inherently CPS 10:33:46 so, there *is* an implicit return-here continuation passed. How, exactly, is that conflated with the `(call-with-current-continuation)` implementation of `(values)`? 10:34:13 I just dont see why `(call-with-current-continuation)` is using the implicit-CPS-return-location-continuation instead of the current-expression-continuation  if that makes any sense. 10:34:40 Normally, call/cc would be handing the callee a continuation for *that location*, where the call/cc happened. So why is it, here, handing the implicit return-to continuation instead? 10:34:41 -!- gnomon [~gnomon@CPE0022158a8221-CM000f9f776f96.cpe.net.cable.rogers.com] has quit [Ping timeout: 240 seconds] 10:35:20 elliottcable: by being able to reify continuations with `call-with-current-continuation' (call/cc) you do not need to change your program from direct style to CPS just because you wanted some small change. 10:35:43 pdelgallego [~pdelgalle@1385159903.dhcp.dbnet.dk] has joined #scheme 10:36:07 elliottcable: that current continuation isn't normally passed, but it exists within the implementation 10:36:10 -!- stis__ [~stis@host-95-194-99-240.mobileonline.telia.com] has quit [Ping timeout: 250 seconds] 10:36:22 stis__ [~stis@host-95-200-240-221.mobileonline.telia.com] has joined #scheme 10:36:41 gnomon [~gnomon@CPE0022158a8221-CM000f9f776f96.cpe.net.cable.rogers.com] has joined #scheme 10:37:55 elliottcable: call/cc always ``handing'' the usually implicit ``return-to'' continuation IIUYC 10:38:19 ``hands''* 10:38:43 bbl 10:38:56 man, that whole `foo' thing drives me *nuts*. It always leaves my brain hurting for hours, because it just knows theres this damn unbalanced quote mark! 10:39:17 cf. http://xkcd.com/859/ 10:41:20 hm, hkBst had to run off, but if what he said is right  then I have been completely wrong this entire time about how `call/cc` operates. So is ` (call/cc (lambda (c) (c 42)))` not equivalent to ` 42`? 10:51:11 -!- stis__ [~stis@host-95-200-240-221.mobileonline.telia.com] has quit [Ping timeout: 240 seconds] 10:51:17 stis [~stis@host-90-235-139-85.mobileonline.telia.com] has joined #scheme 10:52:04 the two are equivalent 10:52:36 but he was just saying that it would be the return continuation (apologies for the terrible, imprecise, contrived language; I dont know the proper words here) that call/cc used 10:52:38 -!- leo2007 [~leo@123.114.54.165] has quit [Ping timeout: 250 seconds] 10:53:44 all expressions have an implicit continuation. call/cc takes its implicit continuation and reifies it into something you can call. 10:53:50 elliottcable: the 'c' argument is the continuation that call/cc would use 10:54:06 wingo: yes, thats what I originally thought. So, now Im confused again about the implementation of `(values)`. 10:54:21 Im probably wasting all yalls time. Let me come back to this after Ive slept, so Im not so hard-headed. (-: 10:54:26 values returns some number of values to its implicit continuation :) 10:54:53 ok this might blow your mind 10:54:54 wingo: yes, I get that, but *how*, if the `call-with-current-continuation` isnt using the implicit continuation instead? 10:55:07 dude, its 7:00 AM. *all* of this is blowing my mind. 10:55:11 (define values (lambda args (call/cc (lambda (c) (apply c args))))) 10:55:14 seeing text scroll upward in my IRC client is blowing my mind. 10:55:43 that is a valid implementation of `values'. 10:55:54 wingo: yeah thats what Ive been talking about the entire time; that implementation is in the spec 10:56:18 wingo: its whats been confusing me. If that `call/cc` isnt passing the *implicit continuation* as `c`, then how on earth is the implicit continuation getting called with multiple values? 10:58:09 not sure how i can explain it better; sorry :/ 10:58:20 something to ponder in the shower tomorrow morning :) 10:58:29 OH. 10:58:31 It just clicked. 10:58:49 That trick is forcing the value of the last espression to be what, for lack of a better term, Ill call a multi-value 10:59:11 and thus, as thats the last expression, the result naturally passed back to the implicit continuation is going to be *that multi-value* 10:59:14 yesyes? 11:00:08 sounds mostly right; eventually you will come around to the standard way of saying it though :) 11:00:28 *wingo* reminded of http://james-iry.blogspot.com/2009/05/brief-incomplete-and-mostly-wrong.html 11:00:29 http://tinyurl.com/pjcco4 11:00:44 Wadler tries to appease critics by explaining that "a monad is a monoid in the category of endofunctors, what's the problem?" 11:00:55 -!- pdelgallego [~pdelgalle@1385159903.dhcp.dbnet.dk] has quit [Ping timeout: 260 seconds] 11:03:41 -!- stis [~stis@host-90-235-139-85.mobileonline.telia.com] has quit [Ping timeout: 240 seconds] 11:04:07 stis [~stis@host-78-79-73-191.mobileonline.telia.com] has joined #scheme 11:04:43 not sure if this helps, but if you could see the imlpicit continuation and it was carried at the first argument, you could define call/cc as (define (call/cc implicit-cont fn) (fn implicit-cont (lambda (cont . return-values) (apply implicit-cont return-values)))) 11:05:35 apply, which also has it's implicit cont, also passes it to the captured continuation as first argument, but the continuation just drops it and calls the implicit continuation it remembers 11:06:13 and if valuse was used, the captured continuation can receive more than one value, which it passes along 11:07:33 wingo: god, that link is hilarious. Thanks. 11:08:00 :) 11:10:52 stis_ [~stis@host-90-235-94-146.mobileonline.telia.com] has joined #scheme 11:11:07 -!- stis [~stis@host-78-79-73-191.mobileonline.telia.com] has quit [Ping timeout: 264 seconds] 11:11:07 -!- cataska [~cataska@210.64.6.233] has quit [Quit: leaving] 11:19:24 -!- stis_ [~stis@host-90-235-94-146.mobileonline.telia.com] has quit [Read error: Connection reset by peer] 11:19:44 stis_ [~stis@host-95-198-2-54.mobileonline.telia.com] has joined #scheme 11:29:17 soveran [~soveran@186.19.214.247] has joined #scheme 11:31:22 Jafet [~Jafet@unaffiliated/jafet] has joined #scheme 11:34:38 stis__ [~stis@host-78-79-73-219.mobileonline.telia.com] has joined #scheme 11:35:02 -!- stis_ [~stis@host-95-198-2-54.mobileonline.telia.com] has quit [Ping timeout: 276 seconds] 11:39:11 pdelgallego [~pdelgalle@1385159903.dhcp.dbnet.dk] has joined #scheme 11:40:10 stis [~stis@host-95-194-86-11.mobileonline.telia.com] has joined #scheme 11:40:37 -!- stis__ [~stis@host-78-79-73-219.mobileonline.telia.com] has quit [Ping timeout: 246 seconds] 11:40:44 -!- ymasory [~ymasory@c-76-99-55-224.hsd1.pa.comcast.net] has quit [Ping timeout: 250 seconds] 11:45:36 pearle [~pearle@blk-224-181-222.eastlink.ca] has joined #scheme 11:53:07 stis_ [~stis@host-95-198-11-254.mobileonline.telia.com] has joined #scheme 11:53:14 -!- stis [~stis@host-95-194-86-11.mobileonline.telia.com] has quit [Ping timeout: 276 seconds] 11:56:29 ymasory [~ymasory@frank.ldc.upenn.edu] has joined #scheme 11:58:06 -!- bokr [~eduska@109.110.36.4] has quit [Quit: Leaving.] 12:02:11 -!- elliottcable is now known as ec|detached 12:06:23 Matt_S_G [~matt@188.51.121.47] has joined #scheme 12:07:03 stis__ [~stis@host-95-198-25-81.mobileonline.telia.com] has joined #scheme 12:07:32 -!- stis_ [~stis@host-95-198-11-254.mobileonline.telia.com] has quit [Ping timeout: 276 seconds] 12:11:12 -!- ijp [~user@host86-163-221-44.range86-163.btcentralplus.com] has left #scheme 12:11:41 -!- stis__ [~stis@host-95-198-25-81.mobileonline.telia.com] has quit [Ping timeout: 240 seconds] 12:16:35 -!- kanru [~kanru@kanru-1-pt.tunnel.tserv15.lax1.ipv6.he.net] has quit [Read error: Operation timed out] 12:16:40 -!- futilius [~otheruser@2001:470:d:128:216:3eff:fe86:c70e] has quit [Read error: Operation timed out] 12:17:03 -!- ec|detached is now known as elliottcable 12:21:41 -!- joast [~rick@76.178.178.72] has quit [Quit: Leaving.] 12:23:10 joast [~rick@76.178.178.72] has joined #scheme 12:33:20 futilius [~otheruser@cow9.org] has joined #scheme 12:41:10 -!- elly [debian-tor@atheme/member/elly] has quit [Ping timeout: 246 seconds] 12:41:32 elly [debian-tor@atheme/member/elly] has joined #scheme 12:42:01 dnolen [~davidnole@184.152.69.75] has joined #scheme 12:49:35 wsxiaoys [~wsxiaoys@222.66.175.253] has joined #scheme 12:50:14 -!- wsxiaoys is now known as MengZhang 12:50:18 kanru [~kanru@kanru-1-pt.tunnel.tserv15.lax1.ipv6.he.net] has joined #scheme 12:57:00 -!- MengZhang [~wsxiaoys@222.66.175.253] has quit [Remote host closed the connection] 13:00:58 jeng [~jeng@74.194.1.28] has joined #scheme 13:15:54 -!- hkBst [~quassel@gentoo/developer/hkbst] has quit [Read error: Connection reset by peer] 13:16:58 -!- dnolen [~davidnole@184.152.69.75] has quit [Quit: dnolen] 13:25:06 stis [~stis@1-1-1-39a.veo.vs.bostream.se] has joined #scheme 13:30:41 -!- gnomon [~gnomon@CPE0022158a8221-CM000f9f776f96.cpe.net.cable.rogers.com] has quit [Ping timeout: 240 seconds] 13:31:00 gnomon [~gnomon@CPE0022158a8221-CM000f9f776f96.cpe.net.cable.rogers.com] has joined #scheme 13:45:14 MrFahrenheit [~RageOfTho@users-146-140.vinet.ba] has joined #scheme 13:46:37 realitygrill [~realitygr@adsl-76-226-103-171.dsl.sfldmi.sbcglobal.net] has joined #scheme 13:53:17 realitygrill_ [~realitygr@adsl-76-226-103-171.dsl.sfldmi.sbcglobal.net] has joined #scheme 13:53:17 -!- realitygrill [~realitygr@adsl-76-226-103-171.dsl.sfldmi.sbcglobal.net] has quit [Read error: Connection reset by peer] 13:53:19 -!- realitygrill_ is now known as realitygrill 14:00:42 -!- superjudge [~superjudg@195.22.80.141] has quit [Quit: superjudge] 14:00:53 -!- gravicappa [~gravicapp@80.90.116.82] has quit [Remote host closed the connection] 14:02:52 -!- pjb [~t@81.202.16.46.dyn.user.ono.com] has quit [Remote host closed the connection] 14:02:55 pjb` [~t@81.202.16.46.dyn.user.ono.com] has joined #scheme 14:13:30 aisa [~aisa@173-10-243-253-Albuquerque.hfc.comcastbusiness.net] has joined #scheme 14:14:08 -!- realitygrill [~realitygr@adsl-76-226-103-171.dsl.sfldmi.sbcglobal.net] has quit [Read error: Connection reset by peer] 14:14:23 realitygrill [~realitygr@adsl-76-226-103-171.dsl.sfldmi.sbcglobal.net] has joined #scheme 14:17:51 -!- andreer [andreer@flode.pvv.ntnu.no] has quit [Remote host closed the connection] 14:20:55 edw [~user@70-89-62-209-philadelphia-panjde.hfc.comcastbusiness.net] has joined #scheme 14:21:59 -!- ymasory [~ymasory@frank.ldc.upenn.edu] has quit [Quit: Leaving] 14:26:52 -!- elly [debian-tor@atheme/member/elly] has quit [Ping timeout: 246 seconds] 14:33:27 -!- lewis1711 [~lewis@125-239-253-151.jetstream.xtra.co.nz] has quit [Quit: Leaving.] 14:34:54 -!- pdelgallego [~pdelgalle@1385159903.dhcp.dbnet.dk] has quit [Quit: Leaving] 14:35:15 -!- pygospa [~TheRealPy@kiel-d9bfc70f.pool.mediaWays.net] has quit [Ping timeout: 252 seconds] 14:37:29 pygospa [~TheRealPy@kiel-5f769966.pool.mediaWays.net] has joined #scheme 14:41:57 elly [debian-tor@atheme/member/elly] has joined #scheme 14:43:35 -!- realitygrill [~realitygr@adsl-76-226-103-171.dsl.sfldmi.sbcglobal.net] has quit [Read error: Connection reset by peer] 14:43:55 realitygrill [~realitygr@adsl-76-226-103-171.dsl.sfldmi.sbcglobal.net] has joined #scheme 14:49:53 -!- mdmkolbe [~adamsmd@2001:18e8:2:244:212:3fff:fe43:5290] has quit [Quit: Leaving.] 14:52:25 rdd [~user@c83-250-52-16.bredband.comhem.se] has joined #scheme 14:54:20 gremset [ubuntu@117.202.64.60] has joined #scheme 14:55:53 -!- pyrony [~epic@99-105-56-162.lightspeed.sntcca.sbcglobal.net] has quit [Ping timeout: 276 seconds] 14:57:23 -!- realitygrill [~realitygr@adsl-76-226-103-171.dsl.sfldmi.sbcglobal.net] has quit [Read error: Connection reset by peer] 14:57:40 realitygrill [~realitygr@adsl-76-226-103-171.dsl.sfldmi.sbcglobal.net] has joined #scheme 15:04:32 -!- jcowan_ is now known as jcowan 15:04:43 -!- realitygrill [~realitygr@adsl-76-226-103-171.dsl.sfldmi.sbcglobal.net] has quit [Read error: Connection reset by peer] 15:05:00 realitygrill [~realitygr@adsl-76-226-103-171.dsl.sfldmi.sbcglobal.net] has joined #scheme 15:08:54 HG` [~HG@p5DC05007.dip.t-dialin.net] has joined #scheme 15:12:39 -!- realitygrill [~realitygr@adsl-76-226-103-171.dsl.sfldmi.sbcglobal.net] has quit [Read error: Connection reset by peer] 15:13:02 realitygrill [~realitygr@adsl-76-226-103-171.dsl.sfldmi.sbcglobal.net] has joined #scheme 15:16:01 ckrailo [~ckrailo@208.86.167.249] has joined #scheme 15:17:35 pyrony [~epic@173.151.41.156] has joined #scheme 15:18:44 -!- realitygrill [~realitygr@adsl-76-226-103-171.dsl.sfldmi.sbcglobal.net] has quit [Read error: Connection reset by peer] 15:18:57 realitygrill [~realitygr@adsl-76-226-103-171.dsl.sfldmi.sbcglobal.net] has joined #scheme 15:25:14 -!- samth_away is now known as samth 15:34:42 jonrafkind [~jon@crystalis.cs.utah.edu] has joined #scheme 15:41:03 pdlogan [~patrick@174-25-37-137.ptld.qwest.net] has joined #scheme 15:41:08 Fare [~Fare@ita4fw1.itasoftware.com] has joined #scheme 15:45:31 -!- homie [~levgue@xdsl-78-35-129-43.netcologne.de] has quit [Read error: Connection reset by peer] 15:47:00 homie [~levgue@xdsl-87-79-195-168.netcologne.de] has joined #scheme 15:47:50 -!- jcowan [~John@cpe-74-68-112-189.nyc.res.rr.com] has quit [Quit: Leaving] 15:49:20 -!- pyrony [~epic@173.151.41.156] has quit [Ping timeout: 252 seconds] 15:50:02 kilimanjaro [~kilimanja@unaffiliated/kilimanjaro] has joined #scheme 15:53:09 -!- Matt_S_G [~matt@188.51.121.47] has quit [Ping timeout: 258 seconds] 16:05:27 -!- kilimanjaro [~kilimanja@unaffiliated/kilimanjaro] has quit [Read error: Connection reset by peer] 16:07:34 saiko-chriskun [~chris-kun@fsf/member/saiko-chriskun] has joined #scheme 16:10:20 pyrony [~epic@office1.klout.com] has joined #scheme 16:12:15 -!- kuribas [~user@d54C43D8A.access.telenet.be] has quit [Read error: Connection reset by peer] 16:21:14 -!- homie [~levgue@xdsl-87-79-195-168.netcologne.de] has quit [Quit: ERC Version 5.3 (IRC client for Emacs)] 16:22:18 -!- pjb` is now known as pjb 16:27:53 homie [~levgue@xdsl-87-79-195-168.netcologne.de] has joined #scheme 16:32:04 -!- MichaelRaskin [~MichaelRa@195.178.216.22] has left #scheme 16:36:17 nteon [~nteon@c-98-210-195-105.hsd1.ca.comcast.net] has joined #scheme 16:39:48 -!- brandelune [~suzume@pl571.nas982.takamatsu.nttpc.ne.jp] has quit [Quit: brandelune] 16:44:20 Caleb-- [~caleb@bzq-79-176-213-60.red.bezeqint.net] has joined #scheme 16:45:17 monqy [~chap@pool-71-102-217-117.snloca.dsl-w.verizon.net] has joined #scheme 16:47:02 gremset_ [ubuntu@117.192.108.93] has joined #scheme 16:47:43 -!- gremset [ubuntu@117.202.64.60] has quit [Ping timeout: 264 seconds] 16:51:43 -!- realitygrill [~realitygr@adsl-76-226-103-171.dsl.sfldmi.sbcglobal.net] has quit [Quit: realitygrill] 16:57:30 EbiDK [~ebi@188.114.160.148] has joined #scheme 17:07:03 -!- EbiDK [~ebi@188.114.160.148] has quit [Read error: Connection reset by peer] 17:09:36 -!- Caleb-- [~caleb@bzq-79-176-213-60.red.bezeqint.net] has quit [] 17:11:19 kilimanjaro [~kilimanja@unaffiliated/kilimanjaro] has joined #scheme 17:13:20 realitygrill [~realitygr@adsl-76-226-103-171.dsl.sfldmi.sbcglobal.net] has joined #scheme 17:16:33 Euthydemus [~euthydemu@vaxjo4.213.cust.blixtvik.net] has joined #scheme 17:35:12 I'm having trouble finding it under "scheme define" in searches. For someone who knows CL, how would you define what "define" does within another define? It looks to me that, INSIDE a define, declares another lexical scope that everything following it is in; but I want to get a better understanding. 17:35:40 Modius: yes that's how it works 17:35:52 Is there a macroexpand I can use? 17:35:57 To look at it? 17:36:01 Modius, internal defines usually get transformed to letrecs. 17:36:05 Or is it a special that doesn't expand? (Looking at racket) 17:36:15 For someone who knows CL, (define (f x y z) (define (a b) c) ...) is like (defun f (x y z) (labels ((a (b) c)) ...)). 17:36:15 (define (f) (define x 3) x) (f) => 3 17:36:17 in Racket it becomes letrecs too. 17:36:43 rudybot, init racket 17:36:44 samth: your sandbox is ready 17:36:45 It looks too as though it congeals adjacent defines too right? 17:37:05 `Is transformed to LETREC' is not generally true of internal definitions. `Is equivalent to LETREC' is true of internal definitions. 17:37:10 I noticed when trying to put 2 defines of same name adjacent it grenades; but put a call between them it works. 17:37:10 Yes, Modius. 17:37:17 rudybot, eval (define (f x) (define x* (add1 x)) (define x** (add1 x*)) x**) 17:37:17 samth: Done. 17:37:23 rudybot, eval (f 7) 17:37:24 samth: ; Value: 9 17:37:37 Does anyone have a link to a spec most suitable for me to read for this behavior? 17:37:40 Riastradh, right, sorry. 17:37:46 Modius, a lambda body consists of a sequence of definitions followed by a sequence of expressions. 17:37:48 Just want to understand it 17:37:58 The sequence of definitions may be empty; the sequence of expressions may not. 17:38:03 Modius: r5rs? 17:38:03 RIastradh: Aah, so a lambda body can't have defines in middle? 17:38:13 no 17:38:21 If F is not a macro, then (define (g) (f) (define x 0) x) is not kosher. 17:38:46 -!- kephas [pierre@AStrasbourg-551-1-7-84.w92-141.abo.wanadoo.fr] has quit [Ping timeout: 260 seconds] 17:38:47 nowhere_man [pierre@AStrasbourg-551-1-24-249.w86-213.abo.wanadoo.fr] has joined #scheme 17:39:04 Racket allowed this though: (define (a) (define (b) 9) (+ 3 4) (define (c) 10) (b)) 17:39:19 That's a non-standard extension. 17:39:27 Understood 17:39:27 Modius, we try to be nice like that :) 17:41:27 bubo [~bubo@88-117-11-223.adsl.highway.telekom.at] has joined #scheme 17:41:44 gravicappa [~gravicapp@ppp91-77-220-2.pppoe.mtu-net.ru] has joined #scheme 17:44:49 MichaelRaskin [~MichaelRa@195.91.224.225] has joined #scheme 17:45:59 mippymoe89 [~mippymoe8@c-24-147-92-217.hsd1.vt.comcast.net] has joined #scheme 17:46:06 Riastradh: is there a way to get at the macro-expanded sexp structure? (SYNTAX form (NEAREST-REPL/ENVIRONMENT)) returns something I can pretty-print, but that seems to break some quotations, and it also includes #[block..] and some others. Due to the problem with compiling macro-defining macros, I thought I might pre-expand code before compiling it. 17:46:39 -!- nowhere_man [pierre@AStrasbourg-551-1-24-249.w86-213.abo.wanadoo.fr] has quit [Ping timeout: 252 seconds] 17:46:58 The output of the macro expander is scode, not S-expressions. Can you be more specific about what you're doing, what it does that you don't want, and what you do want? 17:47:05 nowhereman [pierre@AStrasbourg-551-1-63-151.w83-194.abo.wanadoo.fr] has joined #scheme 17:49:16 This time I spent two hours writing two lines of code 17:49:29 last assignment I spent 4 writing 3, so I guess it's an improvement! 17:49:43 Some people spend hours deleting code. 17:49:52 these assignments are horrible, though. Not hard, just that everything besides the very last technical code is written. 17:50:41 -!- wingo [~wingo@90.164.198.39] has quit [Ping timeout: 240 seconds] 17:51:05 Riastradh: I'm trying to get SSAX to work on MIT-Scheme. Interpreted the code works. When trying to compile it, I get an error about #[comment...] not being compilable. You mentioned this might be due to macro-defining-macros. So I thought I might pre-expand the file that doesn't compile, then compile the pre-expanded file. 17:59:12 This is the exact error message: ;Object cannot be dumped because it contains an environment: #[comment 17] 17:59:36 Top of stack: (primitive-fasdump '("evaluated" . #[comment 17]) "/home/nex/svn/scheme/SSAX/lib/SSAX.bin" #f) 18:00:37 Yes, what is going wrong with pretty-printing the value SYNTAX returns? 18:01:08 -!- bubo [~bubo@88-117-11-223.adsl.highway.telekom.at] has quit [Quit: leaving] 18:02:26 -!- kilimanjaro [~kilimanja@unaffiliated/kilimanjaro] has quit [Ping timeout: 276 seconds] 18:05:47 It prints things like #[block-declaration ..] and #[syntactic-closure ..], which cannot be read again. 18:07:12 Well, yes, you will need to decide yourself how to deal with the syntactic closures. You can pretty-print them to see what's inside them. 18:09:44 Can the MIT-Scheme debugger show me line numbers? I'd like to see *what* causes the problem with fasdumping the #[comment..] 18:10:41 Not usefully in this case. What happens is that the microcode starts to fasdump it, and then realizes `oops, there's something in here I can't reasonably fasdump (an interpreter environment)' and backs out to return an error to Scheme. 18:10:54 superjudge [~superjudg@c83-250-110-188.bredband.comhem.se] has joined #scheme 18:11:29 Hm.. I'll try to bifurcate the code then. 18:11:34 pdponze [~pdponze@144.85.121.191] has joined #scheme 18:12:16 What causes the problem is that the code has some embedded references to the system's environments. These can't usefully be dumped and loaded back in again, because there is no mechanism in place to either globalize names for environments or reinterpret them relative to the host into which you load them. 18:12:32 Bifurcate? 18:13:24 You have something of the form (define-syntax define-foo (syntax-rules () ((define-foo foo x y z) (define-syntax foo ...)))). The easiest way to do this by hand is probably just to replace (define-syntax foo ...) by '(define-syntax foo ...). 18:13:28 ijp [~user@host86-163-221-44.range86-163.btcentralplus.com] has joined #scheme 18:16:30 Bifurcate as in comment out half, try to compile, if it doesn't run, comment out one more half. I probably meant bisect, not bifurcate 18:16:52 heh 18:17:11 I know; I meant `bifurcate what?' and `why?'. 18:18:17 To find out which exact definition is causing the problem 18:18:30 It's whichever one involves a macro-defining macro. 18:19:47 The problem seems to be the *use* of the macro-defining macro, not the definition 18:19:53 Sorry if I misunderstood that 18:20:25 Well, yes. The problem is any macro definition generated by a macro. 18:21:14 I think I don't understand something here. Would it work to have one file that *defines* the macros, then one file that only *uses* them, and just load the definition file but only compile the using file? 18:21:27 Can I later load only the using file without the definition file? 18:21:43 -!- gravicappa [~gravicapp@ppp91-77-220-2.pppoe.mtu-net.ru] has quit [Ping timeout: 246 seconds] 18:22:55 If I understand correctly what you're saying, I think the answer is `yes'. 18:24:04 I'll rephrase. If I define a macro FOO in file foo.scm, and use that macro in file bar.scm, can I compile bar.scm and later (load "bar"), even if foo.scm isn't loaded (or compiled) at load-time of "bar"? 18:24:09 Why don't you show some real code, or at least a reduced case of it? It's very hard to say what code is doing in English. 18:24:14 gravicappa [~gravicapp@ppp91-77-173-225.pppoe.mtu-net.ru] has joined #scheme 18:26:50 kephas [pierre@AStrasbourg-551-1-46-202.w92-148.abo.wanadoo.fr] has joined #scheme 18:26:56 Maybe. You need a few `only's in your situation in order for the answer to be positive. 18:27:07 Example: Suppose foo.scm contains the following code: 18:27:16 (define (make-promise thunk) ...) 18:27:25 (define (force promise) ...) 18:27:35 (define-syntax delay (syntax-rules () ((DELAY expression) (MAKE-PROMISE (LAMBDA () expression] 18:27:52 -!- Fare [~Fare@ita4fw1.itasoftware.com] has quit [Quit: Leaving] 18:28:06 Then if bar.scm uses DELAY, it is necessary to have foo.scm loaded before using bar.scm. 18:29:48 -!- nowhereman [pierre@AStrasbourg-551-1-63-151.w83-194.abo.wanadoo.fr] has quit [Ping timeout: 250 seconds] 18:30:14 Won't DELAY "disappear" due to macro-expansion in the compiled code? 18:30:39 Yes. But that's irrelevant, because bar.scm also needs MAKE-PROMISE. 18:31:56 So I split foo.scm into foo.scm and foo-macros.scm, and only load foo-macros if I need to actually re-compile bar.scm 18:32:26 You can do that, yes. 18:34:10 Ok, I've done this for my problem. Now I run into the problem that multiple values seem to be compiled using the original semantics, not my redefinitions. Using (DECLARE (USUAL-INTEGRATIONS VALUES CALL-WITH-VALUES)) on top of my file should fix that, if I redefine VALUES and CALL-WITH-VALUES, right? 18:35:06 Yes. 18:37:53 -!- vilfredo [~wilfred@cpc11-woki6-2-0-cust239.6-2.cable.virginmedia.com] has quit [Ping timeout: 240 seconds] 18:38:52 -!- gravicappa [~gravicapp@ppp91-77-173-225.pppoe.mtu-net.ru] has quit [Ping timeout: 246 seconds] 18:40:02 bloop [43aa6450@gateway/web/freenode/ip.67.170.100.80] has joined #scheme 18:43:32 will someone run down the pros and cons of the most popular scheme object systems? http://community.schemewiki.org/?object-systems gives only a brief tour and I was wondering if anyone here had their own insights on, say, multiple dispatch systems vs. more Smalltalk-like single dispatch systems 18:47:27 (or does anyone here roll their own?) 18:48:32 -!- soveran [~soveran@186.19.214.247] has quit [Remote host closed the connection] 18:49:09 HG`` [~HG@p5DC05C17.dip.t-dialin.net] has joined #scheme 18:51:28 -!- HG` [~HG@p5DC05007.dip.t-dialin.net] has quit [Ping timeout: 246 seconds] 18:51:36 Riastradh: What does the declaration I mentioned do exactly? Tell the compiler to *not* use the normal integration for VALUES and CALL-WITH-VALUES for this file (even for code that is macro-expanded)? 18:52:48 Right. 18:54:00 soveran [~soveran@186.19.214.247] has joined #scheme 18:54:49 ymasory [~ymasory@mkb027.wlan.isc-seo.upenn.edu] has joined #scheme 19:00:01 gravicappa [~gravicapp@ppp91-77-223-245.pppoe.mtu-net.ru] has joined #scheme 19:01:23 djcb [~user@a88-112-253-18.elisa-laajakaista.fi] has joined #scheme 19:08:04 -!- pdlogan [~patrick@174-25-37-137.ptld.qwest.net] has left #scheme 19:09:41 czakian [~czakian@c-98-223-184-248.hsd1.in.comcast.net] has joined #scheme 19:13:04 -!- MichaelRaskin [~MichaelRa@195.91.224.225] has quit [Ping timeout: 240 seconds] 19:21:58 Hm.. I'm trying to reproduce a problem with multiple values, but it doesn't happen in my small test. Is there a way to trace when (the built-in) VALUES is called from compiled code? 19:22:21 Evaluated code works, but compiled code for some reason seems to call the original built-in CALL-WITH-VALUES. 19:24:26 kilimanjaro [~kilimanja@ip70-176-81-92.ph.ph.cox.net] has joined #scheme 19:24:32 -!- kilimanjaro [~kilimanja@ip70-176-81-92.ph.ph.cox.net] has quit [Changing host] 19:24:32 kilimanjaro [~kilimanja@unaffiliated/kilimanjaro] has joined #scheme 19:25:36 Can you show your code? 19:26:21 I'll upload it. A minute. 19:28:23 tupi [~david@139.82.89.24] has joined #scheme 19:54:11 -!- gravicappa [~gravicapp@ppp91-77-223-245.pppoe.mtu-net.ru] has quit [Remote host closed the connection] 19:54:40 -!- homie [~levgue@xdsl-87-79-195-168.netcologne.de] has quit [Quit: ERC Version 5.3 (IRC client for Emacs)] 19:57:30 -!- jeng [~jeng@74.194.1.28] has quit [Read error: Connection reset by peer] 19:58:28 -!- soveran [~soveran@186.19.214.247] has quit [Remote host closed the connection] 20:02:54 -!- djcb [~user@a88-112-253-18.elisa-laajakaista.fi] has quit [Read error: Connection reset by peer] 20:09:49 -!- HG`` [~HG@p5DC05C17.dip.t-dialin.net] has quit [Quit: Leaving.] 20:12:46 -!- realitygrill [~realitygr@adsl-76-226-103-171.dsl.sfldmi.sbcglobal.net] has quit [Read error: Connection reset by peer] 20:13:04 realitygrill [~realitygr@adsl-76-226-103-171.dsl.sfldmi.sbcglobal.net] has joined #scheme 20:15:53 -!- kilimanjaro [~kilimanja@unaffiliated/kilimanjaro] has quit [Ping timeout: 276 seconds] 20:16:02 tauntaun [~Crumpet@ool-44c72ce0.dyn.optonline.net] has joined #scheme 20:19:52 soveran [~soveran@186.19.214.247] has joined #scheme 20:21:50 -!- realitygrill [~realitygr@adsl-76-226-103-171.dsl.sfldmi.sbcglobal.net] has quit [Read error: Connection reset by peer] 20:22:08 realitygrill [~realitygr@adsl-76-226-103-171.dsl.sfldmi.sbcglobal.net] has joined #scheme 20:22:49 -!- superjudge [~superjudg@c83-250-110-188.bredband.comhem.se] has quit [Quit: superjudge] 20:26:17 sstrickl [~sstrickl@c-71-192-163-167.hsd1.nh.comcast.net] has joined #scheme 20:26:21 -!- realitygrill [~realitygr@adsl-76-226-103-171.dsl.sfldmi.sbcglobal.net] has quit [Client Quit] 20:31:16 mjonsson [~mjonsson@38.109.95.149] has joined #scheme 20:35:38 realitygrill [~realitygr@76.226.103.171] has joined #scheme 20:49:00 -!- soveran [~soveran@186.19.214.247] has quit [Remote host closed the connection] 20:51:38 djcb [~user@a88-112-253-18.elisa-laajakaista.fi] has joined #scheme 21:06:25 -!- turbofail [~user@c-107-3-149-149.hsd1.ca.comcast.net] has quit [Ping timeout: 260 seconds] 21:06:48 -!- pdponze [~pdponze@144.85.121.191] has left #scheme 21:10:49 djcb` [~user@a88-112-253-18.elisa-laajakaista.fi] has joined #scheme 21:12:07 -!- stis [~stis@1-1-1-39a.veo.vs.bostream.se] has left #scheme 21:12:21 -!- djcb [~user@a88-112-253-18.elisa-laajakaista.fi] has quit [Ping timeout: 252 seconds] 21:13:03 turbofail [~user@c-107-3-149-149.hsd1.ca.comcast.net] has joined #scheme 21:16:25 soveran [~soveran@186.136.173.14] has joined #scheme 21:22:07 Ober [~user@208.72.143.42] has joined #scheme 21:27:33 -!- pchrist [~spirit@gentoo/developer/pchrist] has quit [Quit: leaving] 21:27:50 -!- soveran [~soveran@186.136.173.14] has quit [Remote host closed the connection] 21:28:10 pchrist [~spirit@gentoo/developer/pchrist] has joined #scheme 21:33:33 soveran [~soveran@186.136.173.14] has joined #scheme 21:33:49 -!- djcb` [~user@a88-112-253-18.elisa-laajakaista.fi] has quit [Read error: Connection reset by peer] 21:35:59 -!- edw [~user@70-89-62-209-philadelphia-panjde.hfc.comcastbusiness.net] has quit [Ping timeout: 240 seconds] 21:42:25 -!- Ober is now known as phreqmod 21:42:37 -!- soveran [~soveran@186.136.173.14] has quit [Remote host closed the connection] 21:43:26 -!- phreqmod is now known as Ober 21:56:20 -!- alaricsp [~alaric@relief.warhead.org.uk] has quit [Read error: Operation timed out] 22:03:24 alaricsp [~alaric@relief.warhead.org.uk] has joined #scheme 22:07:07 -!- czakian [~czakian@c-98-223-184-248.hsd1.in.comcast.net] has quit [Ping timeout: 246 seconds] 22:15:02 -!- ckrailo [~ckrailo@208.86.167.249] has quit [Read error: Connection reset by peer] 22:15:39 ckrailo [~ckrailo@208.86.167.249] has joined #scheme 22:16:11 drdo [~user@91.205.108.93.rev.vodafone.pt] has joined #scheme 22:20:35 czakian [~czakian@c-98-223-184-248.hsd1.in.comcast.net] has joined #scheme 22:22:42 -!- ymasory [~ymasory@mkb027.wlan.isc-seo.upenn.edu] has quit [Ping timeout: 248 seconds] 22:24:58 dnolen [~davidnole@184.152.69.75] has joined #scheme 22:25:57 -!- mornfall [~mornfall@kde/developer/mornfall] has quit [Read error: Operation timed out] 22:26:02 -!- tauntaun [~Crumpet@ool-44c72ce0.dyn.optonline.net] has quit [Quit: Ex-Chat] 22:28:27 mornfall [~mornfall@anna2.fi.muni.cz] has joined #scheme 22:28:30 -!- mornfall [~mornfall@anna2.fi.muni.cz] has quit [Changing host] 22:28:30 mornfall [~mornfall@kde/developer/mornfall] has joined #scheme 22:31:31 mejja [~user@c-0eb9e555.023-82-73746f38.cust.bredbandsbolaget.se] has joined #scheme 22:33:13 anyone around? 22:35:04 Perhaps. 22:36:53 I'm trying to make a lagged fibonaccisequence as a stream 22:38:41 in essence, the stream should be: . point 2 and 3 of those is ok, and I have the base elements, but while the stream should start with the base elements, the first thing I'm to give out from the stream is the joint 22:40:55 I'm just at a loss at how I can have something in the stream, but not start the stream from that point 22:45:01 Articate: so you want a binding, but to don't want it bound until the value is created? 22:50:38 maybe I'm missing the question - but I thought that was the definition of a stream? 22:52:10 -!- ckrailo [~ckrailo@208.86.167.249] has quit [Read error: Connection reset by peer] 22:52:31 ckrailo [~ckrailo@208.86.167.249] has joined #scheme 22:52:47 Articate: yeah, it was worded badly 22:53:22 In any case, letrec/define both work for creating recursive stream 22:55:28 yeah. I think I have the stream part down. This assignment's just being strange 22:56:24 with the lagged part of the fibonacci sequence means I have to get k number of integers first, to do the actual fibonacci part of the stream with 22:56:49 just like how a fibonacci sequence has to be started with 0 and 1, this sequence has to be started with k integers 22:57:49 and I have that stream in the definition of a stream, since it's (define (make-LFS base-stream combiner)), but I still need to have that base stream on the start of the stream - but I think my problem was that I have to return value number x in the stream 23:03:39 Articate: something like (define (make-LFS ...) (define s (stream-append base-stream (combination s))) s) ? 23:04:05 ymasory [~ymasory@c-76-99-55-224.hsd1.pa.comcast.net] has joined #scheme 23:06:16 yeah, I also finited the base-stream, so I did (define s (stream-append (stream-segment base-stream k) 23:13:39 -!- aisa [~aisa@173-10-243-253-Albuquerque.hfc.comcastbusiness.net] has quit [Quit: aisa] 23:40:15 -!- mejja [~user@c-0eb9e555.023-82-73746f38.cust.bredbandsbolaget.se] has quit [Quit: ChatZilla 0.9.86.1 [Firefox 4.0.1/20110413222027]] 23:45:45 aisa [~aisa@173-10-243-253-Albuquerque.hfc.comcastbusiness.net] has joined #scheme 23:53:03 -!- realitygrill [~realitygr@76.226.103.171] has quit [Quit: realitygrill] 23:58:04 -!- mippymoe89 [~mippymoe8@c-24-147-92-217.hsd1.vt.comcast.net] has quit [Ping timeout: 246 seconds]