00:28 (part) univyrse: "Leaving" 00:31 (quit) adu_: Quit: adu_ 00:35 (join) jonrafkind 00:36 wkelly: yeah, I am a recent racket user and haven't been able to get into dr racket. I like the HTDP content, but I miss my emacs 00:37 wkelly: I keep trying it, though, because I like the pictures :P 00:50 Sgeo: I had Emacs set up (for Clojure) on my Windows partition, but Windows hasn't been working lately so I've been using Linux but still haven't gotten Emacs really set up 00:55 Sgeo: What means are there for working with mutable data in a thread-safe way in Racket 00:55 Sgeo: Any locking mechanisms? 00:59 (quit) kofno: Remote host closed the connection 01:00 wkelly: Sgeo: there are a few options. http://docs.racket-lang.org/reference/all-sync.html 01:01 wkelly: er 01:01 wkelly: http://docs.racket-lang.org/reference/threads.html#(part._threadsync) 01:01 Sgeo: :/ 01:02 wkelly: it is not clojure 01:02 wkelly: hehe 01:02 (join) mye_ 01:02 Sgeo: But it has lightweight threads 01:02 Sgeo: I want to be able to get a lot of use out of the lightweight threads 01:02 wkelly: Sgeo: I think using the thread mailboxes is the way 01:02 Sgeo: A partial reason to switch away from Clojure, I think >.> 01:03 wkelly: Sgeo: I am still a noob and don't do much concurrent programming 01:04 wkelly: when I do, I rarely have significant shared state 01:04 wkelly: so perhaps you should try asking again when there are more people around 01:05 (quit) mye: Ping timeout: 264 seconds 01:05 (nick) mye_ -> mye 01:12 (join) Sgeo_ 01:12 (quit) Sgeo: Ping timeout: 245 seconds 01:17 (join) shriphani_ 01:21 shriphani_: hi everyone. I am trying to run #lang web-server/insta in emacs with geiser and I get this: http://pastebin.ca/2298899 . Where is this insta.rkt on mac os x by default? 01:33 Sgeo_: In practice, how often can I use syntax-rules instead of needing to do something like syntax-case or start taking apart syntax objects? 01:33 Sgeo_: As in, how often do people generally find they can get away with syntax-rules for their needs 01:37 (join) Kaylin 01:52 (quit) dnolen: Remote host closed the connection 02:00 jonrafkind: 46.2% 02:04 Sgeo_: ...? 02:04 Sgeo_: Not sure whether to take that as sarcasm or actually running a program to find uses of syntax-rules-ish stuff vs other stuff 02:06 jonrafkind: don't worry about syntax-rules vs syntax-case. just use whatever wroks 02:10 (join) anonymouse_ 02:14 asumu: shriphani_: what's the content of a.rkt? 02:14 shriphani_: asumu: the racket web-server tutorial at http://docs.racket-lang.org/continue/ 02:16 (join) bniels 02:17 shriphani_: i don't really mind using Dr. Racket but it is no emacs. 02:17 asumu: I'm guessing it's a geiser issue, since I can't reproduce it with xrepl's ,enter. 02:19 asumu: Or maybe you can try running racket from the commandline and see if it errors there too. 02:24 (join) mceier 02:33 shriphani_: asumu you use xrepl from within emacs ? 02:33 shriphani_: i.e. spin up a shell and then xrepl ? 02:46 (quit) anonymouse_: 02:49 Sgeo_: Will the Swindle documentation problem ever be fixed? 02:49 Sgeo_: The Swindle page on the Racket site says to go to Barzilay's page, and Barzilay points back to PLT Scheme 02:51 (quit) francisl: Quit: francisl 02:52 asumu: shriphani_: hmm, I get the same error on Linux actually (just installed geiser) 02:52 asumu: So I think it's a geiser issue. 02:52 shriphani_: ah 02:58 (join) flying_rhino 02:58 flying_rhino: hello 02:58 flying_rhino: hello guys 03:00 Sgeo_: hi 03:01 flying_rhino: Has anyone watched Steve Yegge on Grok project? He had a presentation about that a few days back? 03:03 flying_rhino: I bring it up because it is relevant for racket compiler 03:03 flying_rhino: do you know why? 03:04 asumu: No, why? 03:06 flying_rhino: in short Grok project is a titanic project designed to make source code, (all source code of all languages) searchable. Not searchable like Google search (where you enter some prase and it finds stuff that roughly fits), but more like wikipedia (you search for certain function or class or variable and it finds where it is used) 03:07 flying_rhino: The goal is to make that information available for IDEs so you can have universal IDE as a client. 03:07 flying_rhino: But for it to work, compiler must first compile code in special mode that outputs code in some kind of annotated AST from 03:08 flying_rhino: They already got plenty of compiler writers on board with the project 03:09 flying_rhino: they been working on it for some time 03:11 flying_rhino: Steve Yegge's grand goal is to make it easy to create quality tools for languages that don't have them. So you won't have to always pick Java, C# and C++ just because those languages usually have better toolchain. 03:12 flying_rhino: I am not compiler writer myself, but maybe those who are should step up and help him. Coz I had it with Java having all the cool stuff. 03:13 willem: flying_rhino: do you have a link to some presentation material (slideshow, video, ...)? 03:13 flying_rhino: it's on youtube 03:13 flying_rhino: just search for steve yegge grok 03:13 willem: flying_rhino: thx 03:15 willem: http://www.youtube.com/watch?v=KTJs-0EInW8 03:15 flying_rhino: yeah that's the one 03:20 Sgeo_: flying_rhino, I take it that it will never work for Tcl :( 03:23 Sgeo_: Tcl is very eval based. If you want to write your own if, for example, you take blocks of code as strings then conditionally eval (actually uplevel, but that's a sort of eval) them 03:23 flying_rhino: they are trying to get interpreter writers on board too 03:24 flying_rhino: idea is to run code in special mode and then create annotated tree 03:24 flying_rhino: but tey are still far from that 03:24 asumu: flying_rhino: probably worth bringing up on the Racket mailing list. Not many people here work on the compiler part. 03:24 flying_rhino: but they are implementing support for macros 03:25 flying_rhino: so you can "expand" macro from your IDE 03:26 flying_rhino: asumu: can you do that? I never post there. Just browsed it couple of times. 03:32 flying_rhino: (If you don't want to I can do that easily, but I never hang there) 03:49 (quit) jonrafkind: Ping timeout: 255 seconds 03:55 flying_rhino: how quickly posts show up on mailing list archive http://www.mail-archive.com/dev@racket-lang.org/maillist.html ? Same day or the day after? I am not subscribed there. 04:01 (join) mastodon_agha 04:03 (quit) flying_rhino: Ping timeout: 240 seconds 04:04 (quit) mastodon_agha: Client Quit 04:07 (join) flying_rhino 04:07 flying_rhino: my connection died 04:08 flying_rhino: so guys, are you going to bring this up on the mailing list or am I going to do that? 04:09 Sgeo_: I don't think anyone responded 04:11 flying_rhino: Anyway Steve Yegge has always been great advocate of less popular languages (including LISP), especially those that are partially dynamic, so I think we should support this effort. 04:11 Sgeo_: "A Scheme -to- syntax-rules compiler" 04:11 Sgeo_: Oleg is always awesome 04:11 Fare: Oleg is beyond awesome. He's mindboggling. 04:12 flying_rhino: who on earth is he? 04:13 flying_rhino: and how much beyond awesome :) ? 04:14 Sgeo_: http://okmij.org/ftp/ 04:14 (quit) Kaylin: Quit: Leaving. 04:15 flying_rhino: thanks 04:15 Sgeo_: You're welcome 04:18 (join) bitonic 04:31 flying_rhino: there was also another video by Steve Yegge on static analysis a few years back (right when they got started with this thing) but it got lost when google videos closed. 04:38 (join) noelw 04:40 (quit) noelw: Client Quit 04:41 (join) noelw 04:50 (join) MayDaniel 05:01 (join) kofno 05:04 (join) myx 05:06 (quit) kofno: Ping timeout: 272 seconds 05:13 (quit) Fare: Quit: Leaving 05:15 (quit) flying_rhino: Ping timeout: 276 seconds 05:19 (join) flying_rhino 05:20 (quit) bniels: Remote host closed the connection 05:23 (join) bniels 05:51 (quit) bitonic: Ping timeout: 272 seconds 05:53 (join) mastodon_agha 05:54 (quit) noelw: Quit: noelw 05:57 (quit) flying_rhino: Ping timeout: 260 seconds 06:05 (join) hash_table 06:17 (join) anonymous 06:17 anonymous: Hello everyone 06:17 (join) jeapostrophe 06:17 (quit) jeapostrophe: Changing host 06:17 (join) jeapostrophe 06:18 anonymous: Can I discuss documentation here? 06:18 anonymous: typos, changes etc. 06:18 anonymous: the* 06:19 asumu: anonymous: sure 06:20 asumu: shriphani_: turns out I didn't get the same error. The example worked for me in geiser. Does your Racket distribution not include the web-server by any chance? 06:20 shriphani_: I am able to use it from Dr. Racket 06:20 asumu: Hmm, that's odd. 06:30 Sgeo_: Sure that Geiser and DrRacket are using the same Racket install? 06:31 Sgeo_ is just guessing 06:33 anonymous: Each binding clause is an ‹id› and a ‹expr› surrounded by square brackets 06:34 anonymous: a expr 06:34 anonymous: : grammar error 06:34 anonymous: http://docs.racket-lang.org/guide/syntax-overview.html 06:34 anonymous: grammatical* 06:35 anonymous: (sorry, English is not my native) 06:37 anonymous: (but I'm going to work hard with English grammar, I haven't complete it all, though) 06:38 anonymous: I have posted the mistake here: have I done enough? Is it going to be corrected? 06:39 (quit) jeapostrophe: Ping timeout: 276 seconds 06:41 anonymous feels sad that he has started to talk here with mistakes 06:41 anonymous: So, is there anyone here who looks in the chat? 06:43 anonymous: Boo :( 06:43 Sgeo_: hi 06:43 anonymous: Hi! 06:43 Sgeo_: I'm not really a person in position to fix documentation mistakes, though 06:43 Sgeo_: Although I am someone who just complains about them in channel and hopes for the best lol 06:44 anonymous: :)) 06:44 anonymous: Also, 06:45 anonymous: Ah, nevermind yet. 06:45 anonymous: I have just started to read the reference 06:45 anonymous: Racket evaluation can be viewed as the simplification of expressions to obtain values. 06:46 anonymous: The word "simplification" a bit irritates me because of ambiguity. It is explained, but I maybe it can be formulated much better. 06:47 anonymous: Probably, it is only me, and maybe even just yet. 06:47 anonymous: It is explained, but... it can be better. 06:47 anonymous: . 06:48 anonymous: Maybe someone thinks just the same... 06:49 anonymous: "simplification" is the awful word here. 06:55 anonymous: Is there anyone who thinks different about it here? 06:56 anonymous: from me? 07:05 (quit) vu3rdd: Ping timeout: 240 seconds 07:08 (quit) hash_table: Ping timeout: 240 seconds 07:13 asumu: anonymous: "simplification" is a commonly used term in arithmetic/math, so it's probably trying to reference that. 07:13 asumu: You can just replace "simplification" with "reduction" if it suits you (though I don't really see how that's clearer). 07:14 asumu: I'll fix the a/an typo. 07:16 (quit) karswell: Remote host closed the connection 07:23 (join) jeapostrophe 07:23 (quit) jeapostrophe: Changing host 07:23 (join) jeapostrophe 07:28 (join) RacketCommitBot 07:28 RacketCommitBot: [racket] plt pushed 1 new commit to master: http://git.io/J4wEvg 07:28 RacketCommitBot: racket/master 3885ea7 Asumu Takikawa: Fix doc typos 07:28 (part) RacketCommitBot 07:28 (join) karswell 07:28 asumu: anonymous: fixed, thanks for the report 07:30 anonymous: asumu: Thank you very much for the answer about simplificaton/reduction and the fixing 07:31 anonymous: Not at all! 07:37 asumu: anonymous: also, if the channel is quiet (it's often quiet during US night hours) feel free to submit bugs to the bug tracker: http://bugs.racket-lang.org/ 07:37 asumu: (or through DrRacket) 07:48 (join) dented42 07:51 anonymous: Ok 07:52 (quit) karswell: Remote host closed the connection 07:57 (quit) Nisstyre-laptop: Read error: Operation timed out 08:02 Sgeo_: Can I have a piece of syntax f such that (a b c f g) is transformed by f? 08:03 (join) karswell 08:07 (join) mizu_no_oto 08:11 (join) bitonic 08:14 (quit) shriphani_: Ping timeout: 264 seconds 08:15 (join) shriphani_ 08:28 (quit) karswell: Remote host closed the connection 08:31 (join) kofno 08:39 (join) karswell 08:40 (join) noelw 08:40 (quit) mizu_no_oto: Quit: Computer has gone to sleep. 08:43 (quit) shriphani_: Quit: shriphani_ 08:58 (join) mizu_no_oto 09:03 (quit) karswell: Remote host closed the connection 09:06 (join) soegaard 09:16 (join) karswell 09:16 chandler: Sgeo_: you could do it in a custom #lang by having #%app check for some specific syntactic property of f, but I don't think there's a way to do that in #lang racket. 09:19 Sgeo_: I don't think I actually need that ability, as it turns out (although it would be nice) 09:19 Sgeo_: Do have bigger concerns though 09:20 Sgeo_: Want something like dynamic scoping except with things in other threads or running after the dynamic extent has ended still able to see the value 09:26 (join) nielsb 09:28 (quit) bniels: Ping timeout: 255 seconds 09:30 (quit) karswell: Remote host closed the connection 09:34 (join) dnolen 09:36 (quit) dsantiago: Quit: Computer has gone to sleep. 09:36 (join) RacketCommitBot 09:36 RacketCommitBot: [racket] plt pushed 2 new commits to master: http://git.io/MFIqYg 09:36 RacketCommitBot: racket/master e98c308 Matthew Flatt: bundle script: fixes for "README" munging 09:36 RacketCommitBot: racket/master 42c77d6 Matthew Flatt: planet2 docs: move and tweak expanation of package-library `require' 09:36 (part) RacketCommitBot 09:36 Sgeo_: Swindle seriously needs up-to-date documentation 09:37 Sgeo_: Unless http://www.barzilay.org/Swindle/ is actually up-to-date despite it saying otherwise? 09:38 soegaard: Sgeo_: Was it you that where interested in bigfloats? 09:38 soegaard: http://pre.racket-lang.org/docs/html/math/bigfloat.html 09:38 Sgeo_: soegaard, probably not 09:39 Sgeo_: Oh, I might have accidentally made it seem like I was. I was interested in arbitrary extension of the numeric tower 09:39 soegaard: Okay. 09:41 (join) karswell 09:45 Sgeo_: soegaard, and also, computable reals 10:12 (quit) nielsb: Quit: WeeChat 0.3.8 10:28 (quit) mceier: Quit: leaving 10:30 willem: Is it possible in Redex to specify specific numbers in a grammar? So instead of (v number) something like (v 1 2 3) ? 10:31 (quit) dnolen: Ping timeout: 276 seconds 10:35 (join) jonrafkind 10:41 (join) shriphani_ 10:52 (quit) karswell: Remote host closed the connection 10:58 (quit) mizu_no_oto: Quit: ["Textual IRC Client: www.textualapp.com"] 10:58 (join) anRch 11:02 (join) karswell 11:09 (quit) anonymous: Ping timeout: 276 seconds 11:16 (quit) ivan`: Ping timeout: 244 seconds 11:16 (quit) kofno: Remote host closed the connection 11:17 (join) bitonic` 11:17 (quit) rapacity: Ping timeout: 244 seconds 11:18 (join) ivan` 11:19 (join) rapacity 11:19 (quit) bitonic: Ping timeout: 255 seconds 11:20 jeapostrophe: asumu: do you know how to turn of background expansion? 11:29 stamourv: mithos28: pong 11:29 stamourv: Replying to your email. 11:31 (nick) bitonic` -> bitonic 11:38 (quit) karswell: Read error: Connection reset by peer 11:42 (join) mceier 11:48 (join) karswell 11:50 (quit) anRch: Quit: anRch 11:59 (quit) noelw: Quit: noelw 12:00 (join) RacketCommitBot 12:00 RacketCommitBot: [racket] plt pushed 1 new commit to master: http://git.io/7THlOA 12:00 RacketCommitBot: racket/master 12a288f Robby Findler: add a checkbox to disable online expansion in the preferences dialog... 12:00 (part) RacketCommitBot 12:03 (join) RacketCommitBot 12:03 RacketCommitBot: [racket] plt pushed 1 new commit to master: http://git.io/zwekFQ 12:03 RacketCommitBot: racket/master 69d7cb2 Jens Axel Søgaard: More matrix documentation 12:03 (part) RacketCommitBot 12:06 (join) anonymous 12:06 (quit) shriphani_: Quit: shriphani_ 12:09 (join) shriphani_ 12:25 (join) mizu_no_oto 12:27 (join) samth 12:27 (quit) samth: Changing host 12:27 (join) samth 12:36 (join) bitonic 12:42 (quit) karswell: Remote host closed the connection 12:42 (quit) bitonic: Ping timeout: 240 seconds 12:42 (join) noelw 12:46 (join) bitonic 12:50 (join) Kaylin 12:52 (join) karswell 13:19 (join) anRch 13:22 (quit) spiderweb: Quit: ERC Version 5.3 (IRC client for Emacs) 13:22 (join) spiderweb 13:25 (quit) jeapostrophe: Ping timeout: 276 seconds 13:31 (quit) Kaylin: Read error: Connection reset by peer 13:35 (join) flying_rhino 13:38 (quit) mastodon_agha: Ping timeout: 260 seconds 13:41 (quit) spiderweb: Ping timeout: 272 seconds 13:42 (join) spiderweb 13:50 (quit) shriphani_: Quit: shriphani_ 13:52 (quit) flying_rhino: Ping timeout: 240 seconds 13:54 (join) adu_ 13:59 (quit) anRch: Quit: anRch 14:25 (quit) mizu_no_oto: Quit: ["Textual IRC Client: www.textualapp.com"] 14:25 (quit) spiderweb: Quit: ERC Version 5.3 (IRC client for Emacs) 14:26 (quit) karswell: Remote host closed the connection 14:27 (join) spiderweb 14:37 (join) karswell 14:39 (join) mizu_no_oto 14:54 (join) jeapostrophe 14:54 (quit) jeapostrophe: Changing host 14:54 (join) jeapostrophe 14:57 (quit) adu_: Quit: adu_ 14:57 (join) kofno 14:58 (join) hash_table 15:00 (quit) kofno: Remote host closed the connection 15:02 (join) danl-ndi 15:05 danl-ndi: is there a way to configure error-print-context-length on the command line? 15:12 danl-ndi: also, is anyone familiar enough with the trace module to help with this error: 15:12 danl-ndi: collects\racket\private\qq-and-or.rkt:144:51: compile: cannot use identifier tainted by macro transformation in: let-values 15:13 danl-ndi: I get it require-ing my module after require-ing trace 15:13 soegaard: that is one strange error 15:17 (quit) hash_table: Ping timeout: 252 seconds 15:18 danl-ndi: yep. 15:18 danl-ndi: what's the correct way to trace a specific function? 15:20 soegaard: I always use DrRacket. If the stack trace isn't enough to find the mistake, I use displayln to print variables. 15:20 soegaard: I never use trace. 15:26 (quit) jeapostrophe: Ping timeout: 248 seconds 15:46 (join) josdeha_rt 15:48 stamourv: danl-ndi: Can you post your code, or a simplified version of it? 15:48 (join) Nimonicus 15:48 stamourv: Seems you're trying to do something funny with the input of your macros to hit that error message. 15:49 stamourv: Are you trying to `trace' something from another module? 15:50 (quit) josdeha_rt: Remote host closed the connection 16:02 (quit) karswell: Remote host closed the connection 16:07 (quit) Nimonicus: Quit: Page closed 16:13 (join) karswell 16:13 (join) Nisstyre-laptop 16:17 (join) klr 16:18 klr: how do i compile racket without dr racket and all that? 16:24 stamourv: klr: There are multiple ways. 16:24 stamourv: The easiest is probably to get the racket-textual distribution. 16:25 stamourv: If you want to compile it yourself, you can to `make' and `make plain-install', which doesn't build the Racket libraries (which includes DrRacket). 16:25 stamourv: On that's done, you can compile the libraries you want. 16:25 stamourv: s/On/Once/ 16:27 klr: okey 16:27 klr: thanks 16:27 stamourv: No problem! 16:27 stamourv: If you have any questions, just ask! 16:27 klr: how do i now install the libraries? 16:28 stamourv: `raco setup foo', where foo is the library you want. 16:28 stamourv: `make plain-install' should install the `raco' executable. 16:28 stamourv: IIRC, at least. If not, there are other ways. 16:29 klr: i dont think so 16:29 klr: hmm, well, does the "make uninstall" removes everything? 16:30 klr: i maybe just do make install and then i've read HTDPe2 i just uninstall everything 16:31 stamourv: By default, Racket installations are self-contained. You can just delete the whole directory. 16:32 klr: okey 16:32 stamourv: If you configured it with a prefix, I think it installs an uninstaller in $PREFIX/bin. 16:32 stamourv: But I'm not sure. I usually do self-contained installs. 16:32 klr: i did make --prefix=/usr 16:32 anonymous: Where can I find the rules of this channel? 16:33 stamourv: klr: Ah, then in that case you may need the uninstaller. 16:33 stamourv: Lemme check if the installer does indeed install one. 16:33 stamourv: anonymous: What do you mean? 16:34 anonymous: stamourv: Sometimes channel have rules: i.e. can I talk here about not racket? Must I behave according to the Raymond's rules of asking etc 16:34 klr: stamourv: oh :( eh i hope i can find one then, cause i dont like having unused files all around my system 16:35 anonymous: about things that aren't related to racket at all* 16:35 stamourv: klr: `racket-uninstall' should be generated in $PREFIX/bin 16:35 anonymous: (almost?) :) 16:35 stamourv: Just checked the installer source. 16:35 anonymous: Can I use taboo words here etc. 16:36 stamourv: anonymous: AFAIK, we don't have specific rules. But general guidelines of polite society do apply. ;) 16:36 stamourv: As long as you respect other users, and keep the conversation reasonably on-topic, you should be fine. 16:38 klr: may i ask, is Racket a general implementation of Scheme or is it mostly designed for learning? 16:39 (quit) mizu_no_oto: Quit: ["Textual IRC Client: www.textualapp.com"] 16:39 anonymous: stamourv: Thanks! 16:39 stamourv: klr: Racket is a general purpose programming language which is a descendent of Scheme. 16:40 stamourv: It includes teaching languages, but the main Racket language `#lang racket' is used in production. 16:41 stamourv: Racket has a large standard library (which includes a web server, pattern matching, etc.), and a lot of 3rd party packages available, on PLaneT, github, etc. 16:41 stamourv: Some of the channel regulars are professional Racket programmers. 16:42 klr: okey thanks 16:45 klr: will HTDPe2 teach me Racket or just the teaching language? 16:45 stamourv: HTDP uses the teaching languages. 16:46 stamourv: But once you understand the basics, picking up Racket should not be too hard. 16:46 stamourv: The Racket docs include several tutorials, and the Racket Guide (also in the docs) is a pretty good introduction. 16:46 stamourv: What's your programming background? 16:46 (quit) MayDaniel: Read error: Connection reset by peer 16:47 klr: ive tried learning many times, but i've never really learned how to program and not a complete language just the very basic syntax 16:48 stamourv: In that case, I recommend starting with HTDP 2e, then the Racket Guide and tutorials. 16:48 stamourv: I really like HTDP 2e as a first programming introduction. 16:49 stamourv: There's also Realm of Racket coming out in a couple of months, which looks pretty cool. 16:49 klr: okey nice, ill add #racket to my channels 16:50 stamourv: :D 16:50 (join) MayDaniel 16:50 klr: ive played around a little bit with Scheme recently, i've tried to read SICP and have read a little bit in The Little Schemer, but SICP is too advanced for me even though it's a very well written text 16:50 stamourv: I'm not a big fan of SICP, to be honest. 16:51 klr: why not? 16:51 stamourv: As an intro to programming, it leaves way too much implicit. Students are forced to fill in the gaps, which makes it hard to follow in places. 16:51 stamourv: As an advanced programming textbook, it doesn't go into enough depth into the topics it covers (interpreters, etc.). 16:52 klr: okey 16:52 klr: it's intended for MIT students 16:52 stamourv: So basically, it tries to be both introductory and advanced at the same time, which doesn't work. 16:52 stamourv: It is, and it probably worked fine there. 16:53 stamourv: But I personally prefer the combo of HTDP + PLAI. 16:53 klr: what's PLAI? 16:53 stamourv: Programming Languages: Application and Interpretation. 16:53 klr: oh, is it another MIT book? 16:53 stamourv: It's a freely available programming languages textbook. 16:54 stamourv: It's from Shriram, at Brown. 16:54 klr: okey 16:54 klr: just finished installing Racket, gonna try write fibonacci :-) 16:54 stamourv: It's not really a programming textbook, but it covers the advanced topics from SICP (much better, IMO), and goes way further. 16:54 bremner: shriram's video lectures are on line too, and they're quite good. 16:55 stamourv: (It's also more up to date, SICP really shows its age in places.) 16:55 stamourv: Yeah, I've enjoyed them a lot. 16:55 klr: okey, ill read HTDPe2 first, then Racket guides, try to write some simple programs and then read PLAI? 16:55 stamourv: Gregor Kiczales (University of British Colombia) will be giving an HTDP-based course on coursera in a couple of months. That sounds really cool. 16:56 stamourv: klr: Sounds like a good plan! 16:56 klr: :-) 16:56 stamourv: And feel free to ask any questions here. 16:56 klr: thanks 16:56 stamourv: The channel can be a bit quiet at certain times of the day, though. 16:56 (join) jao 16:56 (quit) jao: Changing host 16:56 (join) jao 16:57 klr: well, then i probably can ask #programming or #chicken 16:58 klr: is fibonacci a tree recursive funtion? 16:58 stamourv: Depends on how you write it. ;) 16:58 asumu: https://twitter.com/ClojureWest/status/286921638249906176 16:58 stamourv: The straightforward definition is. 16:59 (join) mizu_no_oto 16:59 stamourv: asumu: :D 16:59 klr: (define (fib n) (cond ((= n 0) 0) ((= n 1) 1) (else (+ (fib (- n 1)) (fib (- n 2)))))) 17:01 klr: well, good night foks' 17:01 (quit) klr: Quit: Lost terminal 17:12 samth: asumu: are you back in this time zone? 17:19 (quit) karswell: Remote host closed the connection 17:20 asumu: samth: not yet. 17:21 anonymous: Is Racket good for virtual reality/games? 17:22 anonymous: Is it going to? 17:22 anonymous: (if not yet) 17:24 stamourv: Naughty Dog Games uses Racket. 17:24 anonymous: (if speed doesn't matter) 17:24 stamourv: And jeapostrophe build games in Racket. 17:25 stamourv: Also, the upcoming Realm of Racket book is about learning Racket by writing games. 17:29 (join) karswell 17:31 (join) Nimonicus 17:31 anonymous: stamourv: thank you very much! What about OpenGL technology? ( I the tutorial, but it's for very old version ) 17:31 anonymous: i saw a tutorial* 17:32 (quit) mizu_no_oto: Quit: Computer has gone to sleep. 17:33 stamourv: I haven't used Racket's opengl bindings, but IIRC, there are some bindings in the standard library, and some on PLaneT. 17:36 (quit) anonymous: Remote host closed the connection 17:36 (join) anonymous 17:36 anonymous: stamourv: Thank you very much! 17:43 (nick) noam__ -> noam 17:52 (join) mithos28 17:56 Nimonicus: Hello all 17:56 anonymous: Hi 18:01 (quit) Nimonicus: Ping timeout: 245 seconds 18:10 (quit) myx: Ping timeout: 248 seconds 18:10 (quit) anonymous: Quit: leaving 18:20 (join) Nimonicus 18:22 (quit) noelw: Quit: noelw 18:22 Nimonicus: Is it possible to use a macro to fill in the body of a lambda with code that references the lambda's arguments? 18:23 mithos28: Nimonicus: yes, just pass in the arguments to the macro 18:23 Nimonicus: Would you take a look at an example i wrote up? http://pastebin.com/bwu5KD3t 18:24 jonrafkind: you have to pass 'function-to-call' to the macro 18:25 jonrafkind: i guess you could use syntax-parameters here 18:25 Nimonicus: and also pass in arg1 arg2? 18:25 jonrafkind: yea 18:26 jonrafkind: any identifiers introduced by the macro are different from identifiers that are used in the macro call, even if they have the same name 18:27 (quit) mithos28: Quit: mithos28 18:29 Nimonicus: so what would be the proper way to access a macro parameter in the body of the lambda 18:29 Nimonicus: since internal-constant is used by the lambda 18:29 jonrafkind: in your use case I would use syntax-parameters 18:30 Nimonicus: I'll read up on them more 18:30 Nimonicus: Thank you 18:31 jonrafkind: http://blog.racket-lang.org/2011/04/writing-syntax-case-macros.html 18:31 jonrafkind: http://blog.racket-lang.org/2008/02/dirty-looking-hygiene.html 18:31 jonrafkind: these might help you too 18:33 Sgeo_: jonrafkind, maybe you can help me 18:33 Sgeo_: I want to write a macro, with-foo, that, within with-foo, foo is lexically defined 18:33 Sgeo_: But I also want to call functions within this body 18:34 (quit) spiderweb: Quit: ERC Version 5.3 (IRC client for Emacs) 18:34 Sgeo_: And outside of the with-foo, I want to be able to, within the functions that I call, also have foo lexically defined 18:34 Sgeo_: Sort of a dynamic scope but without the issues that come up when they're stored and run later and the dynamic binding is no longer present 18:35 jonrafkind: sounds like another use case for syntax-parameters 18:35 Sgeo_: Hmm, how so? 18:35 Sgeo_: Wouldn't that only define foo within with-foo, but not outside of with-foo's lexical scope? 18:35 jonrafkind: do you want to bind foo outside with-foo and have its value propagate to foo's inside with-foo? 18:36 Sgeo_: (I'm fine with there being another form with-ability-to-use-foo surrounding my external function, but not with define-foo-using-function 18:36 Sgeo_: Hmm, not sure 18:36 jonrafkind: if you want the value to change at runtime then its a use of regular parameters 18:36 Sgeo_: Maybe a concrete example of what I want to do would help 18:37 jonrafkind: and with-foo sounds like it would just expand to (parameterize ([foo 12]) ...) 18:39 Sgeo_: The problem with regular parameters is that, as far as I understand, if I call a function that uses them within the lexical but outside the dynamic scope of the parameterize, they won't see the parameterized values 18:39 Sgeo_: Say, I take a function that's supposed to see this and set it as a callback to some GUI thing 18:41 (quit) soegaard: Quit: soegaard 18:50 (join) soegaard 19:00 (join) jeapostrophe 19:00 (quit) jeapostrophe: Changing host 19:00 (join) jeapostrophe 19:03 (quit) soegaard: Quit: soegaard 19:05 Sgeo_: Hmm. I should practice writing a macro-writing macro 19:10 Sgeo_: Oh, identifier macros are what I was asking about before, I guess, with the (a b c d e f g) taken control by f thing 19:14 (quit) jeapostrophe: Ping timeout: 248 seconds 19:17 (join) mizu_no_oto 19:24 (quit) bitonic: Ping timeout: 252 seconds 19:25 Sgeo_: Is there a built in function f such that, if g is a function, (f g) is effectively g except with parameters such as they were when f was called? 19:25 Sgeo_: Or something along those lines? 19:29 asumu: Sgeo_: that seems like it defeats the entire point of using parameters. Do you have a use case for this? 19:29 asumu: (i.e., if you don't actually want dynamic scoping you can just use lexically scoped references instead) 19:30 Sgeo_: I can't use lexical scoping because I want to write functions that use these things outside of the lexical scope in which they are set 19:31 Sgeo_: Hrm, had an interesting thought 19:32 Sgeo_: My main objection to the clojure.algo.monads way of doing things (providing a defmonadfn that makes a function that takes extra arguments) is that it's not very composable. What if I have different use cases for similar structures, and what if I want to write a lambda 19:32 Sgeo_: But I could make a macro or function (not sure) that wraps a lambda, and maybe a define-function-with-wrapper form that takes several wrappers and otherwise acts like define's shortcut syntax 19:35 (join) lambdakitten 19:50 (quit) karswell: Remote host closed the connection 20:00 Sgeo_: Has anyone looked into implementing Kernel as a Racket language? 20:00 (join) karswell 20:02 jonrafkind: whats kernel 20:03 Sgeo_: http://web.cs.wpi.edu/~jshutt/kernel.html 20:04 Sgeo_: No special forms. fexprs, that somehow do lexical scoping I think 20:05 jonrafkind: i dunno whats the point 20:06 Sgeo_: First-class macro-like things, no special forms 20:06 Sgeo_: Things like that 20:06 Sgeo_: Hmm, maybe "no special forms"... well, there are primitives 20:07 (join) anonymous 20:12 (join) sw2wolf 20:32 (quit) jonrafkind: Ping timeout: 264 seconds 20:37 (quit) anonymous: Quit: Lost terminal 20:39 asumu: Darn. Clojure/West is in March when I'm busy. Otherwise I might have considered going for Matthew's talk since it's in Portland. 20:40 (join) jeapostrophe 20:40 (quit) jeapostrophe: Changing host 20:40 (join) jeapostrophe 20:41 (quit) jao: Remote host closed the connection 20:45 (quit) bbloom: Ping timeout: 248 seconds 20:53 (quit) jeapostrophe: Ping timeout: 244 seconds 21:14 (quit) karswell: Ping timeout: 244 seconds 21:18 (quit) MayDaniel: Read error: Connection reset by peer 21:20 (quit) mizu_no_oto: Quit: ["Textual IRC Client: www.textualapp.com"] 21:28 (join) shriphani_ 21:43 (join) mattmigh` 21:43 (join) rapacity1 21:44 (quit) rapacity: *.net *.split 21:44 (quit) majoh: *.net *.split 21:44 (quit) gf3: *.net *.split 21:44 (quit) felipe: *.net *.split 21:44 (quit) mattmight: *.net *.split 21:45 (join) majoh 21:46 (join) gf3 21:47 (join) RacketCommitBot 21:47 RacketCommitBot: [racket] plt pushed 2 new commits to master: http://git.io/ZEjoNQ 21:47 RacketCommitBot: racket/master 94b54db Robby Findler: clean up autosave a little... 21:47 RacketCommitBot: racket/master aa5f2e7 Robby Findler: adjust the framework to avoid... 21:47 (part) RacketCommitBot 21:50 (join) mithos28 21:53 (join) kofno 22:05 (join) jao 22:05 Twey: Is there a multiset in Racket? 22:05 (quit) jao: Changing host 22:05 (join) jao 22:08 (join) mye 22:10 mithos28: http://planet.racket-lang.org/package-source/soegaard/galore.plt/4/2/bag.ss 22:10 rudybot: http://tinyurl.com/auphobu 22:15 Nimonicus: is there a naming convention for syntax-parameters? 22:19 Twey: Ah, thanks! 22:19 mithos28: Nimonicus: nope, they aren't used all that often, so the names are just what make sense for the use 22:20 (join) Nereid 22:26 (part) sw2wolf: "ERC Version 5.3 (IRC client for Emacs)" 22:26 (join) vu3rdd 22:26 (quit) vu3rdd: Changing host 22:26 (join) vu3rdd 22:32 (join) jeapostrophe 22:32 (quit) jeapostrophe: Changing host 22:32 (join) jeapostrophe 22:32 Nimonicus: mithos28: Thanks, I finally started figuring out how they work 22:36 (quit) mithos28: Quit: mithos28 22:37 (quit) kofno: Remote host closed the connection 22:39 (join) jeapostr1phe 22:39 (quit) jeapostrophe: Read error: Connection reset by peer 22:42 (part) Nimonicus 22:46 (quit) jeapostr1phe: Ping timeout: 276 seconds 22:57 (join) kofno 23:00 (nick) rapacity1 -> rapacity 23:00 (join) rapacity 23:07 (join) jonrafkind 23:11 (join) dsantiago 23:15 (join) carleastlund 23:25 (quit) Shviller: Ping timeout: 276 seconds 23:26 (join) Shviller 23:54 (quit) jao: Ping timeout: 248 seconds