00:00 dyoo: grettke: they expected me to know how to code the successor and predecessor functions for binary trees right off the bat, so they're definitely not dong the fizzbuzz 00:00 dyoo: doing the fizzbuzz question 00:05 dyoo: raphie: if macros are ok, then maybe something like this will help: 00:05 dyoo: (define-syntax-rule (capture-values foo) 00:05 dyoo: (call-with-values (lambda () foo) list)) 00:06 dyoo: Then your expression can look like (apply values (append (capture-values foo) (list 'c))) 00:07 raphie: there's no value->list function? 00:07 raphie: er, values->list 00:07 dyoo: That's basically what the capture-values thing is doing 00:07 raphie: ahh, cool 00:08 dyoo: As far as I know, it's not built in because the situations where it'd be used is fairly limited. Normally, call sites know exactly that they're getting some fixed number of values back. 00:09 raphie: all this is just so I can "cons" a value on 00:09 raphie: define-syntax-rule: too many forms in: (call-with-values (lambda () foo) list) 00:10 dyoo: too many forms? Hmm… give me a sec. Trying to figure out what that means. 00:11 dyoo: Let me make sure I didn't mistype that: 00:11 dyoo: (define-syntax-rule (capture-values e) (call-with-values (lambda () e) list)) 00:12 raphie: also, this is odd: https://gist.github.com/8de475cf02642d3cecc4 00:13 dyoo: When you call a function, each argument needs to be a single value. So the system's not happy when it seels that the second argument to add-v is a multiple-values thing 00:14 dyoo: There are architectural reasons why it has that limitation 00:14 SamB: what, like not being FORTH? 00:15 raphie: so is there a way to write this function? "vs" will always be a two-value values 00:16 dyoo: SamB: I haven't looked at how racket implements multiple values, but I suspect it's similar to that described in http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.48.3438 00:18 SamB wonders if it's the same reason GHC only allows unboxed tuples for return values 00:18 dyoo: To get multiple-value return to work efficiently, the language implementer needs to do a few tricks, or else all regular single-value function calls can take a hit. 00:19 raphie: huh 00:19 raphie: I'm writing a compiler targeting 0x10c :D 00:19 dyoo: ah, cool. Notch's thing, right? 00:20 raphie: yeah, 16-bit CPU 00:21 SamB: (though GHC has the advantage of knowing which functions will return unboxed tuples in advance, since they can't be used to instantiate normal type variables ...) 00:25 SamB wishes he could configure a rational px:TeX pt ratio in his PDF viewer ... 00:25 SamB: (a *small* one, in fact) 00:32 (join) jonrafkind 00:33 ozzloy: dyoo, hey! i noticed a typo in brainfudge http://hashcollision.org/brainfudge/#(part._.Acknowledgements) "many of which have are in the main" should probably be "man of which are in the main" 00:34 dyoo: yikes! Thank you… give me a second 00:35 (join) jeapostrophe 00:35 (quit) jeapostrophe: Changing host 00:35 (join) jeapostrophe 00:35 ozzloy: also i have a question about langauge.rkt http://hashcollision.org/brainfudge/#(part._.Lisping_a_language) when you define current-state (make-parameter (new-state)) .. does that actually need to be (new-state)? can't it just be #f or something? 00:36 ozzloy: i tried it with that and it worked, but i don't know what to check 00:36 ozzloy: hello2.rkt worked 00:36 dyoo: ozzloy: yeah, that would have worked fine 00:36 dyoo: it gets initialized in my-module-begin anyway 00:36 ozzloy: yeah, that's what i thought 00:37 dyoo: I just wanted to make it clear what the expected type was going to be 00:37 ozzloy: but i didn't know if maybe somehow there's a way that wouldn't happen 00:37 ozzloy: ah 00:37 dyoo: Thanks for the typo correction: should be pushed up now 00:37 ozzloy: you're welcome 00:37 ozzloy: that was fast 00:38 dyoo: Having a makefile as part of the source code makes this sort of stuff easy to build. :) 00:38 ozzloy: make file with targets to publish updates? 00:39 dyoo: Oh, that's a good idea. No, I didn't go that far. 00:39 ozzloy: `make publish`? 00:39 dyoo: It wouldn't be too hard: I'd just add something like 'scp * hashcollision.org:webapps/htdocs/brainfudge'; that would do the trick... 00:39 (join) jrslepak 00:40 ozzloy: so tempting! 00:40 ozzloy: dooo it 00:40 (quit) k0001: Ping timeout: 256 seconds 00:41 ozzloy: i haven't read the optimization yet, but i skimmed and noticed you abandone parameterized state anyways 00:41 ozzloy: abandon* 00:41 dyoo: https://github.com/dyoo/brainfudge/commit/a31c8c0af2c105c547cf5446798484fa1dd2d54a 00:41 rudybot: http://tinyurl.com/cocbpre 00:41 ozzloy: haha, nice 00:42 (join) k0001 00:42 dyoo: I aim to misbehave… Wait, no, I mean: I aim to please. :) 00:42 ozzloy: oh, i didn't know the source was up somewhere 00:43 ozzloy: i would have made a pull request instead of waiting till i saw you in here or maybe tracking down your email 00:43 ozzloy: hey, that's me in the commit message! 00:46 (quit) dyoo: Quit: dyoo 00:48 (quit) jao: Ping timeout: 245 seconds 00:55 (quit) jeapostrophe: Ping timeout: 260 seconds 01:26 (quit) Kaylin: Read error: Connection reset by peer 01:27 (quit) raphie: Remote host closed the connection 02:07 (quit) jackhammer2022: Quit: Textual IRC Client: http://www.textualapp.com/ 02:24 (join) k0001_ 02:27 (quit) k0001: Ping timeout: 252 seconds 02:37 (quit) grettke: Quit: Leaving 02:53 (join) kofno 03:00 (quit) kofno: Ping timeout: 245 seconds 03:10 (quit) dnolen: Remote host closed the connection 03:33 (join) pnpuff 03:48 (quit) jonrafkind: Ping timeout: 264 seconds 04:01 (quit) k0001_: Ping timeout: 256 seconds 04:21 (join) eli 04:21 (quit) eli: Changing host 04:21 (join) eli 04:28 (join) sw2wolf 04:30 (join) soegaard 04:32 (join) yacks 04:46 (part) sw2wolf: "ERC Version 5.3 (IRC client for Emacs)" 04:50 (join) mithos28 05:09 (join) bitonic 05:22 (quit) Shviller: Ping timeout: 260 seconds 05:33 (join) Shviller 05:42 (quit) mithos28: Quit: mithos28 05:44 (join) mithos28 06:00 (join) dzhus 06:25 (quit) mithos28: Quit: mithos28 06:31 (join) MayDaniel 06:33 lewis1711: time to try this macro again :) http://pastebin.com/YKV7rJQ0 can someone explain why $ might be unbound here? 06:33 lewis1711: (error message in paste) 06:36 (quit) yacks: Ping timeout: 264 seconds 06:42 soegaard: lewis1711: Can you make a simpler exampler showing the same behaviour? 06:44 lewis1711: soegaard: no. (@$ foo) is meant to mean "self.foo". I can offer the rest of the macros involved in that examples though, but when I post them all at once people get distracted. 06:45 (part) pnpuff 06:50 soegaard: lewis1711: I meant something like this: http://pastebin.com/ruBs7u73 06:54 soegaard: Is $ bound to anyhing outside this example? 06:54 soegaard: Depending on context, this might work: 06:54 soegaard: (with-syntax ([$ (syntax-local-introduce (syntax-local-get-shadower #'$))]) #'(@ $ method args ...)) 06:57 lewis1711: soegaard: http://pastebin.com/XjPrT0Ak does that shed any light? and will try what you suggested 06:59 lewis1711: soegaard: woah that worked. thanks 06:59 lewis1711: dunno how it works but it does 06:59 soegaard: http://blog.scheme.dk/2006/05/how-to-write-unhygienic-macro.html 07:00 soegaard: But I am not sure it is the correct solution though. It might be better to use a syntax-parameter. 07:07 lewis1711: maybe. I think I'm all macro'd out now. this is the hardest programming thing I've tried to learn since.. actually probably the hardest 07:07 (quit) cdidd: Ping timeout: 250 seconds 07:10 soegaard: It takes a bit of experimenting to get it. 08:10 (join) shriphani 08:27 (join) masm 08:29 (quit) dzhus: Remote host closed the connection 08:46 (join) anRch 09:12 (quit) noelw: Read error: Connection reset by peer 09:12 (join) noelw 09:14 (join) jeapostrophe 09:14 (quit) jeapostrophe: Changing host 09:14 (join) jeapostrophe 09:26 (join) mizu_no_oto 09:28 (join) kofno 09:36 (join) nathanpc 09:42 (join) francisl 10:04 (join) RacketCommitBot 10:04 RacketCommitBot: [racket] plt pushed 3 new commits to master: http://git.io/lJN1WQ 10:04 RacketCommitBot: racket/master d0ff14b Matthew Flatt: fix main docs to include installation-specific links/packages 10:04 RacketCommitBot: racket/master 3d38d84 Matthew Flatt: planet2: remove obsolete note in docs and help 10:04 RacketCommitBot: racket/master 545191f Matthew Flatt: guide and reference: fix typos related to "evaluation context" 10:04 (part) RacketCommitBot 10:06 (quit) bjz: Quit: Leaving... 10:07 (quit) francisl: Quit: francisl 10:07 (quit) bitonic: Remote host closed the connection 10:10 (quit) anRch: Read error: Connection reset by peer 10:11 (join) anRch 10:11 (quit) shriphani: Ping timeout: 265 seconds 10:19 (quit) anRch: Quit: anRch 10:20 lewis1711: I don't suppose there's anyway into tricking dr. racket to indent user macros like baked in macros? 10:20 (quit) mizu_no_oto: Quit: Computer has gone to sleep. 10:25 (join) masm1 10:27 (quit) masm: Ping timeout: 245 seconds 10:35 (join) pd520 10:35 pd520: hi 10:36 lewis1711: hello 10:38 pd520: why do i see disorder code in xchat2 10:38 pd520: ? 10:39 (join) mizu_no_oto 10:39 bremner: pd520: is your question related to racket somehow? 10:40 pd520: no,sorry 10:40 pd520: but,I would like to learn racket from IRC 10:43 bremner: I don't remember much about xchat. I guess you can probably get better xchat help on an xchat channel. 10:44 pd520: OK,thank you 10:44 (quit) mizu_no_oto: Quit: Computer has gone to sleep. 10:45 (quit) pd520: Quit: 暂离 10:46 (join) mizu_no_oto 10:48 (join) Administrator 10:48 (nick) Administrator -> Guest93927 10:48 (join) mye 10:49 (join) bitonic 10:50 (part) pd520 11:13 soegaard: lewis1711: In preferences: choose "Editing" (the third tab) and add your macro 11:16 (quit) lewis1711: Ping timeout: 252 seconds 11:21 (join) Nisstyre-laptop 11:22 (join) yours_truly 11:25 soegaard: https://gist.github.com/4189510 11:33 (quit) yours_truly: Quit: Leaving 11:36 (join) xian 11:45 soegaard: http://imgur.com/nuCQd 11:49 (quit) kofno: Remote host closed the connection 11:52 (quit) mizu_no_oto: Quit: Computer has gone to sleep. 12:04 (join) hash_table 12:19 (join) jao 12:20 (quit) jao: Changing host 12:20 (join) jao 12:37 (join) netrino 12:40 (join) jonrafkind 12:48 (quit) jeapostrophe: Ping timeout: 260 seconds 12:57 (join) mithos28 13:05 (join) dnolen 13:34 (join) kofno 13:40 (join) spiderweb 13:41 (join) kofno_ 13:43 (quit) kofno: Ping timeout: 250 seconds 13:48 (join) mizu_no_oto 13:54 (quit) mizu_no_oto: Quit: Computer has gone to sleep. 14:00 (join) mizu_no_oto 14:05 (quit) dnolen: Remote host closed the connection 14:08 (quit) spiderweb: Quit: ERC Version 5.3 (IRC client for Emacs) 14:10 (join) cdidd 14:10 (join) spiderweb 14:10 (quit) jrslepak: Quit: What happened to Systems A through E? 14:17 (quit) spiderweb: Quit: ERC Version 5.3 (IRC client for Emacs) 14:23 (join) k0001 14:28 (join) k0001_ 14:30 (quit) k0001: Ping timeout: 250 seconds 14:35 (quit) cdidd: Read error: Connection reset by peer 14:38 (quit) mye: Quit: mye 14:39 (quit) netrino: Quit: Ave! 14:43 (quit) mithos28: Quit: mithos28 14:52 (join) mithos28 14:52 (join) jrslepak 14:54 (join) netrino 14:56 (quit) kofno_: Remote host closed the connection 15:02 (join) cdidd 15:07 (quit) ijp: Quit: laterz 15:15 (quit) jonrafkind: Ping timeout: 260 seconds 15:44 (join) RacketCommitBot 15:44 RacketCommitBot: [racket] plt pushed 1 new commit to master: http://git.io/8zeDUQ 15:44 RacketCommitBot: racket/master 9f72eb3 Robby Findler: fix query-aspell so that it returns an empty list when aspell isn't working 15:44 (part) RacketCommitBot 15:52 (join) dyoo 15:58 (join) myx 16:00 (quit) mizu_no_oto: Quit: Computer has gone to sleep. 16:01 (join) bjz 16:08 (join) mye 16:14 (join) dnolen 16:16 (join) k0001 16:19 (quit) k0001_: Ping timeout: 256 seconds 16:29 (quit) mithos28: Quit: mithos28 16:32 (join) RacketCommitBot 16:32 RacketCommitBot: [racket] plt pushed 1 new commit to master: http://git.io/_GgHhw 16:32 RacketCommitBot: racket/master 325600b Robby Findler: disable the aspell preference a little more agressively in case someone... 16:32 (part) RacketCommitBot 16:47 (join) mye_ 16:49 (quit) dsantiago: Quit: Computer has gone to sleep. 16:49 (quit) mye: Ping timeout: 245 seconds 16:49 (nick) mye_ -> mye 16:54 (quit) jrslepak: Quit: What happened to Systems A through E? 16:58 (join) mithos28 17:04 (quit) dyoo: Quit: dyoo 17:04 (join) jeapostrophe 17:04 (quit) jeapostrophe: Changing host 17:04 (join) jeapostrophe 17:07 (join) Kaylin 17:18 (quit) Kaylin: Read error: Connection reset by peer 17:18 (join) Kaylin 17:19 (quit) myx: Ping timeout: 252 seconds 17:26 (join) jrslepak 17:29 (quit) bjz: Quit: Leaving... 17:36 (join) bjz 17:36 mye: ugh, is auto indent for scribble in drracket really that bad? It moves all content after a @defproc to the column where the { starts 17:46 (quit) mithos28: Quit: mithos28 17:53 (quit) Nisstyre-laptop: Quit: Leaving 17:54 (join) Nisstyre-laptop 17:56 (quit) bjz: Quit: Leaving... 17:57 (quit) soegaard: Quit: soegaard 17:57 (join) mithos28 17:59 (quit) Kaylin: Read error: Connection reset by peer 18:01 (join) Kaylin 18:05 (quit) MayDaniel: Read error: Connection reset by peer 18:14 (join) anRch 18:18 (join) francisl 18:26 (join) k0001_ 18:29 (quit) k0001: Ping timeout: 252 seconds 18:31 (quit) Kaylin: Read error: Connection reset by peer 18:31 (join) Kaylin 18:33 (quit) anRch: Read error: Connection reset by peer 18:33 (join) anRch 18:35 (join) lewis1711 18:41 (quit) anRch: Read error: Connection reset by peer 18:42 (join) anRch 18:43 (join) jonrafkind 18:44 (quit) acarrico: Ping timeout: 265 seconds 18:46 (quit) Kaylin: Read error: Connection reset by peer 18:47 (join) Kaylin 18:48 (quit) anRch: Quit: anRch 18:56 (join) acarrico 19:00 (join) masm 19:01 (quit) masm1: Ping timeout: 256 seconds 19:11 (quit) jeapostrophe: Ping timeout: 250 seconds 19:30 (quit) Kaylin: Read error: Connection reset by peer 19:31 (join) Kaylin 19:38 (quit) SamB: Ping timeout: 265 seconds 19:43 (quit) netrino: Quit: Ave! 19:47 (join) kofno 19:47 lewis1711: is there a way to get the size of a rakcet structs? like in bytes? 19:51 asumu: lewis1711: what would you do with that information? 19:52 lewis1711: asumu: decide whether this part of the project should be done in C or not. have an educated guess on the cost of rackets serializable structs VS the size of them 19:53 asumu: (also, I think the answer is no. After all, if programs started depending on that, the struct representation couldn't change) 19:56 lewis1711: hmm. I guess I'll just try it in racket and if the memory usage is absurdly high will do it in C. from what I can see structs are reference values anyway so it may not be too bad 19:57 (join) dsantiago 19:59 (quit) kofno: Remote host closed the connection 20:04 (join) grettke 20:05 (join) kofno 20:12 (quit) Kaylin: Read error: Connection reset by peer 20:13 (join) Kaylin 20:17 (quit) JStoker: Excess Flood 20:25 (quit) Kaylin: Read error: Connection reset by peer 20:26 (join) dyoo 20:27 (join) Kaylin 20:27 (join) JStoker 20:28 (quit) JStoker: Excess Flood 20:29 (join) PCChris 20:29 (join) SamB 20:30 (join) masm1 20:32 (quit) masm: Ping timeout: 264 seconds 20:34 (join) JStoker 20:35 dyoo: lewis1711: a struct instance is about the size of the type record plus as many pointers as there are fields. See the beginning of scheme_make_struct_instance https://github.com/plt/racket/blob/master/src/racket/src/struct.c#L2134 20:36 dyoo: so it's about what you'd expect from a struct; does that help? 20:41 lewis1711: dyoo: ah yes, that seems more than reasonable. Serializability trumps size in this case :) 20:42 dyoo: It does help that Racket's structures are fairly easy to serialize. :) 20:45 dyoo: lewis1711: there are three kinds of indentation that DrRacket knows how to do (begin-like, define-like, lambda-like). You can customize which rule a user macro should use by going into Preferences/Editing/Indenting, and add the macro's name there. Unfortunately, this is a personal editor thing, and not tied to the definition of the macro. 20:47 (join) jeapostrophe 20:47 (quit) jeapostrophe: Changing host 20:47 (join) jeapostrophe 20:48 dyoo: jeapostrophe, if I wanted to look into video game stuff in Racket, do you have recommendations on what I can look at? 20:49 jeapostrophe: dyoo: my get-bonus repository is my latest work 20:49 jeapostrophe: to run it, it requires some copyrighted material, that I could email you 20:49 dyoo: Ok, I see it. https://github.com/get-bonus/get-bonus, right? 20:50 jeapostrophe: yes 20:50 jeapostrophe: games/maze 20:50 jeapostrophe: is the most complicated one 20:50 jeapostrophe: i'm working on a powerful engine before doing more interesting games 20:50 lewis1711: dyoo: ahh that makes things less ugly 20:50 jeapostrophe: i just re-did the rendering engine to use modern shaders and now it is very very fast 20:50 jeapostrophe: but less algebraic 20:51 jeapostrophe: (if you look at the history there is a better version of my 2d opengl planet package) 20:52 dyoo: Ok, will take a look. Unfortunately, I never could get Jon Rafkind's allegro bindings to work on my mac :( So I'm just looking. 20:52 lewis1711: I dunno if anyone is into roguelike games but there's libtcod bindings 20:52 jeapostrophe: lewis1711: i have a "rl" repo on github, which is a roguelike engine 20:53 dyoo: lewis1711: good god, it has color. :) 20:53 jeapostrophe: (and example game... which is a maze) 20:53 dyoo: (looking at http://doryen.eptalys.net/data/libtcod-projects/pyro_003-full.jpg) 20:53 jeapostrophe: dyoo: lemme know if you have any questions about it. obvs theres no documentation 20:53 lewis1711: yeah the guy who wrote it is totally crazy with his 2d text graphics. great dude 20:53 lewis1711: jeapostrophe: interesting, I'll check it out 20:54 jeapostrophe: DoomRL is my favourite 2d text graphic w/ color game 20:54 lewis1711: jeapostrophe: where might it be? 20:54 jeapostrophe: google "doomrl"... the site is on chaosforge.org i think 20:55 lewis1711: no, your lib 20:55 jeapostrophe: oh 20:55 lewis1711: I've played doom rl :) 20:55 jeapostrophe: github.com/jeapostrophe/rl 20:56 lewis1711: huh, interesting wasn't expecting full on class hierarchies 20:57 jeapostrophe: ya, i've explored many different ideas on organizing games 20:57 jeapostrophe: my current system... domain-specific operating systems with functional ipc... is my favourite 20:58 lewis1711: part of the reason why I've been spending this time with macros is to try prototype objects for games 20:58 lewis1711: I see you too have implemented your own matrix lib LOL 20:59 jeapostrophe: if you look at https://github.com/jeapostrophe/exp/blob/master/foo/ 20:59 jeapostrophe: you can see my functional prototype object system 20:59 jeapostrophe: it's very nice 21:01 lewis1711: yours sorta looks like javascript 21:01 lewis1711: I copied the syntax of neilws protobj thing a lot. and also lua and self 21:01 lewis1711: so, are these like rites of passage for racket programmers? 1. write a small matrix lib. 2. develop an object system 21:02 jeapostrophe: maybe... i've been working in racket for a LONG time, like 11 years now 21:02 jeapostrophe: so i've had a lot of time to write lots of weird stuff 21:03 (quit) ohama: Remote host closed the connection 21:04 (join) nejucomo 21:04 nejucomo: How can I get the path of the current executable? 21:05 lewis1711: http://pastebin.com/SBmKVpcZ here's what mine ended up looking like 21:05 nejucomo: -or more cleanly, I want to find files relative to a test driver, then load them and test their resulting expressions. 21:06 dyoo: nejucomo: just checking: why are you looking for the path of the current executable? 21:06 jeapostrophe: nejucomo: look at find-executable-path in the docs or find-system-path 21:06 (join) mizu_no_oto 21:07 jeapostrophe: lewis1711: i've never used mine for anything interesting, but i made a point to make it functional. yours looks quite cute 21:07 dyoo: The reason I ask is because a common use case is to mimic Python's if __name__ == 'main' idiom, but Racket provides a different way to do it with http://docs.racket-lang.org/guide/Module_Syntax.html#(part._main-and-test). So more information on why you're looking for current executable would be helpful. 21:08 dyoo: nejucomo: oh, just saw the rest of your message. Do you already know about racket/runtime-path? 21:08 dyoo: nejucomo: http://docs.racket-lang.org/reference/Filesystem.html#(mod-path._racket/runtime-path) 21:09 lewis1711: jeapostrophe: mines functional unless you use "!" ;) yeah, I hear that sentiment a lot. "made an object system in LISP, never used it". honestly my main impoetus was that I find rackets class system bewildering and verbose 21:09 jeapostrophe: i agree, i dislike the java-style class system in racket as well 21:09 jeapostrophe: but it's definitely nice re: java 21:09 dyoo: nejucomo: your test driver can refer to the files relative to its own directory by using racket/runtime-path, so that the paths are robust against current-directory. 21:10 jeapostrophe: i just don't like classes very much 21:10 lewis1711: that's not high praise! :( 21:10 nejucomo: dyoo: Oh, I *did* want to emulate python's "main hook" pattern, so that's handy. 21:10 nejucomo looks up runtime-path 21:10 (join) Fare 21:10 (quit) bitonic: Ping timeout: 264 seconds 21:11 lewis1711: jeapostrophe: I don't have a huge problem with classes, but I'd expect a racket object system to be more like smalltalk or ruby than java. there's also that swindle thing that looks interesting 21:11 Fare: looking for speakers for the Boston Lisp Meeting in 2013 21:11 nejucomo: dyoo: Excellent. That's just what I want. 21:11 Fare: Haven't seen much Racket guys lately. 21:11 dyoo: nejucomo: awesome; glad to help! 21:12 Fare: lewis1711, if you're interested in object systems... 21:12 jeapostrophe: lewis1711: Racket's class systems is very consciously designed as Java + first-class classes + mixins as opposed to being inspired by CLOS 21:12 (quit) dyoo: Quit: dyoo 21:12 Fare: I believe the Racket guys want something that is powerful like swindle, but with a better scoping and staging story than "modify global data structures" 21:12 lewis1711: Fare: I am. I am quite a long way from Boston though, and I never even finished undergrad so I'd make a poor speaker :) 21:13 lewis1711: swindle still seems to work 21:13 jeapostrophe: Fare: i'd agree with that :) 21:13 Fare: it works, but it's too much like CLOS, and not enough like Racket. 21:13 nejucomo: lewis1711: I'm not sure finishing undergrad correlates to being a good speaker in programming language topics. ;-) 21:14 Fare: on the other hand, it has a lot of cool CLOS features that the racket class system is lacking. 21:14 (quit) hash_table: Ping timeout: 260 seconds 21:14 lewis1711: nejucomo: LOL perhaps not. being able to write non-trivial macros without help from people here might though :D 21:14 lewis1711: ...speaking of which 21:15 lewis1711: http://pastebin.com/ayrekVm2 how could one write the second macro in terms of the first macro? 21:15 Fare: jeapostrophe, are you coming to .MA any time soon? 21:16 jeapostrophe: Fare: i'll be there again in July. since baby #3 just came, we won't be traveling for a while 21:16 lewis1711: congrats 21:16 Fare: I can understand that -- CONGRATULATIONS, btw! 21:18 jeapostrophe: ya, she was born on 10/24 (i.e. 2^10) :) 21:18 Fare: :) 21:19 (quit) nejucomo: Ping timeout: 276 seconds 21:20 eli: jeapostrophe: I think that selling it as "Java + " is a very misleading, since that stuff is pretty important. 21:20 Fare: eli! How are you? 21:20 eli: Also "mixins" is not a good term, since CLOS has them too, except that in the Racket system they're a byproduct of first-class class values. 21:20 jeapostrophe: eli: nevertheless it was DESIGNED as "make Java" and then stuff started getting added 21:20 jeapostrophe: that's all I meant 21:21 eli: Fare: Meh. 21:21 eli: jeapostrophe: I think that first-class classes were there since the beginning (at least since I started using it, around 1998), and that's big enough to be far from Java... 21:21 (join) pd520 21:27 lewis1711: can't mixins be easily modelled with multiple inheritance? IE just inherit from one fully fledged class, and one class that's all just methods 21:28 asumu: lewis1711: depends. Racket's mixins are first-class and can compose at run-time. 21:28 asumu: So you couldn't do that in, say, C++ even with MI. 21:29 lewis1711: by compose at run time, you mean add them to a class at run time? 21:30 Fare: asumu: yeah, they are more first-class mixing than mixins 21:30 Fare: or first-class extension. 21:30 Fare: lewis1711, pure functional style 21:31 lewis1711: I do not understand this 21:32 lewis1711: I am familiarish with rubys object system, so i am not horribly crippled by java-vision 21:32 Fare: you don't modify a class in-place, you create a new, extended class 21:32 Fare: or course, you can re-bind a variable to the new extended class value. 21:32 lewis1711: what benefit is doing that at run time? 21:33 Fare: one man's runtime is another man's compiletime. 21:33 asumu: DrRacket plugins, for example, can compose into the classes that control its main window or editor. 21:33 lewis1711: I never thought about classes that way 21:34 lewis1711: in terms of composing them at least 21:37 (join) myx 21:38 (quit) mithos28: Quit: mithos28 21:38 (join) mye 21:42 (join) nejucomo 21:44 nejucomo: Hm... Earlier dyoo pointed me to http://docs.racket-lang.org/guide/Module_Syntax.html#(part._main-and-test) 21:44 nejucomo: -but my debian package of racket doesn't have that section and doesn't recognize (module* ...). 21:44 nejucomo: Is v5.2.1 old? 21:46 Fare: get git 21:49 lewis1711: nejucomo: yeah 5.3.1 is the latest 21:51 (quit) jeapostrophe: Read error: Connection reset by peer 21:52 (join) jeapostrophe 21:52 (quit) jeapostrophe: Changing host 21:52 (join) jeapostrophe 21:58 nejucomo: Is there a (path? . -> . string?) function? 21:59 nejucomo: Better yet, is there a web search tool like hoogle where the queries can include contracts? 21:59 lewis1711: you surely mean (-> path? string?) :( 21:59 (join) bjz 22:00 (join) spiderweb 22:00 nejucomo: lewis1711: See http://docs.racket-lang.org/guide/contract-func.html#%28part._.Styles_of_-_%29 22:00 rudybot: http://tinyurl.com/ctav56w 22:00 bremner: nejucomo: 5.3.1 is in Debian unstable 22:01 nejucomo: bremner: Thanks. 22:01 bremner: welcome 22:01 nejucomo: Off to dinner. Thanks for chatting, fellow racketeers. 22:02 (quit) nejucomo: Quit: leaving 22:05 (quit) masm1: Quit: Leaving. 22:10 (join) mithos28 22:11 (quit) spiderweb: Quit: leaving 22:11 (quit) jao: Ping timeout: 245 seconds 22:21 (quit) francisl: Quit: francisl 22:26 (join) sw2wolf 22:34 (join) francisl 22:37 (quit) mithos28: Quit: mithos28 22:38 (join) ambrosebs 22:42 (quit) Kaylin: Quit: Leaving. 22:43 (join) Kaylin 22:46 (quit) dnolen: Quit: ERC Version 5.3 (IRC client for Emacs) 22:47 (join) mye_ 22:49 (quit) mye: Ping timeout: 250 seconds 22:49 (nick) mye_ -> mye 22:49 (quit) Shviller: Ping timeout: 260 seconds 22:50 (join) Shviller 22:54 (quit) walter: Ping timeout: 256 seconds 22:58 (quit) Kaylin: Quit: Leaving. 23:05 (quit) nathanpc: Quit: Computer has gone to sleep. 23:06 (quit) mizu_no_oto: Quit: ["Textual IRC Client: www.textualapp.com"] 23:10 (join) tsion 23:10 (quit) tsion: Changing host 23:10 (join) tsion 23:32 (quit) kofno: Remote host closed the connection 23:38 (quit) myx: Ping timeout: 250 seconds 23:41 (quit) ambrosebs: Ping timeout: 265 seconds 23:43 (join) mizu_no_oto 23:44 (part) sw2wolf: "ERC Version 5.3 (IRC client for Emacs)" 23:45 (quit) jeapostrophe: Ping timeout: 250 seconds 23:52 (quit) francisl: Quit: francisl