00:06 (join) close-paren 00:07 (quit) jeapostrophe: Ping timeout: 264 seconds 00:09 (quit) close-paren: Client Quit 00:15 (join) close-paren 00:21 (join) crundar 00:42 (quit) bro_grammer: Ping timeout: 265 seconds 00:43 (quit) axe_wielder: Ping timeout: 265 seconds 00:53 (quit) close-paren: Quit: close-paren 01:40 (quit) jackhammer2022: Quit: Textual IRC Client: http://www.textualapp.com/ 01:46 (quit) adu: Quit: adu 01:49 (join) close-paren 01:59 (quit) yoklov: Quit: bye! 02:19 (quit) neilv: Quit: Leaving 02:29 (quit) flaggy: Ping timeout: 240 seconds 02:47 (quit) close-paren: Quit: close-paren 02:50 (quit) crundar: Ping timeout: 245 seconds 03:41 (quit) Kaylin: Quit: Leaving. 04:12 (join) cdidd 04:14 (quit) jonrafkind: Ping timeout: 252 seconds 04:40 (join) bitonic 05:17 (join) mithos28 05:36 (join) jao` 05:36 (quit) jao`: Changing host 05:36 (join) jao` 05:37 (quit) jao: Ping timeout: 276 seconds 05:45 (quit) mithos28: Quit: mithos28 06:45 (join) Jeanne-Kamikaze 06:48 (join) MayDaniel 06:50 (join) bjz 07:05 (join) Araq_bnc 07:17 (join) masm 07:28 (nick) Araq_bnc -> Araq 07:49 (quit) MayDaniel: 08:08 (join) crundar 08:32 (quit) jrslepak_neu: Remote host closed the connection 08:32 (quit) jschuster: Quit: Coyote finally caught me 08:53 (quit) Jeanne-Kamikaze: Ping timeout: 276 seconds 09:04 (join) Jeanne-Kamikaze 09:14 (join) anRch 09:16 (join) gc329915 09:33 (join) MayDaniel 09:51 (quit) bjz: Quit: Bye! 09:59 (join) getpwnam 10:00 (join) hash_table 10:04 (quit) anRch: Quit: anRch 10:09 (join) jeapostrophe 10:09 (quit) jeapostrophe: Changing host 10:09 (join) jeapostrophe 10:33 (quit) acarrico: Ping timeout: 252 seconds 10:38 (join) neilv 10:48 (join) acarrico 11:04 (quit) danking: Ping timeout: 246 seconds 11:08 (quit) jeapostrophe: Ping timeout: 252 seconds 11:18 (join) bjz 11:29 (join) mye 11:30 (quit) mye: Client Quit 11:57 (quit) bjz: Quit: Leaving... 12:01 (join) mithos28 12:02 (join) Fare 12:02 Fare: hi! 12:02 mithos28: hello, Fare 12:02 Fare: hi. 12:03 Fare: bibliographical question: is anyone aware of any previous work in automatically translating between pure and stateful datastructures? 12:03 Fare: maybe some kind of monad on steroid? 12:03 mithos28: ST monad in haskell 12:04 Fare: it's just for a single cell, isn't it? 12:04 (join) ambrosebs 12:04 mithos28: It allows you to use a mutative array, and then once you are done initializing it, turn it into an immutable one without copying 12:04 Fare: it doesn't wrap around each and every method to do the wrapping/unwrapping of data, is it? 12:05 (part) ambrosebs 12:05 mithos28: I'm not sure what you mean by that 12:05 Fare: in lil, I automatically transform all the methods: insert, drop, etc., from pure to stateful and back based on a simple description of side-effects. 12:06 Fare: e.g. the pure method monadically passes the structure around, the stateful method modifies it in place 12:06 mithos28: Oh, yes. Some people showed that it can be done with at most log(n) slowdown 12:06 mithos28: for any datastructure 12:06 (join) crundar__ 12:06 Fare: that's not the question: did anyone automate that before? 12:07 Fare: and yes, log(n) slowdown is trivial. 12:07 (join) dnolen 12:07 mithos28: As in did they implement their proof? 12:07 (join) mye 12:07 Fare: in a constructive way, usable by programmers 12:07 mithos28: http://www.cs.cmu.edu/~sleator/papers/Persistence.htm 12:07 (quit) crundar: Ping timeout: 240 seconds 12:08 mithos28: That seems to be what you are asking about 12:08 Fare: related though not exactly 12:09 Fare: I'll probably add it to bibliography after reading it, though -- thanks! 12:10 Fare is looking for a coauthor on his ilc2012 paper for lisp-interface-library. 12:12 (join) Kaylin 12:16 (join) flaggy 12:18 Fare: maybe I should have adopted the persistent vs ephemeral lingo instead of pure vs stateful... 12:20 (quit) ssbr: Ping timeout: 240 seconds 12:36 (join) close-paren 12:37 (join) jeapostrophe 12:37 (quit) jeapostrophe: Changing host 12:37 (join) jeapostrophe 12:44 (quit) neilv: Quit: Leaving 12:46 (quit) jeapostrophe: Ping timeout: 252 seconds 12:46 (quit) close-paren: Quit: close-paren 12:56 (join) jonrafkind 13:06 (quit) vu3rdd: Remote host closed the connection 13:12 (quit) mithos28: Quit: mithos28 13:17 (quit) flaggy: Quit: leaving 13:17 (quit) dnolen: Ping timeout: 246 seconds 13:18 (quit) gc329915: Quit: Leaving. 13:25 (join) gciolli 13:38 (quit) hash_table: Ping timeout: 246 seconds 13:38 (quit) getpwnam: Ping timeout: 246 seconds 13:41 (join) carleastlund 13:52 (join) soegaard 14:15 (quit) carleastlund: Quit: carleastlund 14:18 (quit) Kaylin: Quit: Leaving. 14:26 (join) close-paren 14:31 (quit) bremner: Ping timeout: 252 seconds 14:34 asumu: Nice, Neil's blog post got on reddit: http://www.reddit.com/r/programming/comments/yu3qa/fully_inlined_merge_sort/ 14:34 rudybot: http://tinyurl.com/cvh4ewr 14:37 (join) jyc 14:45 (join) bremner 14:45 (quit) bremner: Changing host 14:45 (join) bremner 14:48 (quit) close-paren: Quit: close-paren 15:15 (quit) crundar__: Ping timeout: 260 seconds 15:19 (quit) gciolli: Quit: Leaving. 15:19 Fare: hi 15:21 Fare: btw, how do I write the equivalent of nest with define-syntax? (defmacro nest (&rest things) (reduce #'(lambda (outer inner) (append outer (list inner))) things :from-end t)) 15:35 soegaard: Fare: Do you have any examples of usage and corresponding expansion? (for us that don't read CL) 15:36 Fare: Riastradh on #scheme gave me a solution: (define-syntax nest (syntax-rules () ((nest x) x) ((nest (x ...) y z ...) (x ... (nest y z ...))))) 15:36 jonrafkind: isnt there already a nest in racket somewhere 15:37 Fare: dunno... is there? 15:37 Fare: it's great to nest binding forms 15:38 Fare: note that foldl instead of foldr is great for piping 15:43 (join) Shvillr 15:43 (quit) jyc: Quit: Leaving 15:43 soegaard: http://docs.racket-lang.org/scheme/nest.html?q=nest#(form._((lib._scheme/nest..rkt)._nest)) 15:43 Fare: way cool! 15:44 (quit) Shviller: Ping timeout: 244 seconds 15:45 Fare: thanks! 15:47 asumu: Oh, so Clojure's -> is basically just nest. 15:47 soegaard: Rare thing to see this in the docs: "The nest form is unusual in that it has no semantics apart from its expansion, and its implementation is easier to understand than a precise prose description:" followed by a syntax-rules macro 15:52 Fare: interestingly, racket's nest is different from my nest - gratuitously more complex. 15:53 Fare: IIUC: (mynest x ...) ==> (racket:next (x ...)) 15:53 (join) crundar 15:54 soegaard: related: http://www.mail-archive.com/dev@racket-lang.org/msg06109.html 16:05 (quit) mye: Quit: mye 16:17 (quit) jonrafkind: Ping timeout: 246 seconds 16:42 (join) flaggy 16:43 flaggy: hello, when using define-syntax, is there a way to bind variables which can be used inside the generated code? 16:46 (join) jyc 16:54 Cryovat: If they're "named parameters" in the rule, you can treat them as variables 17:00 (quit) jyc: Remote host closed the connection 17:02 (join) anRch 17:03 (join) jyc 17:03 flaggy: I want to create a macro called define-action-with-tournament which creates a function that takes an id as parameter and then does (let ((tournament (tournament/find id)) ...). So, when I write (define-action-with-tournament my-fun ...) the code in ... can use tournament variable. 17:06 soegaard: flaggy: How about with-syntax ? 17:12 soegaard: https://gist.github.com/3483621 17:14 soegaard: We need a site to show case small programs written in the teaching langauges showing code and graphics. 17:15 soegaard: http://www.khanacademy.org/cs/chompy-and-friends/882986876 17:16 soegaard: Students can discuss programs written by themselves or by friends. 17:21 (join) Kaylin 17:23 flaggy: I don't know how to do it. Can someone give me an example? I guess I want is an unhygienic macro. Maybe it's not even possible. 17:24 (quit) Fare: Ping timeout: 272 seconds 17:33 rapacity: check format-id 17:33 rapacity: http://docs.racket-lang.org/reference/syntax-util.html 17:39 (join) getpwnam 17:40 (join) hash_table 17:40 rapacity: eval (require (for-syntax racket/syntax)) 17:40 rapacity: rudybot eval (require (for-syntax racket/syntax)) 17:40 rapacity: rudybot: eval (require (for-syntax racket/syntax)) 17:40 rudybot: rapacity: Done. 17:40 flaggy: let me show what I have so far: https://gist.github.com/3483759 I want to make tournament and request available inside of code ... 17:41 rapacity: rudybot: eval (define-syntax (make-lol stx) (syntax-case stx () [(make-lol id body ...) (with-syntax ([lol (format-id #'id "lol")]) #`(let ([lol (+ 9000 id)]) body ...))])) 17:41 rudybot: rapacity: Done. 17:41 rapacity: rudybot: eval (make-lol x (displayln x)) 17:41 rudybot: rapacity: ; stdout: "21\n" 17:41 rapacity: rudybot: eval (make-lol x (displayln lol)) 17:41 rudybot: rapacity: ; stdout: "9021\n" 17:41 flaggy: hm 17:43 flaggy: this is odd 17:45 rapacity: you just need to add (with-syntax ([tournament (format-id #'action-name "tournament")]) after line 3 in your code to wrap #'(define ... 17:45 rapacity: err and the require for racket/syntax 17:46 flaggy: yeah, I think I get what I need to do, but I'm still figuring out what's happening. Thanks for the help :) 17:48 (join) Fare 17:50 (quit) cdidd: Read error: Connection reset by peer 17:54 (quit) jyc: Remote host closed the connection 17:55 (join) jyc 17:59 (join) bjz 18:06 (quit) anRch: Quit: anRch 18:07 (quit) soegaard: Quit: soegaard 18:08 (join) ssbr 18:14 flaggy: I think I undestand what's going on, what i'm not quite following yet is what is a lexical context, the first parameter for format-id 18:23 (quit) Nisstyre: Quit: Leaving 18:24 (quit) Nisstyre_: Quit: Leaving 18:32 (join) jeapostrophe 18:32 (quit) jeapostrophe: Changing host 18:32 (join) jeapostrophe 18:33 (quit) nowhere_man: Ping timeout: 276 seconds 18:42 (quit) jeapostrophe: Ping timeout: 244 seconds 18:42 (quit) bitonic: Ping timeout: 272 seconds 18:45 (join) jonrafkind 18:52 (quit) crundar: Ping timeout: 244 seconds 19:02 (quit) Jeanne-Kamikaze: Quit: Did you hear that ? 19:12 (join) crundar 19:13 (quit) MayDaniel: Read error: Connection reset by peer 19:19 (quit) bjz: Quit: Bye! 19:19 (join) bjz 19:22 (quit) jyc: Remote host closed the connection 19:26 (join) jyc 19:29 (join) adu 19:29 (join) jeapostrophe 19:29 (quit) jeapostrophe: Changing host 19:29 (join) jeapostrophe 19:43 (quit) Kaylin: Read error: Connection reset by peer 19:57 (join) Nisstyre 20:06 (quit) bjz: Quit: Leaving... 20:06 (join) Nisstyre_ 20:07 (quit) jeapostrophe: Ping timeout: 244 seconds 20:44 (quit) adu: Quit: adu 21:02 (join) Kaylin 21:16 (join) zencephalon 21:17 zencephalon: Hey guys, I'm working on writing a web forum in Racket. How would you recommend implementing session variables for doing login? 21:20 jonrafkind: probably using a parameter, (make-parameter) 21:21 zencephalon: So just keep the state in a hidden field? 21:21 jonrafkind: oh for that you should serialize continuations and have the user return the continuation id with their request 21:23 zencephalon: ah, thanks 21:33 (quit) jonrafkind: Ping timeout: 260 seconds 21:40 (quit) scott_: Quit: Leaving 21:48 (quit) masm: Quit: Leaving. 21:50 (quit) Kaylin: Quit: Leaving. 21:59 (join) jeapostrophe 21:59 (quit) jeapostrophe: Changing host 21:59 (join) jeapostrophe 22:13 (join) bjz 22:15 (join) chimeracoder 22:19 (quit) bjz: Quit: Bye! 22:21 (join) bjz 22:30 (join) jonrafkind 22:30 (quit) bjz: Quit: Bye! 22:32 (quit) karswell: Read error: Connection reset by peer 22:34 (quit) zencephalon: *.net *.split 22:34 (quit) mceier: *.net *.split 22:34 (join) mceier 22:40 (join) bjz 22:42 (join) karswell 22:44 (quit) bjz: Client Quit 22:49 (join) bjz 22:52 (quit) crundar: Read error: Connection reset by peer 23:00 (join) Kaylin 23:00 (join) close-paren 23:02 (quit) close-paren: Client Quit 23:05 (join) vu3rdd 23:05 (quit) vu3rdd: Changing host 23:05 (join) vu3rdd 23:17 (quit) karswell: 23:22 (join) karswell 23:27 (quit) karswell: Ping timeout: 245 seconds 23:52 (quit) Kaylin: Read error: Connection reset by peer 23:56 (join) adu