00:04:53 freakazo_ [~seanl@66.220.144.73] has joined #scheme 00:06:44 jcowan_ [~John@cpe-98-14-172-212.nyc.res.rr.com] has joined #scheme 00:07:01 -!- freakazoid [~seanl@66.220.144.73] has quit [Ping timeout: 260 seconds] 00:07:01 -!- freakazo_ is now known as freakazoid 00:07:14 -!- jcowan [~John@cpe-98-14-172-212.nyc.res.rr.com] has quit [Read error: Connection reset by peer] 00:07:52 I've got a list that looks like ((key value) (key value) (key value) ...), what's the best way to iterate through that, creating a new object for each list in the list and assigning those objects to a new list that's returned from the define-syntax? 00:08:06 (They're not really key value, but the idea's close enough for my purposes) 00:08:45 -!- jcowan_ is now known as jcowan 00:10:11 gtoast [~gtoast@99-100-70-120.lightspeed.sntcca.sbcglobal.net] has joined #scheme 00:10:17 This is to be a syntax-case macro? 00:10:45 syntax-rules 00:10:51 but I guess I can just do something like 00:11:16 Wait, no 00:11:23 Hold on, I think I might have it :) 00:13:15 (x ...) 00:14:09 -!- dnolen [~davidnole@cpe-98-14-92-234.nyc.res.rr.com] has quit [Quit: dnolen] 00:20:45 replore_ [~replore@203.152.213.161.static.zoot.jp] has joined #scheme 00:22:40 -!- MrFahrenheit [~RageOfTho@users-147-91.vinet.ba] has quit [Ping timeout: 258 seconds] 00:24:04 -!- samth is now known as samth_away 00:33:17 -!- jonrafkind [~jon@crystalis.cs.utah.edu] has quit [Ping timeout: 276 seconds] 00:33:42 -!- wtetzner [~wtetzner@c-24-218-217-69.hsd1.ma.comcast.net] has quit [Remote host closed the connection] 00:35:10 metasyntax [~taylor@c-98-214-251-184.hsd1.in.comcast.net] has joined #scheme 00:40:25 wtetzner [~wtetzner@c-24-218-217-69.hsd1.ma.comcast.net] has joined #scheme 00:40:54 Got it :) 00:41:26 Yeah, basically just (new foo x0) ... 00:41:39 -!- kk` [~kk@unaffiliated/kk/x-5380134] has quit [Quit: Leaving] 00:41:40 (list (new foo x0) ...) 00:41:42 rather 00:45:10 -!- elderK [~k@pdpc/supporter/active/elderk] has left #scheme 01:08:59 jrslepak_ [~jrslepak@c-71-233-151-135.hsd1.ma.comcast.net] has joined #scheme 01:10:14 -!- imphasing|home [~Alex@97-81-115-30.dhcp.gwnt.ga.charter.com] has quit [Ping timeout: 252 seconds] 01:12:46 -!- freakazoid [~seanl@66.220.144.73] has quit [Quit: Computer has gone to sleep.] 01:13:47 freakazoid [~seanl@66.220.144.73] has joined #scheme 01:13:54 :w 01:13:58 -!- soveran [~soveran@186.19.214.247] has quit [Remote host closed the connection] 01:15:48 -!- mjonsson [~mjonsson@38.109.95.133] has quit [Remote host closed the connection] 01:18:29 -!- EmmanuelOga [~emmanuel@190.244.27.236] has quit [Ping timeout: 252 seconds] 01:27:02 Okay, another one! 01:28:55 I've got a syntax that expands to a define-export (not sure if that's in regular scheme, but it's a define that the rest of our code can see). I'm printing some information out before the define that comes from a rather complex expression that I ALSO use inside of the define. I'd like to be able to do some sort of a (let ((value (big expression)) (begin (blah using value) (define-export name 01:28:56 (other stuff using value)))) 01:29:13 But since let is an expression context, I can't use the define in there 01:29:15 Is there a way around that? 01:30:18 Wrap the output in (let () ...) 01:30:23 so the define comes first in the inner let-block 01:30:39 how's that different? 01:30:48 Won't it still complain about the define being inside of the inner let block? 01:30:56 No. 01:31:00 Why not? 01:31:04 The body of a let is allowed to begin with defines. 01:31:08 so-called internal defines 01:31:46 So your problem is you want to have some side effects and then a definition. Wrap the definition and its body in an inner let, and all is well. 01:32:46 Doesn't seem to work, either way I do it 01:33:05 Tried putting the new let before and after my current one, and also directly before the define 01:34:51 Also, the let block that actually has the value I want to use is directly before a begin statement, as I do a few other things with the value before the define expression 01:37:27 -!- freakazoid [~seanl@66.220.144.73] has quit [Quit: Computer has gone to sleep.] 01:38:15 -!- metasyntax [~taylor@c-98-214-251-184.hsd1.in.comcast.net] has quit [Quit: WeeChat [quit]] 01:39:35 -!- rff [~rff@ip72-207-248-18.br.br.cox.net] has quit [Ping timeout: 276 seconds] 01:39:43 samth [~samth@c-24-128-51-174.hsd1.ma.comcast.net] has joined #scheme 01:41:15 PfhorSlayer: It depends on what that `define-export' is doing; your example, at least as written, won't work unless `define-export' returns some useful value (which `define'-like forms rarely do). 01:41:47 (That's besides the fact that it looks like a typo, since that code binds `begin' to that value.) 01:43:32 I mistyped; there should have been another closing paren after the "big expression" 01:45:26 btw, PfhorSlayer, great nick :) 01:45:32 yeah 01:45:51 gets those grey beards wagglin 01:45:57 (What's Pfhor?) 01:46:04 I just want to set "value" to the result of an expression, then use "value" as part of the stuff inside of the define-export 01:46:06 :< 01:46:12 gray beards? 01:46:17 I'm 25 :\ 01:46:20 PfhorSlayer: a jest 01:46:35 PfhorSlayer: In that case it looks like a different problem -- and it does make more sense. 01:46:47 :) 01:47:02 The main question is what you want to do with the result of `let' -- which as it looks right now, is "nothing". 01:47:26 I don't want to do anything with it. The define-export has side effects that take care of what I want to do with the expression in there 01:47:28 darkf [~darkf_dix@unaffiliated/darkf] has joined #scheme 01:47:45 Tach darkf :D 01:47:55 tach uk pyro- 01:47:58 PfhorSlayer: Right, but that effect is probably something that needs to be done on a global `name', which that code doesn't do. 01:48:00 Damnit, I forgot a step - before the define-export I want to do some operations using "value" 01:48:08 -!- pygospa [~Pygosceli@kiel-5f77bf47.pool.mediaWays.net] has quit [Read error: Operation timed out] 01:48:11 pyro-: I have become more enlightened by embarking on the path of the Schemer 01:48:22 :-) 01:48:24 Because the let statement defines its own local environment? 01:48:37 how do you guys feel about Racket? 01:48:53 everyone here feels different :D 01:49:02 Might it be easier then to use set! and define a temporary outside of this define-syntax that I can set and then use over and over? 01:49:29 ok how do you feel about it pyro- :D 01:49:36 PfhorSlayer: My best guess is that you want to change the generated code. 01:49:41 -!- samth [~samth@c-24-128-51-174.hsd1.ma.comcast.net] has quit [Ping timeout: 240 seconds] 01:49:48 PfhorSlayer: Something like this: http://tmp.barzilay.org/x 01:49:54 I suppose it might be easier if I just pasted what I'm trying to do :> 01:50:13 Ah! 01:50:23 Let me try that - that'd do what I want 01:50:45 I can't shake the feeling that it seems a bit toyish darkf. But I know that people have been able to get stuff done with it :D 01:51:31 PfhorSlayer: Is that a home-cooked scheme implementation? Because some implementations have things that make what you write work. 01:51:43 rudybot: (require racket/splicing) 01:51:44 eli: Done. 01:51:44 yes I am not sure how I think about its library I was considering implementing my own scheme pyro- :) 01:51:51 Like everything else in scheme, the last statement is going to end up being what is bound to the name I define-export, right? 01:51:59 rudybot: (splicing-let ([x 1]) (define foo (list x x x))) 01:52:00 eli: Done. 01:52:01 eli: It's our company's internal scripting engine 01:52:03 well everyone implements their own ;) 01:52:05 rudybot: foo 01:52:06 eli: ; Value: (1 1 1) 01:52:10 :D 01:52:32 pygospa [~Pygosceli@kiel-5f768ad3.pool.mediaWays.net] has joined #scheme 01:53:02 PfhorSlayer: If the engine was implemented on top of racket, for example, then the above would work too... 01:53:28 Otherwise, you'll need to refactor the code the way I did -- or change the engine to allow such hooks. 01:53:37 (Which are generally pretty difficult to get right...) 01:54:05 I'm not touching that code :) 01:54:13 pyro-: What is it exactly that making it look toyish? 01:54:16 The way you rewrote it did work, thank you! :D 01:54:20 s/making/makes/ 01:54:30 PfhorSlayer: ThereYouGo... 01:59:12 smtlaissezfaire [~smtlaisse@76.15.192.54] has joined #scheme 01:59:15 sorry eli, I can't put my finger on it. Not a very fair or useful critisism then :D when i tried to do graphics and networking things I did find those libraries somewhat incomplete 02:00:27 rff [~rff@ip72-207-248-18.br.br.cox.net] has joined #scheme 02:00:27 pyro-: That's a pretty subjectively load claim... For GUI, at least, it is extremely complete. Networking is also pretty complete although there are improvements that could be made to some specific protocol libraries... 02:00:45 But it is most definitely not a toy. 02:01:41 okay :-) 02:01:54 *qu1j0t3* has to bat down 10 year old assessments of "scheme isn't production ready" every 2nd day. 02:02:54 eli: would you suggest I attempt writing a website in racket? :) 02:03:00 *eli* has two decades experience with such batting... 02:03:26 eli: and you still have energy left! impressive 02:03:38 darkf: Absolutely. For both meaning of "write a website" that you might mean there. 02:03:45 qu1j0t3: It comes and goes... 02:03:55 darkf: that seems to be something that's rather well written up on the Racket web site. 02:04:03 I mostly avoid pushing racket when being asked, but "toy" comments are just bad... 02:04:09 darkf: so yeah, i concur with the venerable eli 02:04:46 darkf: To be specific, one meaning of "write a website" is to generate the content -- and the racket web sites are all created in (surprise) racket. 02:05:00 There's a whole bunch of code that people use to do it. 02:05:36 And the other meaning would be to run the racket web server, for example to more conveniently generate content dynamically. For that, see the web-server tutorial that describes that. 02:06:01 that tutorial is here: http://docs.racket-lang.org/continue/ 02:07:08 -!- masm [~masm@2.80.165.231] has quit [Read error: Connection reset by peer] 02:13:35 eli: yeah -- I was thinkign about writing the backend of a wiki in it :) 02:13:45 I tried once but I gave up after dealing with the url-request struct 02:14:12 Anyone know what "#\~" and "#\#" mean? 02:14:20 namely, I couldn't find a way to print all of its members so I could easily tell what to use 02:14:25 without looking at the docs or whatnot 02:14:45 they are the character literals for ~ and # PfhorSlayer 02:15:15 Ah, gotcha 02:15:50 #\ returns a character literal of the character immediately after it? 02:16:33 yeah pretty much. i'm not sure about your return terminology. i think #\ is syntac rather than a procedure 02:16:40 syntax* 02:16:49 Right, sorry 02:17:07 *PfhorSlayer* lives in the land of C++ most of the time :) 02:17:25 Not that what I said would have been any more correct there, but here we are. 02:17:50 PfhorSlayer: right, -is- a character literal. 02:21:36 What's the function to see if a name is bound? 02:22:05 darkf: right, that's the sort of things that lead to my toyish comment. there's missing operations on all the types. of course the operations are probably missing becuase i'm trying to use them the wrong way :D it's probably only a toy to me becuase i don't know what i'm doing :D 02:22:09 darkf: I actually started implementing a wiki recently. 02:22:38 But I'm more interested in the front. 02:23:10 Re printing urls: `url->string' should just return the url as a (printable) string. 02:24:13 pyro-: That specific library, the url one, definitely needs more work. But that's overall a tiny corner of the whole racket codebase. 02:24:46 yes it's big 02:27:38 samth [~samth@c-24-128-51-174.hsd1.ma.comcast.net] has joined #scheme 02:29:42 When trying to google stuff, is there a better keyword to use than "scheme lisp"? 02:29:58 I'm tending to get a lot of results completely unrelated to scheme or lisp 02:30:04 eli: not just that though, I want to know what members the struct has so that I know which one to use (without consulting the docs) 02:37:16 eli: is there anything like that or should I make one using the reflection lib? 02:41:34 realitygrill [~realitygr@76.226.212.207] has joined #scheme 02:48:06 jonrafkind [~jon@jonr5.dsl.xmission.com] has joined #scheme 02:49:57 freakazoid [~seanl@c-67-164-106-36.hsd1.ca.comcast.net] has joined #scheme 02:52:47 PfhorSlayer: No, Google sucks at that. 02:55:16 leo2007 [~leo@119.255.41.67] has joined #scheme 02:55:59 darkf, if you have the name of the struct, then you can write a useful macro to do that 02:56:14 if all you have is the struct instance, you need to use reflection 03:13:43 -!- turbofail [~user@c-107-3-149-149.hsd1.ca.comcast.net] has quit [Ping timeout: 260 seconds] 03:18:32 firefly_ [~firefly@zhaozhou.dcollins.info] has joined #scheme 03:18:50 drwho [~drwho@c-68-81-125-196.hsd1.pa.comcast.net] has joined #scheme 03:37:30 EmmanuelOga [~emmanuel@190.244.27.236] has joined #scheme 03:47:49 -!- tali713 [~tali713@c-75-72-220-197.hsd1.mn.comcast.net] has quit [Read error: Operation timed out] 03:49:38 -!- leo2007 [~leo@119.255.41.67] has quit [Ping timeout: 256 seconds] 03:54:14 -!- jrslepak_ [~jrslepak@c-71-233-151-135.hsd1.ma.comcast.net] has quit [Quit: This computer has gone to sleep] 03:55:53 samth: cool. I can probably get the name of the struct from it (I think it's Request or something like that). What's the macro though? 03:56:31 darkf, i meant that you can write a macro to do it, using the static information bound to the name of the structure 03:56:59 ah :) 04:20:18 PfhorSlayer: There is no standard procedure to see if a name is bound. 04:24:02 tali713 [~tali713@c-75-72-220-197.hsd1.mn.comcast.net] has joined #scheme 04:25:29 -!- dsmith [~dsmith@cpe-184-56-129-232.neo.res.rr.com] has quit [Ping timeout: 244 seconds] 04:26:51 -!- realitygrill [~realitygr@76.226.212.207] has quit [Quit: realitygrill] 04:33:25 dnolen [~davidnole@cpe-98-14-92-234.nyc.res.rr.com] has joined #scheme 04:34:46 -!- dnolen [~davidnole@cpe-98-14-92-234.nyc.res.rr.com] has quit [Client Quit] 04:48:19 -!- araujo [~araujo@gentoo/developer/araujo] has quit [Quit: Leaving] 04:57:30 dsmith [~dsmith@cpe-184-56-129-232.neo.res.rr.com] has joined #scheme 04:59:54 X-Scale [email@sgi-ultra64.broker.freenet6.net] has joined #scheme 05:00:05 -!- samth [~samth@c-24-128-51-174.hsd1.ma.comcast.net] has quit [Ping timeout: 240 seconds] 05:04:44 leo2007 [~leo@119.255.41.67] has joined #scheme 05:09:31 -!- rff [~rff@ip72-207-248-18.br.br.cox.net] has quit [Ping timeout: 255 seconds] 05:15:34 -!- darkf [~darkf_dix@unaffiliated/darkf] has quit [Quit: Leaving] 05:22:05 kilimanjaro [~kilimanja@unaffiliated/kilimanjaro] has joined #scheme 05:22:21 luist_ [~luist@189.59.186.217.dynamic.adsl.gvt.net.br] has joined #scheme 05:23:17 -!- luist [~luist@189.59.164.169] has quit [Ping timeout: 240 seconds] 05:23:17 -!- luist_ is now known as luist 05:23:51 wolfpython [~wolf@221.226.209.42] has joined #scheme 05:27:03 -!- freakazoid [~seanl@c-67-164-106-36.hsd1.ca.comcast.net] has quit [Quit: Computer has gone to sleep.] 05:31:18 -!- jcowan [~John@cpe-98-14-172-212.nyc.res.rr.com] has left #scheme 05:36:29 -!- wolfpython [~wolf@221.226.209.42] has quit [Ping timeout: 252 seconds] 05:57:27 -!- drwho [~drwho@c-68-81-125-196.hsd1.pa.comcast.net] has quit [Ping timeout: 244 seconds] 05:57:27 gravicappa [~gravicapp@ppp91-77-218-135.pppoe.mtu-net.ru] has joined #scheme 06:04:22 -!- EmmanuelOga [~emmanuel@190.244.27.236] has quit [Quit: WeeChat 0.3.6-rc2] 06:10:26 -!- Precious1etals [~Heart@pool-74-96-80-187.washdc.fios.verizon.net] has quit [Quit: Reconnecting] 06:10:40 PreciousMetals [~Heart@unaffiliated/colours] has joined #scheme 06:13:04 -!- jonrafkind [~jon@jonr5.dsl.xmission.com] has quit [Ping timeout: 258 seconds] 06:15:31 araujo [~araujo@190.73.44.29] has joined #scheme 06:15:33 -!- araujo [~araujo@190.73.44.29] has quit [Changing host] 06:15:33 araujo [~araujo@gentoo/developer/araujo] has joined #scheme 06:25:51 Operaist2 [~OperaIst@ppp-110-168-74-102.revip5.asianet.co.th] has joined #scheme 06:26:01 is there an equivalent of main() in scheme?? 06:31:40 jewel [~jewel@196-215-117-72.dynamic.isadsl.co.za] has joined #scheme 06:32:00 Operaist2: Not in general. 06:32:12 Operaist2: Some implementations support it if given certain command-line options. 06:33:50 i have written some procedure in scheme and i want to use time to time it, how would i do that? 06:39:10 Operaist2: That depends on the implementation, but, you can probably use (time (func)). 06:39:18 where func is the function you're calling. 06:43:49 it's a recursive implementation solution of "how many way can you change a dollar" 06:43:58 i want to compare it with different implementations 06:44:14 and in general i want to test the speed of my procedures etc 06:44:18 im using mit/scheme 06:51:30 I haven't used MIT Scheme, but I'd like to think that will work there too. 07:02:51 it says unbound variable time... 07:05:24 Hmm. 07:05:28 That is a shame. 07:05:32 I tested using Racket. 07:08:53 -!- jewel [~jewel@196-215-117-72.dynamic.isadsl.co.za] has quit [Ping timeout: 240 seconds] 07:10:33 you can use with-timings http://web.mit.edu/scheme_v9.0.1/doc/mit-scheme-ref/Machine-Time.html 07:10:44 Awesomes. 07:19:25 how does it work lol? 07:21:07 Operaist2: Assuming the function you are timing takes no arguments, then: (with-timings func (lambda (run-time gc-time real-time) ...)) 07:22:30 -!- leo2007 [~leo@119.255.41.67] has quit [Quit: rcirc on GNU Emacs 24.0.91.1] 07:24:32 -!- smtlaissezfaire [~smtlaisse@76.15.192.54] has quit [Quit: smtlaissezfaire] 07:25:26 it says the object 292 (the result of the procedure) is not applicable 07:25:43 even though im not doing anything with it 07:28:50 Operaist2: func, not (func). 07:29:40 oh wow how do you know thats the mistake? 07:29:46 are you a wizard? 07:30:02 Operaist2: The error message says it all. :-P 07:34:47 why would putting the procedure in () make it not applicable? 07:34:56 i thought (3) = 3 07:35:04 no 07:35:06 No. 07:35:19 3 is 3, '3 is 3, but (3) is an error 07:35:21 -!- pchrist_ [~spirit@static062038158100.dsl.hol.gr] has quit [Quit: leaving] 07:35:53 pchrist [~spirit@gentoo/developer/pchrist] has joined #scheme 07:36:33 ... because 3 is not a function 07:37:02 .. but couldn't 3 be a function that returns '3', whatever '3' is? :) 07:37:08 ente: No. 07:37:25 rudybot: (define (3) 3) 07:37:25 cky: your sandbox is ready 07:37:26 cky: error: eval:1:9: define: bad syntax (not an identifier for procedure name, and not a nested procedure form) at: 3 in: (define (3) 3) 07:37:33 rudybot: (define (|3|) 3) 07:37:33 cky: Done. 07:37:39 rudybot: (|3|) 07:37:39 cky: ; Value: 3 07:37:49 I meant theory, not scheme :-) 07:37:53 :-P 07:38:09 I probably dreamed about algebra tonight^Win the last few hours 07:38:31 ente, if that were possible, it would probably be neccessary to quote numbers 07:39:13 just woke up, sorry :-) 07:39:32 (define (3) '3) vs (define (self) self) 07:40:18 how would i use with-timings to run a procedure say 1000 times so i can get a good number on the time? 07:40:21 iirc, we still haven't defined what a number really is :) 07:40:27 without getting 1000 evaluation printout 07:40:48 Operaist2: (with-timings (lambda () (dotimes 1000 (func))) ...) 07:40:53 Assuming MIT Scheme has dotimes. ;-) 07:40:59 (Which, it probably doesn't.) 07:41:21 why is dotimes syntax? 07:41:36 easy to add :) 07:41:50 aspect: I fail, dotimes doesn't even have that syntax. 07:41:57 aspect: (Was going for what CL has.) 07:42:13 aspect: But in CL, yes, dotimes is a macro. 07:42:20 what's CL? 07:42:21 they could as well be procedures that return themselves 07:42:24 Operaist2: Common Lisp. 07:42:25 as opposed to: (define (dotimes n f) (if (> 0 n) (begin (f) (dotimes (- 1 n) f)))) 07:42:29 and can i use dotimes in mit/scheme? 07:42:34 Operaist2: No. 07:42:46 if you define it, you can 07:42:48 Operaist2: I was just being lazy and not specifying how to do something 1000 times. 07:43:00 so i have to define it myself? 07:43:27 implementation defined, it seems :F 07:43:27 there might be another builtin you could use to achieve the same effect .. 07:43:31 also normally when you run it, it evaluates to something and print it out, i don't want it to do that a thousand times, so how do i stop it? 07:43:48 but why would you not simply do it yourself? :) 07:47:12 maybe the function is already recursive! 07:47:31 grah 07:47:34 sorry :-D 07:51:53 good morning ente 07:53:23 -!- kilimanjaro [~kilimanja@unaffiliated/kilimanjaro] has quit [Quit: Leaving] 08:09:11 snizzo [~quassel@iglu.cc.uniud.it] has joined #scheme 08:13:03 hi C-Keen 08:23:22 drwho [~drwho@c-68-81-125-196.hsd1.pa.comcast.net] has joined #scheme 08:50:29 wingo [~wingo@90.164.198.39] has joined #scheme 09:14:24 djcb [djcb@nat/nokia/x-qrcpumqidtmfigak] has joined #scheme 09:29:43 -!- Euthy [~euthy@unaffiliated/euthydemus] has quit [Ping timeout: 258 seconds] 09:30:01 Euthy [~euthy@unaffiliated/euthydemus] has joined #scheme 09:32:33 -!- taylanub [taylanub@pingas.org] has left #scheme 09:35:11 -!- pygospa [~Pygosceli@kiel-5f768ad3.pool.mediaWays.net] has quit [Ping timeout: 248 seconds] 09:37:04 pygospa [~Pygosceli@kiel-d9bfc711.pool.mediaWays.net] has joined #scheme 10:00:06 -!- zedstar [~john@fsf/member/zedstar] has quit [Remote host closed the connection] 10:02:32 rstandy [~rastandy@93-63-185-248.ip29.fastwebnet.it] has joined #scheme 10:03:19 -!- Operaist2 [~OperaIst@ppp-110-168-74-102.revip5.asianet.co.th] has quit [Read error: Connection reset by peer] 10:09:04 zedstar [~john@cpc3-haye16-2-0-cust189.haye.cable.virginmedia.com] has joined #scheme 10:09:04 -!- zedstar [~john@cpc3-haye16-2-0-cust189.haye.cable.virginmedia.com] has quit [Changing host] 10:09:04 zedstar [~john@fsf/member/zedstar] has joined #scheme 10:36:00 -!- wingo [~wingo@90.164.198.39] has quit [Ping timeout: 258 seconds] 10:38:08 -!- replore_ [~replore@203.152.213.161.static.zoot.jp] has quit [Remote host closed the connection] 10:39:13 replore [~replore@203.152.213.161.static.zoot.jp] has joined #scheme 10:40:19 -!- replore [~replore@203.152.213.161.static.zoot.jp] has quit [Remote host closed the connection] 10:47:12 -!- otakutomo [~otakutomo@KD027083117212.ppp-bb.dion.ne.jp] has quit [Ping timeout: 248 seconds] 10:50:55 otakutomo [~otakutomo@KD027083117212.ppp-bb.dion.ne.jp] has joined #scheme 11:10:43 -!- snizzo [~quassel@iglu.cc.uniud.it] has quit [Remote host closed the connection] 11:11:25 -!- drwho [~drwho@c-68-81-125-196.hsd1.pa.comcast.net] has quit [Ping timeout: 260 seconds] 11:14:06 masm [~masm@bl19-168-236.dsl.telepac.pt] has joined #scheme 11:14:47 -!- gravicappa [~gravicapp@ppp91-77-218-135.pppoe.mtu-net.ru] has quit [Ping timeout: 252 seconds] 11:15:39 snizzo [~quassel@iglu.cc.uniud.it] has joined #scheme 11:17:45 -!- snizzo [~quassel@iglu.cc.uniud.it] has quit [Remote host closed the connection] 11:27:46 -!- luist [~luist@189.59.186.217.dynamic.adsl.gvt.net.br] has quit [Quit: luist] 11:28:48 gravicappa [~gravicapp@ppp91-77-182-185.pppoe.mtu-net.ru] has joined #scheme 11:34:52 X-Scale` [email@sgi-ultra64.broker.freenet6.net] has joined #scheme 11:35:04 -!- X-Scale [email@sgi-ultra64.broker.freenet6.net] has quit [Read error: Connection reset by peer] 11:35:15 drwho [~drwho@c-68-81-125-196.hsd1.pa.comcast.net] has joined #scheme 11:55:11 rff [~rff@ip72-207-248-18.br.br.cox.net] has joined #scheme 12:00:37 -!- leppie [~lolcow@196-215-71-176.dynamic.isadsl.co.za] has quit [Ping timeout: 240 seconds] 12:03:09 -!- rstandy [~rastandy@93-63-185-248.ip29.fastwebnet.it] has quit [Read error: Operation timed out] 12:09:41 jrslepak_ [~jrslepak@c-71-233-151-135.hsd1.ma.comcast.net] has joined #scheme 12:19:55 MrFahrenheit [~RageOfTho@users-147-91.vinet.ba] has joined #scheme 12:20:03 leo2007 [~leo@123.114.42.2] has joined #scheme 12:24:06 -!- rff [~rff@ip72-207-248-18.br.br.cox.net] has quit [Ping timeout: 258 seconds] 12:24:59 ijp [~user@host86-182-155-249.range86-182.btcentralplus.com] has joined #scheme 12:27:37 replore_ [~replore@ntkngw304073.kngw.nt.ftth.ppp.infoweb.ne.jp] has joined #scheme 12:30:38 soveran [~soveran@186.19.214.247] has joined #scheme 12:34:59 -!- drwho [~drwho@c-68-81-125-196.hsd1.pa.comcast.net] has quit [Ping timeout: 252 seconds] 12:36:39 -!- X-Scale` is now known as X-Scale 12:37:26 homie [~levgue@xdsl-78-35-136-247.netcologne.de] has joined #scheme 12:37:52 wbooze [~levgue@xdsl-78-35-136-247.netcologne.de] has joined #scheme 12:39:05 -!- jrslepak_ [~jrslepak@c-71-233-151-135.hsd1.ma.comcast.net] has quit [Quit: This computer has gone to sleep] 12:47:07 leppie [~lolcow@196-215-36-197.dynamic.isadsl.co.za] has joined #scheme 13:01:51 drwho [~drwho@c-68-81-125-196.hsd1.pa.comcast.net] has joined #scheme 13:08:53 coderdad [~coderdad@wsip-70-164-198-85.ok.ok.cox.net] has joined #scheme 13:13:22 ahinki [~chatzilla@212.99.10.150] has joined #scheme 13:21:20 -!- otakutomo [~otakutomo@KD027083117212.ppp-bb.dion.ne.jp] has quit [Ping timeout: 260 seconds] 13:22:18 imphasing [~Alex@97-81-115-30.dhcp.gwnt.ga.charter.com] has joined #scheme 13:25:58 -!- MrFahrenheit [~RageOfTho@users-147-91.vinet.ba] has quit [Read error: Connection reset by peer] 13:26:18 MrFahrenheit [~RageOfTho@users-147-91.vinet.ba] has joined #scheme 13:28:19 realitygrill [~realitygr@76.226.212.207] has joined #scheme 13:28:41 Can a scheme macro be fully expanded before evaluation? As in, is the expansion of a macro soley dependant upon the form of the macro call? 13:29:05 Or could a macro require something be evaluated before it could fully expand? 13:29:18 tupi [~david@189.67.243.118] has joined #scheme 13:35:50 otakutomo [~otakutomo@KD027083117212.ppp-bb.dion.ne.jp] has joined #scheme 13:36:39 luist [~luist@189.101.4.123] has joined #scheme 13:39:44 smtlaissezfaire [~smtlaisse@76.15.192.54] has joined #scheme 13:45:07 imphasing: I dont think so, I sometime hit such 'errors' :) 13:47:56 well, I think it is because my primitive form is not correctly specified, so psyntax pukes ;P 13:49:30 -!- smtlaissezfaire [~smtlaisse@76.15.192.54] has quit [Quit: smtlaissezfaire] 13:53:08 -!- gnomon [~gnomon@CPE0022158a8221-CM000f9f776f96.cpe.net.cable.rogers.com] has quit [Ping timeout: 256 seconds] 13:54:47 gnomon [~gnomon@CPE0022158a8221-CM000f9f776f96.cpe.net.cable.rogers.com] has joined #scheme 13:59:57 -!- Axioplase is now known as Axioplase_ 14:11:59 I'm having a hard time reasoning about how to seperate macro expansion from evaluation, when my macros are simply a lambda that makes an AST to return :/ 14:12:26 I have to evaluate the lambda to get the AST back, but I don't want to evaluate anything besides stuff inside macros :< 14:12:42 And this would also allow arbitrary execution of code inside macro expansion 14:12:47 Which seems a little odd :/ 14:14:25 I could have like, IO and stuff going on inside a macro expansion 14:17:39 EmmanuelOga [~emmanuel@190.244.27.236] has joined #scheme 14:19:13 smtlaissezfaire [~smtlaisse@76.15.192.54] has joined #scheme 14:19:51 imphasing: Separating expansion from evaluation is very easy. 14:20:48 The main thing to understand for that is that `define-syntax' is doing the required magic of creating a binding in what looks like runtime code that is actually evaluator during expansion. 14:24:58 define-syntax is way more high level than anything I could accomplish right now :( 14:25:02 icrusade [~elias@e179005210.adsl.alicedsl.de] has joined #scheme 14:25:04 I just want lexical scope 14:25:14 seperating macro expansion from evaluation seems like the only way I can do that 14:26:26 snizzo [~quassel@iglu.cc.uniud.it] has joined #scheme 14:26:41 oiiii [~oiiii@82.71.241.25] has joined #scheme 14:28:40 imphasing: I dont really know, all this stuff confuse me too :) 14:32:53 SeySayux [~SeySayux@unaffiliated/seysayux] has joined #scheme 14:33:15 What's the major difference between CL and Scheme? 14:37:48 imphasing: The particular feature of `define-syntax' that I'm talking about is easy to understand, and independent of hygiene. (Having it makes hygiene easier, but as a feature it is still independent.) 14:38:32 imphasing: Here's an example for a bad macro system that expands code by working on source files and spitting out expanded code: http://tmp.barzilay.org/x 14:39:27 It implements symbolic macros, therefore no hygiene in sight, but the way it deals with `defmacro' should explain what I said about `define-syntax' above. 14:40:08 eli: Thanks, I'll take a look 14:40:12 -!- copumpkin [~pumpkin@unaffiliated/pumpkingod] has quit [Quit: Computer has gone to sleep.] 14:52:12 rstandy [~rastandy@93-63-185-248.ip29.fastwebnet.it] has joined #scheme 14:56:48 f8l [~f8l@77-253-155-248.adsl.inetia.pl] has joined #scheme 14:59:37 rstandy` [~rastandy@93-63-185-248.ip29.fastwebnet.it] has joined #scheme 15:01:08 -!- rstandy` [~rastandy@93-63-185-248.ip29.fastwebnet.it] has quit [Client Quit] 15:01:18 rstandy` [~rastandy@93-63-185-248.ip29.fastwebnet.it] has joined #scheme 15:01:24 -!- samth_away is now known as samth 15:02:15 -!- rstandy [~rastandy@93-63-185-248.ip29.fastwebnet.it] has quit [Quit: ERC Version 5.3 (IRC client for Emacs)] 15:02:16 -!- rstandy` [~rastandy@93-63-185-248.ip29.fastwebnet.it] has quit [Remote host closed the connection] 15:05:33 copumpkin [~pumpkin@17.45.135.20] has joined #scheme 15:05:33 -!- copumpkin [~pumpkin@17.45.135.20] has quit [Changing host] 15:05:33 copumpkin [~pumpkin@unaffiliated/pumpkingod] has joined #scheme 15:12:18 kuribas [~user@d54C436B1.access.telenet.be] has joined #scheme 15:12:53 -!- pygospa [~Pygosceli@kiel-d9bfc711.pool.mediaWays.net] has quit [Disconnected by services] 15:13:04 pygospa [~Pygosceli@kiel-4dbed66d.pool.mediaWays.net] has joined #scheme 15:16:35 freakazoid [~seanl@c-67-164-106-36.hsd1.ca.comcast.net] has joined #scheme 15:24:02 -!- freakazoid [~seanl@c-67-164-106-36.hsd1.ca.comcast.net] has quit [Quit: Computer has gone to sleep.] 15:27:08 freakazoid [~seanl@c-67-164-106-36.hsd1.ca.comcast.net] has joined #scheme 15:45:10 Are syntax objects first class objects in schemes? This might be implementation dependant.. 15:45:17 but can they be itnerleaved with evaluation? 15:45:26 s/itnerleaved/interleaved 15:46:00 Or are those objects only used during compilation/expansion? 15:46:06 -!- ahinki [~chatzilla@212.99.10.150] has quit [Quit: ChatZilla 0.9.87 [Firefox 8.0/20111102223350]] 15:47:01 -!- icrusade [~elias@e179005210.adsl.alicedsl.de] has left #scheme 15:47:44 imphasing: One programs's compile-time is another's runtime. 15:48:13 So I can make a list of syntax objects? 15:48:14 I recommend Matthew Flatt's excellent paper: Composable and Compilable Macros: You Want it When? 15:48:47 The specific concept you want to understand here is called phasing, or phase separation. 15:48:57 imphasing: You certainly can. 15:49:14 Syntax objects are just data structures representing code. 15:49:35 Are they ever just the AST itself? 15:49:57 You can manipulate them inside macros, in which case you want to generate valid code in the end. 15:50:20 Or you can manipulate another program's syntax at run-time, if you're writing a compiler, for instance. 15:50:55 imphasing: Syntax objects are data structures. You can use them to represent an AST (that's their most common use case). 15:51:08 Or you create some out of thin air for other purposes. 15:51:33 rudybot: (datum->syntax #'here '(dummy syntax object that did not come from a program)) 15:51:33 stamourv: your sandbox is ready 15:51:34 stamourv: ; Value: # 15:51:34 Hm, I see.. so they're basically a wrapper around AST objects that the expansion/compilation phase works with? 15:51:55 Pretty much. 15:52:18 Why the wrapping though? Is there extra information besides what's in the AST that's needed during that phase? 15:52:20 And since they're data structures, they can store extra info, such as source location. 15:52:28 -!- gtoast [~gtoast@99-100-70-120.lightspeed.sntcca.sbcglobal.net] has quit [Quit: gtoast] 15:52:40 -!- XTL [~XTL@dsl-olubrasgw2-fe6af800-251.dhcp.inet.fi] has quit [Ping timeout: 258 seconds] 15:52:42 Or in Racket's case, arbitrary data as well. 15:53:06 imphasing: Yes, the extra data is the point. The most important meta-data is binding information. 15:53:31 Not lexical binding information though? Because that's only available at runtime.. 15:53:35 XTL [~XTL@dsl-olubrasgw2-fe6af800-251.dhcp.inet.fi] has joined #scheme 15:53:38 What could be bound before runtime though? :? 15:53:42 Say you have two pieces of code: `(let ([x 10]) x)' and `(let ([x 20]) x)'. 15:54:22 If you look at the syntax objects for each, you will find that the body of both `let's is a syntax object representing the identifier `x'. 15:55:34 But these really are different `x's, syntax objects store the binding information (where each `x' has been bound), so that macros can manipulate them safely, without ever causing confusion about which `x' is which. 15:56:06 imphasing: The point of lexical scope is that binding can be determined statically, without running the program. 15:56:56 rudybot: (define x1 (let ([x 10]) #'x)) 15:56:56 samth: your racket/init sandbox is ready 15:56:57 samth: Done. 15:57:03 rudybot: (define x2 (let ([x 20]) #'x)) 15:57:03 samth: Done. 15:57:09 With lexical scope, you can look at the syntax of a program, without any compilation or evaluation whatsovever, and figure out which identifier is bound where. 15:57:13 rudybot: (free-identifier=? x1 x2) 15:57:13 samth: ; Value: #f 15:57:17 rudybot: (bound-identifier=? x1 x2) 15:57:18 samth: ; Value: #f 15:57:25 (Macros can confuse matters a bit, but let's not get into that for now.) 15:57:30 -!- freakazoid [~seanl@c-67-164-106-36.hsd1.ca.comcast.net] has quit [Quit: Computer has gone to sleep.] 15:57:37 (just to illustrate stamourv's point) 15:57:39 -!- drwho [~drwho@c-68-81-125-196.hsd1.pa.comcast.net] has quit [Ping timeout: 258 seconds] 15:57:46 imphasing: What samth said. 15:58:05 What does #'x do? 15:58:42 it creates a syntax object with the contents 'x and scope info taken from where you wrote it 15:59:00 I thought bindings were only for values, also.. as in, the only binding I see in (let ([x 10]) x) is a binding of 10 to x.. 15:59:03 Ah, okay 16:04:13 -!- leo2007 [~leo@123.114.42.2] has quit [Ping timeout: 240 seconds] 16:08:59 jewel [~jewel@196-215-117-72.dynamic.isadsl.co.za] has joined #scheme 16:11:36 rudybot: (syntax (+ 1 2)) 16:11:36 imphasing: your sandbox is ready 16:11:37 imphasing: ; Value: # 16:13:02 Oooooh... maybe the binding itself doesn't matter in a syntactic environment, just that it's distinguishable from other bindings? 16:13:43 As in, the scope information for a syntax object is really just something that uniquely identifies the scope where that identifier is? 16:13:56 Not really an actual value or something 16:17:19 I guess that bit is implementation dependant, the important bit is you can tell identifiers from different scopes apart, right? 16:17:36 -!- pygospa [~Pygosceli@kiel-4dbed66d.pool.mediaWays.net] has quit [Disconnected by services] 16:17:48 pygospa [~Pygosceli@kiel-4d066fd1.pool.mediaWays.net] has joined #scheme 16:21:23 leo2007 [~leo@222.130.136.130] has joined #scheme 16:22:15 So does this mean the reader returns syntax objects instead of just pairs, in a normal scheme implementation? 16:22:34 As in, the parser also needs to keep track of scoping information and embed that into the data it returns 16:23:09 imphasing: in racket, there's both a `read' procedure, which produces s-exps, and `read-syntax', which produces syntax objects 16:23:30 imphasing: not in my case, I feed the expander annotated expressions 16:23:47 and it's the macro expander ("parser" is an unclear term in Lispy languages) that manages the scoping information 16:23:49 leppie: Ah, so do you just annotate symbols with scope information at parse time? 16:23:56 identifiers, sorry :P 16:24:29 psyntax does all that 16:25:01 imphasing, leppie: psyntax does just what i described 16:25:03 i just give expr plus location info, but recursively 16:25:23 samth: So does scope information not exist until a macro expansion? Or in say, the repl, when you type expressions, are those annotated with scope information? 16:25:39 I guess since it's statically available, you don't need to get it at parse time 16:25:44 The macro expander can figure it out.. 16:25:51 imphasing: i don't understand your question 16:25:52 imphasing: I think that is one of the first phases 16:26:08 the reader produces syntax objects 16:26:22 those have trivial scope information, b/c there's no knowledge of bindings 16:26:28 samth: Which contain scope information, without macros being in the picure at all? 16:26:37 Right, just some way to tell scopes apart 16:26:41 then macro expansion enriches them with binding information 16:26:57 kk` [~kk@77.107.164.131] has joined #scheme 16:26:57 -!- kk` [~kk@77.107.164.131] has quit [Changing host] 16:26:57 kk` [~kk@unaffiliated/kk/x-5380134] has joined #scheme 16:31:18 -!- tupi [~david@189.67.243.118] has quit [Read error: Connection reset by peer] 16:38:11 gtoast [~gtoast@166.205.137.41] has joined #scheme 16:38:24 imphasin1 [~Alex@97-81-115-30.dhcp.gwnt.ga.charter.com] has joined #scheme 16:38:31 -!- oiiii [~oiiii@82.71.241.25] has quit [Remote host closed the connection] 16:40:52 -!- imphasin1 is now known as imphasing_ 16:41:13 -!- imphasing [~Alex@97-81-115-30.dhcp.gwnt.ga.charter.com] has quit [Disconnected by services] 16:41:18 -!- imphasing_ is now known as imphasing 16:44:23 -!- gtoast [~gtoast@166.205.137.41] has quit [Ping timeout: 276 seconds] 16:45:00 gtoast [~gtoast@166.205.137.41] has joined #scheme 16:55:12 -!- coderdad [~coderdad@wsip-70-164-198-85.ok.ok.cox.net] has quit [Quit: Computer has gone to sleep.] 16:55:18 jonrafkind [~jon@jonr5.dsl.xmission.com] has joined #scheme 16:56:28 certainty [~david@port-21162.pppoe.wtnet.de] has joined #scheme 16:58:32 tupi [~david@177.31.73.77] has joined #scheme 16:59:55 -!- githogori [~githogori@c-24-7-1-43.hsd1.ca.comcast.net] has quit [Remote host closed the connection] 17:03:43 -!- djcb [djcb@nat/nokia/x-qrcpumqidtmfigak] has quit [Remote host closed the connection] 17:05:23 -!- karswell [~coat@93-97-29-243.zone5.bethere.co.uk] has quit [Read error: Operation timed out] 17:07:52 -!- kuribas [~user@d54C436B1.access.telenet.be] has quit [Quit: ERC Version 5.3 (IRC client for Emacs)] 17:10:31 freakazoid [~seanl@66.220.144.73] has joined #scheme 17:10:33 githogori [~githogori@c-24-7-1-43.hsd1.ca.comcast.net] has joined #scheme 17:10:41 -!- f8l [~f8l@77-253-155-248.adsl.inetia.pl] has quit [Quit: WeeChat 0.3.6] 17:12:24 -!- snizzo [~quassel@iglu.cc.uniud.it] has quit [Remote host closed the connection] 17:20:46 Seems like to implement seperate phases for expansion and evaluation, I have to write another evaluator basically 17:21:10 Except this one is all kinds of magical and special and full of unicorns that I don't understand 17:24:18 And it runs before the evaluator 17:24:23 :| 17:24:28 -!- realitygrill [~realitygr@76.226.212.207] has quit [Quit: realitygrill] 17:26:39 drdo [~drdo@85.207.54.77.rev.vodafone.pt] has joined #scheme 17:28:09 you only need a single core evaluator 17:28:51 you just have to instantiate it once for each phase 17:29:58 rudybot: (define x #'1) 17:29:58 imphasing: Done. 17:30:10 rudybot: (eq? x 1) 17:30:10 imphasing: ; Value: #f 17:30:16 rudybot: (eqv? x 1) 17:30:16 imphasing: ; Value: #f 17:30:45 rudybot: (define y #'1) 17:30:46 imphasing: Done. 17:30:49 rudybot: (eq? x y) 17:30:50 imphasing: ; Value: #f 17:30:55 rudybot: (eqv? x y) 17:30:56 imphasing: ; Value: #f 17:32:28 jonrafkind: Expanding macros is a whole lot different than reducing by evaluation though, I don't see how I can make them the same 17:32:52 One needs to care about syntactic environments and identifiers, whereas the evaluator can just reduce lists and symbols and such 17:33:26 syntax objects are just another kind of value 17:33:36 like numbers or whatever 17:34:05 So the normal evaluator doesn't operate on syntax objects? 17:34:11 I thought the reader would always return those :/ 17:34:57 i guess after macro expansion you could strip all syntax objects and get the plain data inside them 17:35:10 Like, I can't do (syntax 1) unless 1 already has scope information attached to it 17:35:24 because the call to syntax is self contained, it doens't know it could be a part of another scope or whatever 17:36:25 -!- gnomon [~gnomon@CPE0022158a8221-CM000f9f776f96.cpe.net.cable.rogers.com] has quit [Ping timeout: 260 seconds] 17:36:39 gnomon [~gnomon@CPE0022158a8221-CM000f9f776f96.cpe.net.cable.rogers.com] has joined #scheme 17:36:53 Which means the parser has to keep track of scope, which makes everything even more complicated 17:37:32 That means the parser needs to know every single call that could introduce new scope 17:37:39 Which seems retarded. 17:37:44 Fare [~Fare@173-9-65-97-NewEngland.hfc.comcastbusiness.net] has joined #scheme 17:39:19 -!- copumpkin [~pumpkin@unaffiliated/pumpkingod] has quit [Read error: Connection reset by peer] 17:39:51 And the parser couldn't possible know all that, since macros haven't even been expanded yet so there could be new forms that introduce bindings 17:40:03 copumpkin [~pumpkin@unaffiliated/pumpkingod] has joined #scheme 17:45:39 realitygrill [~realitygr@thewall.novi.lib.mi.us] has joined #scheme 17:55:16 If anybody uses DuckDuckGo as their search engine, you can now use !srfi to jump to SRFI-. :-) 17:56:20 heh 17:59:16 Is there a search function that takes a lambda I can pass in to do the per-element test? 17:59:30 Or should I write that myself with a foreach or something? 17:59:49 PfhorSlayer: filter 17:59:54 joyfulgirl [~ivy@209-6-79-248.c3-0.abr-ubr1.sbo-abr.ma.cable.rcn.com] has joined #scheme 18:00:02 -!- joyfulgirl [~ivy@209-6-79-248.c3-0.abr-ubr1.sbo-abr.ma.cable.rcn.com] has quit [Changing host] 18:00:02 joyfulgirl [~ivy@unaffiliated/joyfulgirl] has joined #scheme 18:00:05 takes a predicate lambda and filters a list to those that return true for each value 18:00:19 PfhorSlayer: find, memp 18:00:20 Perfect, thanks! 18:00:44 I tried using "member", but the list I'm searching is full of structures 18:01:07 memp takes a predicate procedure 18:01:14 Oh! 18:01:27 I was looking at memq earlier 18:01:41 find might be easier to use though 18:04:00 -!- tupi [~david@177.31.73.77] has quit [Quit: Leaving] 18:08:57 pumpkin [~pumpkin@unaffiliated/pumpkingod] has joined #scheme 18:10:08 -!- pumpkin is now known as copumpkin_ 18:10:17 -!- copumpkin [~pumpkin@unaffiliated/pumpkingod] has quit [Disconnected by services] 18:10:22 -!- copumpkin_ is now known as copumpkin 18:11:23 turbofail [~user@c-107-3-149-149.hsd1.ca.comcast.net] has joined #scheme 18:14:12 -!- soveran [~soveran@186.19.214.247] has quit [Remote host closed the connection] 18:14:47 Hmm... 18:15:02 It seems like I could use the lexical environment as a syntactic environment indeitifier 18:15:16 My scheme doesn't have a memp 18:15:26 I already have that at runtime, I can use that object as the ibject that uniquely identifies a scope syntactically :/ 18:15:27 And I can't seem to use a predicate for member or find 18:15:37 PfhorSlayer: might be called memf 18:15:50 I can't think of a way to get scope information for syntax objects besides that though, the parser can't possible know what introduces new scopes :/ 18:16:22 nope :( 18:17:31 PfhorSlayer: filter is would let you search however you want, I'm not sure how efficient it is though 18:17:49 (filter zero? '(1 2 0 2 0 1 3 0 2)) => '(0 0 0) 18:18:03 PfhorSlayer: find ? 18:18:32 from srfi 1 18:18:40 rudybot: (define (memf f l) (cond [(empty? l) #f] [(f (car l)) (car l)] [else (memf f (cdr l))])) 18:18:40 stamourv: Done. 18:18:41 https://github.com/leppie/IronScheme/blob/master/IronScheme/IronScheme.Console/build/lists.ss#L105 18:18:48 http://tinyurl.com/3bqtjat 18:18:54 rudybot: (memf even? '(1 2 3 4 5)) 18:18:55 stamourv: ; Value: (2 3 4 5) 18:19:04 rudybot: (memf zero? '(1 2 3 4 5)) 18:19:04 stamourv: ; Value: #f 18:19:31 PfhorSlayer: ^ 18:19:41 -!- joyfulgirl [~ivy@unaffiliated/joyfulgirl] has quit [Ping timeout: 240 seconds] 18:19:53 Coolio, thanks 18:22:36 djcb [~user@a88-112-255-94.elisa-laajakaista.fi] has joined #scheme 18:23:05 pumpkin [~pumpkin@unaffiliated/pumpkingod] has joined #scheme 18:23:09 karswell [~coat@93-97-29-243.zone5.bethere.co.uk] has joined #scheme 18:23:27 coderdad [~coderdad@wsip-70-164-198-85.ok.ok.cox.net] has joined #scheme 18:26:26 joyfulgirl [~ivy@209-6-79-248.c3-0.abr-ubr1.sbo-abr.ma.cable.rcn.com] has joined #scheme 18:26:26 -!- copumpkin [~pumpkin@unaffiliated/pumpkingod] has quit [Ping timeout: 276 seconds] 18:26:32 -!- joyfulgirl [~ivy@209-6-79-248.c3-0.abr-ubr1.sbo-abr.ma.cable.rcn.com] has quit [Changing host] 18:26:32 joyfulgirl [~ivy@unaffiliated/joyfulgirl] has joined #scheme 18:27:22 -!- pumpkin is now known as copumpkin 18:31:11 -!- acarrico [~acarrico@pppoe-68-142-40-116.gmavt.net] has quit [Ping timeout: 248 seconds] 18:31:48 rudybot: #'1 18:31:48 imphasing: ; Value: # 18:31:56 rudybot: #'1 18:31:56 imphasing: ; Value: # 18:32:29 -!- jewel [~jewel@196-215-117-72.dynamic.isadsl.co.za] has quit [Ping timeout: 240 seconds] 18:34:13 -!- joyfulgirl [~ivy@unaffiliated/joyfulgirl] has quit [Ping timeout: 240 seconds] 18:44:13 samth_ [~samth@nomad.ccs.neu.edu] has joined #scheme 18:46:57 soveran [~soveran@host186.190-136-33.telecom.net.ar] has joined #scheme 18:48:10 is (syntax '(1 2)) like (syntax (cons (syntax 1) (cons (syntax 2) '()))) ? 18:48:20 Does it create a syntax object for each type in the list? 18:48:28 And what about for vectors? :/ 18:50:56 rudybot: (syntax-e (syntax '(1 2))) 18:50:57 jonrafkind: your sandbox is ready 18:50:57 jonrafkind: ; Value: (# #) 18:51:47 Does syntax-e re-wrap subforms of a list, or were those already wrapped in a syntax object though? 18:51:49 probably implementation dependant 18:52:10 syntax-e is just an accessor so i guess syntax wraps subforms 18:52:47 (car (syntax '#(1 2))) 18:52:50 er.. 18:52:54 stx-car 18:53:08 rudybot: (car (syntax '(1 2))) 18:53:08 imphasing: error: car: expects argument of type ; given # 18:53:28 Huh, I guess just racket allows car/cdr etc on syntax objects 18:53:33 stx-car 18:53:34 Or only racket? 18:53:34 stx-car 18:53:36 (car (syntax (1 2))) will work in psyntax systems 18:53:46 acarrico [~acarrico@pppoe-68-142-40-116.gmavt.net] has joined #scheme 18:53:54 rudybot: (stx-cat (syntax '(1 2))) 18:53:54 imphasing: error: reference to an identifier before its definition: stx-cat in module: 'program 18:53:58 closer 18:54:07 *imphasing* is a failure 18:54:16 rudybot: (stx-car (syntax '(1 2))) 18:54:16 imphasing: error: reference to an identifier before its definition: stx-car in module: 'program 18:54:25 oh f, its not in the default bindings 18:54:31 do (require syntax/stx) 18:54:43 rudybot: (require syntax/stx) 18:54:43 ijp: not so, only some cases 18:54:44 imphasing: Done. 18:54:48 rudybot: (stx-car (syntax '(1 2))) 18:54:48 imphasing: ; Value: # 18:54:53 Yes, it wraps :) 18:54:58 Unless stx-car wraps :| 18:55:28 leppie: hmm? I would have thought that would work for any wrapped pair 18:57:27 rudybot: (with-syntax (((a ...) (generate-temporaries '(1 2 3)))) (map values #'(a ...))) 18:57:27 leppie: your sandbox is ready 18:57:27 leppie: error: map: expects type as 2nd argument, given: #; other arguments were: # 18:57:46 that works in psyntax 18:58:02 and r6rs I think 18:58:10 Does syntax also recursively make syntax objects out of vector members? 18:58:18 I'm not sure what the syntax version of vector-ref is :/ 18:58:37 turbofai` [~user@c-107-3-149-149.hsd1.ca.comcast.net] has joined #scheme 18:58:38 rudybot: (vector-ref 0 (syntax '#(1 2))) 18:58:38 imphasing: error: vector-ref: expects type as 1st argument, given: 0; other arguments were: # 18:59:04 joyfulgirl [~ivy@209-6-79-248.c3-0.abr-ubr1.sbo-abr.ma.cable.rcn.com] has joined #scheme 18:59:15 -!- turbofail [~user@c-107-3-149-149.hsd1.ca.comcast.net] has quit [Remote host closed the connection] 19:02:03 -!- joyfulgirl [~ivy@209-6-79-248.c3-0.abr-ubr1.sbo-abr.ma.cable.rcn.com] has quit [Read error: Connection reset by peer] 19:03:25 Argggg 19:03:42 Making my scope identifiers based on the lexical scope where a datum is introduced makes thisweird 19:04:01 (syntax 1) takes the lexical environment of 1 in that context to use as the scope identifier 19:04:16 (let () (syntax 1)) is different than (syntax 1) which is cool 19:04:29 But I do't know if this is helping my case :| 19:05:07 I can't GET scope information statically though, that's only available after evaluation or duing :/ 19:05:16 leppie: err, that isn't a counterexample. 19:05:17 The only way to get scope information statically is to expand macros 19:05:32 And to expand macros, I need scope information already :| 19:05:35 This seems impossible 19:11:08 you are supposed to parse and expand simaltenously 19:11:11 have you seen 'macros that work' ? 19:11:56 I've read some of it 19:12:02 you can parse strings into list structure without expanding, then go over your list tree, expanding all macros from outside in 19:12:36 jonrafkind: How can I parse and expand if I need scope information to expand though? 19:12:56 The parser can't figure out scope information, because there could be macros that introduce new scopes 19:13:26 ecraven: Yeah, that's what I plan to do maybe if anything ever works again ever. 19:13:30 Or I can understand any of this crap. 19:14:34 whatever interprets scope probably shouldn't see macros.. they should be expanded before that phase 19:14:58 imphasing: have you looked at riaxpander, if you don't like reading papers 19:15:04 ok the way i understand things is you go through every syntax identifier and update it with the binding that is visible for all phases, so if you do (require foo) which provides a symbol 'foo at phase 0 and phase 1, then in the program where you use 'foo it will have a mapping between the phase 0 foo and the phase 1 foo 19:16:05 so then if you do (m foo) where m is going to bind foo by doing (lambda (foo) ...) you don't have to do anything because lambda is going to update the lexical properties of foo 19:16:47 ecraven: All of this is way over my head 19:17:05 i think a lot of the implementation details are not published.. 19:17:21 How riaxpander works, I have no idea. I'm struggling with the concept of syntax objects and how they get their scope information 19:19:54 -!- gtoast [~gtoast@166.205.137.41] has quit [Quit: gtoast] 19:21:27 imphasing: read the source, riaxpander isn't *too* hard to understand 19:21:59 Got a source link? I found some darcs repo, but I don't know if that's right :/ 19:31:40 it is, probably 19:32:04 i believe a couple of systems have integrated it, you can find whichever implementation you prefer 19:33:25 -!- leppie [~lolcow@196-215-36-197.dynamic.isadsl.co.za] has quit [Ping timeout: 240 seconds] 19:33:48 Thanks, I'm checking it out :) 19:34:00 leppie [~lolcow@196-215-36-197.dynamic.isadsl.co.za] has joined #scheme 19:53:20 -!- fbs [fbs@fsf/member/fbs] has quit [Remote host closed the connection] 19:53:50 fbs [fbs@fsf/member/fbs] has joined #scheme 20:02:04 -!- freakazoid [~seanl@66.220.144.73] has quit [Quit: Computer has gone to sleep.] 20:03:44 freakazoid [~seanl@66.220.144.73] has joined #scheme 20:05:37 gtoast [~gtoast@64.163.132.66] has joined #scheme 20:09:39 -!- EmmanuelOga [~emmanuel@190.244.27.236] has quit [Ping timeout: 252 seconds] 20:12:39 -!- SeySayux [~SeySayux@unaffiliated/seysayux] has quit [Quit: SeySayux] 20:15:41 drwho [~drwho@c-68-81-125-196.hsd1.pa.comcast.net] has joined #scheme 20:17:20 pothos_ [~pothos@111-240-175-225.dynamic.hinet.net] has joined #scheme 20:17:58 -!- realitygrill [~realitygr@thewall.novi.lib.mi.us] has quit [Quit: realitygrill] 20:19:08 -!- pothos [~pothos@111-240-180-93.dynamic.hinet.net] has quit [Ping timeout: 245 seconds] 20:19:31 -!- pothos_ is now known as pothos 20:27:48 snizzo [~quassel@host159-41-dynamic.7-79-r.retail.telecomitalia.it] has joined #scheme 20:29:01 -!- dsmith [~dsmith@cpe-184-56-129-232.neo.res.rr.com] has quit [Ping timeout: 240 seconds] 20:29:16 dsmith [~dsmith@cpe-184-56-129-232.neo.res.rr.com] has joined #scheme 20:29:21 gffa [~gffa@unaffiliated/gffa] has joined #scheme 20:31:41 -!- ToxicFrog [~ToxicFrog@24-246-40-169.cable.teksavvy.com] has quit [Ping timeout: 240 seconds] 20:35:21 ToxicFrog [~ToxicFrog@24-246-40-169.cable.teksavvy.com] has joined #scheme 20:38:43 pumpkin [~pumpkin@unaffiliated/pumpkingod] has joined #scheme 20:39:27 -!- certainty [~david@port-21162.pppoe.wtnet.de] has quit [Quit: Lost terminal] 20:39:56 -!- metasyntax|work [~taylor@fw-its-kt209a-2.dyn.ipfw.edu] has quit [Quit: WeeChat [quit]] 20:41:42 -!- copumpkin [~pumpkin@unaffiliated/pumpkingod] has quit [Ping timeout: 258 seconds] 20:44:20 -!- imphasing is now known as imphasing|home 20:47:26 denisw [~denisw@dslb-188-102-096-253.pools.arcor-ip.net] has joined #scheme 20:55:30 -!- acarrico [~acarrico@pppoe-68-142-40-116.gmavt.net] has quit [Ping timeout: 258 seconds] 20:56:36 joyfulgirl [~ivy@209-6-79-248.c3-0.abr-ubr1.sbo-abr.ma.cable.rcn.com] has joined #scheme 20:56:43 -!- joyfulgirl [~ivy@209-6-79-248.c3-0.abr-ubr1.sbo-abr.ma.cable.rcn.com] has quit [Changing host] 20:56:43 joyfulgirl [~ivy@unaffiliated/joyfulgirl] has joined #scheme 21:02:11 -!- freakazoid [~seanl@66.220.144.73] has quit [Quit: Computer has gone to sleep.] 21:04:01 freakazoid [~seanl@66.220.144.73] has joined #scheme 21:08:02 mmc1 [~michal@178-85-131-65.dynamic.upc.nl] has joined #scheme 21:12:06 rff [~rff@ip72-207-248-18.br.br.cox.net] has joined #scheme 21:17:53 -!- soveran [~soveran@host186.190-136-33.telecom.net.ar] has quit [Remote host closed the connection] 21:32:58 -!- luist [~luist@189.101.4.123] has left #scheme 21:36:17 -!- coderdad [~coderdad@wsip-70-164-198-85.ok.ok.cox.net] has quit [Quit: Computer has gone to sleep.] 21:48:57 soveran [~soveran@host186.190-136-33.telecom.net.ar] has joined #scheme 21:50:53 -!- joyfulgirl [~ivy@unaffiliated/joyfulgirl] has quit [Ping timeout: 240 seconds] 21:52:47 -!- denisw [~denisw@dslb-188-102-096-253.pools.arcor-ip.net] has quit [Remote host closed the connection] 21:55:34 -!- pygospa [~Pygosceli@kiel-4d066fd1.pool.mediaWays.net] has quit [Quit: Lost terminal] 21:57:00 -!- gtoast [~gtoast@64.163.132.66] has quit [Quit: gtoast] 21:58:46 choas [~lars@p5795C67F.dip.t-dialin.net] has joined #scheme 21:59:05 is a syntactic binding just a regular binding in an environment, but to an AST structure or something instead of a value? 21:59:25 Or is it a different kind of environment, like a compile-phase environment or something... 21:59:43 *imphasing|home* is trying to figure out syntactic environments 22:08:18 -!- djcb [~user@a88-112-255-94.elisa-laajakaista.fi] has quit [Ping timeout: 245 seconds] 22:08:23 airolson [~airolson@CPE00222d55a738-CM00222d55a735.cpe.net.cable.rogers.com] has joined #scheme 22:08:24 imphasing|home: depends on your system. i'd favor a special type of binding in the normal environment at compile-time (no need to keep it at runtime) 22:08:28 are you compiling? 22:08:41 pygospa [~Pygosceli@kiel-4d066fd1.pool.mediaWays.net] has joined #scheme 22:10:37 no, I'm just interpreting 22:10:50 compile time for me is just a macro expansion phase, or will be I think 22:12:25 What exactly gets bound though? 22:13:23 yell0 [yello@unaffiliated/contempt] has joined #scheme 22:13:26 -!- jonrafkind [~jon@jonr5.dsl.xmission.com] has quit [Ping timeout: 244 seconds] 22:13:59 i'd suggest a special object, a syntactic expander 22:18:27 acarrico [~acarrico@pppoe-68-142-40-116.gmavt.net] has joined #scheme 22:20:51 -!- soveran [~soveran@host186.190-136-33.telecom.net.ar] has quit [Remote host closed the connection] 22:22:13 -!- gravicappa [~gravicapp@ppp91-77-182-185.pppoe.mtu-net.ru] has quit [Remote host closed the connection] 22:24:04 -!- otakutomo [~otakutomo@KD027083117212.ppp-bb.dion.ne.jp] has quit [Ping timeout: 255 seconds] 22:31:09 in a macro-expansion phase, if you hit a syntactic expander, expand it, otherwise descend recursively 22:32:42 s/expand it/apply it/ 22:36:53 -!- mmc1 [~michal@178-85-131-65.dynamic.upc.nl] has quit [Ping timeout: 240 seconds] 22:42:16 dnolen [~davidnole@cpe-98-14-92-234.nyc.res.rr.com] has joined #scheme 22:45:51 -!- replore_ [~replore@ntkngw304073.kngw.nt.ftth.ppp.infoweb.ne.jp] has quit [Remote host closed the connection] 22:48:27 jrslepak_ [~jrslepak@c-71-233-151-135.hsd1.ma.comcast.net] has joined #scheme 22:48:39 ijp` [~user@host86-177-154-41.range86-177.btcentralplus.com] has joined #scheme 22:50:05 -!- ijp [~user@host86-182-155-249.range86-182.btcentralplus.com] has quit [Ping timeout: 240 seconds] 22:50:24 -!- snizzo [~quassel@host159-41-dynamic.7-79-r.retail.telecomitalia.it] has quit [Remote host closed the connection] 22:56:36 jao [~user@pdpc/supporter/professional/jao] has joined #scheme 22:58:30 -!- ijp` is now known as ijp 22:59:51 -!- airolson [~airolson@CPE00222d55a738-CM00222d55a735.cpe.net.cable.rogers.com] has quit [] 23:01:13 joyfulgirl [~ivy@209-6-79-248.c3-0.abr-ubr1.sbo-abr.ma.cable.rcn.com] has joined #scheme 23:01:19 -!- joyfulgirl [~ivy@209-6-79-248.c3-0.abr-ubr1.sbo-abr.ma.cable.rcn.com] has quit [Changing host] 23:01:20 joyfulgirl [~ivy@unaffiliated/joyfulgirl] has joined #scheme 23:06:47 coderdad [~coderdad@ip68-97-195-24.ok.ok.cox.net] has joined #scheme 23:12:16 -!- coderdad [~coderdad@ip68-97-195-24.ok.ok.cox.net] has quit [Quit: Computer has gone to sleep.] 23:15:17 -!- leo2007 [~leo@222.130.136.130] has quit [Ping timeout: 240 seconds] 23:16:39 -!- joyfulgirl [~ivy@unaffiliated/joyfulgirl] has quit [Remote host closed the connection] 23:16:53 otakutomo [~otakutomo@KD027083117212.ppp-bb.dion.ne.jp] has joined #scheme 23:18:04 joyfulgirl [~ivy@209-6-79-248.c3-0.abr-ubr1.sbo-abr.ma.cable.rcn.com] has joined #scheme 23:18:11 -!- joyfulgirl [~ivy@209-6-79-248.c3-0.abr-ubr1.sbo-abr.ma.cable.rcn.com] has quit [Changing host] 23:18:11 joyfulgirl [~ivy@unaffiliated/joyfulgirl] has joined #scheme 23:18:45 coderdad [~coderdad@ip68-97-195-24.ok.ok.cox.net] has joined #scheme 23:26:41 drdo` [~drdo@85.207.54.77.rev.vodafone.pt] has joined #scheme 23:28:36 -!- drdo [~drdo@85.207.54.77.rev.vodafone.pt] has quit [Ping timeout: 240 seconds] 23:37:19 -!- coderdad [~coderdad@ip68-97-195-24.ok.ok.cox.net] has quit [Quit: Computer has gone to sleep.] 23:47:45 kilimanjaro [~kilimanja@unaffiliated/kilimanjaro] has joined #scheme 23:51:41 -!- joyfulgirl [~ivy@unaffiliated/joyfulgirl] has quit [Ping timeout: 240 seconds] 23:52:51 joyfulgirl [~ivy@209-6-79-248.c3-0.abr-ubr1.sbo-abr.ma.cable.rcn.com] has joined #scheme 23:52:54 -!- joyfulgirl [~ivy@209-6-79-248.c3-0.abr-ubr1.sbo-abr.ma.cable.rcn.com] has quit [Changing host] 23:52:55 joyfulgirl [~ivy@unaffiliated/joyfulgirl] has joined #scheme