00:34 (quit) jeapostrophe: Ping timeout: 255 seconds 01:17 (join) jeapostrophe 01:33 (quit) jeapostrophe: Ping timeout: 248 seconds 02:09 (join) aidy 02:10 aidy: hi 02:10 mithos28: aidy: hello 02:10 aidy: is anyone using emacs with quack? 02:10 aidy: I installed it and have (require 'quack) in my .emacs, but I'm not sure how to progress from that 02:11 mithos28: I don't use emacs 02:11 jonrafkind: another internet customer helped out! 02:11 mithos28: I like my vim 02:12 jonrafkind: dont let matthias hear you say that 02:12 jonrafkind: he gets mad when i say it 02:12 mithos28: well I'm glad am far away from him then 02:12 aidy: I'm a vim user, but I want to learn emacs too 02:12 mithos28: aidy: if no one here knows anything, you might try the mailing list 02:13 mithos28: users@racket-lang.org 02:13 aidy: okay :) 02:13 mithos28: also most people here are on EST, so are all asleep 02:17 (quit) jonrafkind: Ping timeout: 255 seconds 03:12 (join) bluezenix 03:22 (join) Blkt 04:01 (quit) bluezenix: Read error: Connection reset by peer 04:02 (join) bluezenix 04:10 (join) tetrapak 04:11 (part) tetrapak 04:12 (quit) bluezenix: Ping timeout: 240 seconds 04:18 (join) bluezenix 04:21 (join) bluezenix1 04:21 (quit) bluezenix: Read error: Connection reset by peer 04:42 (join) chezduck 04:50 (quit) bluezenix1: Read error: Connection reset by peer 04:52 (join) bluezenix 05:01 (quit) mithos28: Quit: mithos28 05:13 noelw: aidy: still here? 05:14 noelw: try this: http://docs.racket-lang.org/guide/other-editors.html 05:14 noelw: It's never to late to repent and learn Emacs 05:14 noelw: s/to/too 05:15 (join) veer 05:34 (join) Shvillr 05:34 (nick) Shvillr -> Shviller_ 05:34 (nick) Shviller_ -> Shviller 05:36 (quit) veer: Quit: Leaving 05:40 (join) deo 05:40 (nick) deo -> deo_ 05:43 (join) ahinki 06:08 Blkt: (a late) good morning everyone 06:09 (quit) bluezenix: Quit: Leaving. 06:25 (quit) mario-goulart: Remote host closed the connection 06:28 (join) mario-goulart 06:57 (join) masm 08:32 aidy: noelw: thanks 08:33 noelw: Hi! np. 08:34 aidy: I've got quack installed but emacs doesn't switch to scheme-mode when i open a .rkt file, not sure what's up with that 08:35 aidy: I'll check out geiser too though :) 08:45 noelw: Ok, you need to associate quack with racket 08:46 noelw: (add-to-list 'auto-mode-alist '("\\.rkt$" . scheme-mode)) 08:46 noelw: In your .emacs 09:04 Shviller: Hi again, guys. I need a really simple unhygienic macro. I specificlally want to bind a particular identifier instead of maintaining lexical scope. Where do I look for this? 09:06 noelw: You can break syntax within syntax-case 09:06 noelw: I mean "break hygiene" 09:06 noelw: http://community.schemewiki.org/?syntax-case-examples 09:07 noelw: Third example 09:08 Shviller: wow, expression highlighting on that site. 09:10 Shviller: I have trouble grokking that example. Sorry about that. 09:10 noelw: Didn't notice that at first. Pretty cool. 09:11 noelw: Basically, you create a new identifier with (datum->syntax-object scope name) 09:11 noelw: scope is the syntax the identifier is in scope for 09:11 noelw: name is … the name 09:11 noelw: with-syntax is like let for macros 09:11 noelw: it binds names to values 09:11 noelw: just like let 09:12 noelw: but those names are names you can use in patterns 09:12 (join) veer 09:12 Shviller: Can I use that in a define-syntax-rule? There's only one pattern, so I hoped I wouldn't need define-syntax. 09:12 noelw: patterns which are written within the syntax form 09:13 noelw: Nope, because define-syntax-rule expands into syntax-rules, which doesn't allow you to break hygience 09:14 noelw: However! 09:14 noelw: syntax-rules just expands into syntax-case 09:14 noelw: So if you understand syntax-rules you are just a few lines away from syntax-case 09:14 noelw: and then you just need to add the (with-syntax …) in the right place 09:14 noelw: and you've written a non-hygienic macro 09:14 noelw: It's simpler then it seems at first glance 09:15 noelw: From the docs: 09:15 noelw: (syntax-rules (literal-id ...) 09:15 noelw: [(id . pattern) template] ...) 09:15 noelw: Equivalent to 09:15 noelw: (lambda (stx) 09:15 noelw: (syntax-case stx (literal-id ...) 09:15 noelw: [(generated-id . pattern) (syntax-protect #'template)] ...)) 09:15 noelw: http://docs.racket-lang.org/reference/stx-patterns.html?q=define-syntax-rule#(form._((lib._racket/private/stxcase-scheme..rkt)._syntax-rules)) 09:15 rudybot: http://tinyurl.com/6t2sj2a 09:23 (quit) veer: Quit: Leaving 09:38 (join) tyson1 09:47 (quit) ahinki: Quit: ChatZilla 0.9.87 [Firefox 8.0/20111102223350] 09:58 (join) jrslepak 10:04 Shviller: Okay, (I think) I got it working, but it looks bloated: http://pastebin.com/CrdjCSR1 (sorry for the unconventional formatting) 10:04 Shviller: Is that really the simplest way to do it? 10:07 Shviller: Aha, and the obvious answer is 'no'. 10:08 noelw: What do have against with-syntax? 10:08 noelw: Your implementation is certainly unconventional 10:08 noelw: But it looks ok 10:08 noelw: apparent from all those crazy brackets. 10:09 Shviller: Okay, a more streamlined version, but still with those brackets: http://pastebin.com/J0Wq0DXC 10:10 noelw: my eyes!!!! 10:10 Shviller: I found this: http://blog.racket-lang.org/2011/04/writing-syntax-case-macros.html and I jumped at the first example that was close enough to what I wanted to do, hence the absence of with-syntax. 10:10 noelw: Yeah, that looks ok 10:11 Shviller: Ouchie, looks like my coding style plus wrong syntax highlighting = eye-melting #%$^& 10:11 Shviller: D% 10:13 Shviller: Sorry for the hurty eyes. 10:13 Shviller: So, is this the way I'm supposed to be doing this? 10:14 noelw: Yes, it looks good 10:14 noelw: Idiomatic, apart from the layout 10:15 noelw: Breaking hygiene is inconvenient in syntax-case, but that is intentional I think 10:15 Shviller: Yeah, rarely a good idea to break hygiene, probably. 10:16 (part) tyson1 10:16 Shviller: I think I even understand what is going on in that macro. Thanks for the help! 10:17 noelw: Groovy! 10:19 Shviller: And I think I'm slowly getting better at reading conventionally layed out Lisp/Scheme code. Still can't get used to deep indenting (feels like a waste of horizontal space), but I probably will soon be able to at least put all the closing parens on the proper line. :) 10:23 noelw: You can avoid deep nesting with internal defines 10:23 noelw: They are allowed almost anywhere in Racket 10:24 Shviller: Yeah, nested definitions rock. I missed them since the times I used Pascal. :D Granted, they're more powerful in Racket, but you get the idea. 10:31 (nick) samth_away -> samth 10:49 (quit) realitygrill: Quit: realitygrill 10:51 (join) keenbug 10:51 keenbug: hi 10:51 keenbug: does anybody know how to start an interactive repl for r6rs scheme with racket on the terminal? 10:54 asumu: Shviller: Are you using DrRacket or some other editor? Auto paren matching + paren navigation might help you get used to idiomatic layout. 10:55 asumu: (there's an option in DrRacket for that and you can use paredit for emacs or vim) 10:56 Shviller: asumu: I'm mostly using SciTE. DrRacket seems quite laggy for some reason. And I could get into neither Emacs nor Vim. Having a learning wall instead of a curve isn't fun. 10:57 asumu: Oh okay, fair enough. 10:58 Shviller: BTW, _why_ is DrRacket laggy? Can I do something about it? 10:59 asumu: It seems to vary wildly from person to person and platform to platform. If you have a particular reproducible setup, try asking on the mailing list. 10:59 (quit) keenbug: Ping timeout: 256 seconds 10:59 asumu: e.g. it runs without much lag on my machine. 10:59 asumu: (though it eats up tons of memory) 10:59 Shviller: Well, 300Mb is preatty meager to what Firefox does. ;D 11:00 Shviller: *compared to 11:00 Shviller: *pretty 11:01 Shviller: (I should really pay more attention to... well, everything) 11:06 Shviller: Speaking of DrRacket, is there a way to have that nice graphical REPL, capable of drawing sierpinski triangles and concatenating squares, without waiting to the whole monster to start up? 11:18 noelw: Yeah. Run racket :) 11:18 noelw: Since the graphics engine was rewritten you don't need to run DrRacket / MrEd / gracket to get graphics 11:20 Shviller: Well, I can get it in separate windows, sure, but what about pics mixed with code right in the same window? racket.exe is a console app, no? I'm dreaming of something TermKit-like. 11:21 noelw: ok, I think you have to use DrRacket for that 11:22 Shviller: Is it possible to separate that functionality from the rest of DrRacket? I guess that'd result in gracket on steroids. 11:23 Shviller: Speaking purely theoretical here. Not gonna do it anytime soon, not gonna ask anyone to do it either. 11:24 noelw: I'm sure it is. 11:24 noelw: \ 11:24 noelw: The graphical elements are called snips 11:24 noelw: They have a display method, or something similar 11:24 noelw: I guess you could rig up something to just display them on a canvas 11:25 Shviller: All right. I'll probably try it once I'm more comfortable with Racket. Which probably will take a year, given how much of a slowpoke I am. 11:34 (join) Guy 11:34 (nick) Guy -> Guest37710 11:35 (join) keenbug 11:50 Guest37710: hello there 11:51 Guest37710: I would like to know how to insert an element to the end of a list without using append 11:52 noelw: Write your own version of append? 11:54 Guest37710: I'm just wondering if I should do that, because when I use cons it will insert the new element at the beginning of the list 11:55 keenbug: Guest37710: if you want to do it in a functional style (that means without altering the already existing list) you have to rebuild the whole list 11:56 (join) shofetim 11:56 keenbug: Guest37710: and this in turn will result in the same as using append 11:56 Guest37710: I'm gonna do that 11:56 Guest37710: yeah its pointless but my teacher does that kind of things during a test 11:58 keenbug: Guest37710: the solution is creating the list with the element you want to append and to prepend the elements from your first list to this list 12:04 (join) jeapostrophe 12:13 (join) jonrafkind 12:28 (join) mithos28 12:29 (join) MayDaniel 12:29 (quit) Blkt: Quit: ERC Version 5.3 (IRC client for Emacs) 13:15 (join) anRch 13:21 (quit) Guest37710: Ping timeout: 265 seconds 13:33 (quit) MayDaniel: Read error: Connection reset by peer 14:12 (quit) keenbug: Ping timeout: 260 seconds 14:37 RacketCommitBot: [racket] plt pushed 5 new commits to master: http://git.io/MgrKtA 14:37 RacketCommitBot: [racket/master] prefer poll() to select() on Linux - Matthew Flatt 14:37 RacketCommitBot: [racket/master] fix problem with background thread for address lookup - Matthew Flatt 14:37 RacketCommitBot: [racket/master] change handling of blocking I/O to collapse sources to a single poll - Matthew Flatt 14:45 (quit) anRch: Quit: anRch 15:00 (join) sstrickl 15:19 RacketCommitBot: [racket] plt pushed 28 new commits to master: http://git.io/gN8g5A 15:19 RacketCommitBot: [racket/master] Adjusted appx. plot bound fixpoint computation; fixes a layout issue with multiple function renderers - Neil Toronto 15:19 RacketCommitBot: [racket/master] Split up tests to keep DrDr from timing out - Neil Toronto 15:19 RacketCommitBot: [racket/master] Finished first draft of tick/axis overhaul - Neil Toronto 15:35 RacketCommitBot: [racket] plt pushed 1 new commit to master: http://git.io/ouEUZQ 15:35 RacketCommitBot: [racket/master] fix bytecode compiler bug - Matthew Flatt 17:32 RacketCommitBot: [racket] plt pushed 1 new commit to master: http://git.io/5vp24g 17:32 RacketCommitBot: [racket/master] add a bunch of tests to the module language test suite based on test cases in the repl test suite - Robby Findler 17:52 (join) anRch 17:57 (quit) shadgregory: Quit: leaving 18:10 (join) shadgregory 18:17 (quit) sstrickl: Quit: sstrickl 18:21 (quit) mithos28: Quit: mithos28 18:27 (join) sstrickl 18:27 (quit) sstrickl: Client Quit 18:33 (quit) deo_: Quit: Page closed 18:34 RacketCommitBot: [racket] plt pushed 2 new commits to master: http://git.io/jjDtvA 18:34 RacketCommitBot: [racket/master] [honu] allow %racket expressions to remain inside honu syntax and remove them after parsing - Jon Rafkind 18:34 RacketCommitBot: [racket/master] [honu] parse bodies of macros early. re-parse the output of macros - Jon Rafkind 18:41 (quit) anRch: Quit: anRch 18:45 (join) mithos28 18:50 (quit) jeapostrophe: Ping timeout: 258 seconds 19:37 (quit) masm: Quit: Leaving. 19:45 (join) jeapostrophe 19:49 (quit) jonrafkind: Ping timeout: 260 seconds 20:11 (join) jonrafkind 20:18 (join) Nanakhiel 20:21 (quit) Lajla: Ping timeout: 258 seconds 20:23 (nick) samth -> samth_away 20:34 (join) neilv 20:37 (quit) gmcabrita: Max SendQ exceeded 20:38 (join) gmcabrita 20:55 (quit) noelw: Quit: noelw 20:55 (quit) neilv: Quit: Leaving 21:16 (quit) jeapostrophe: Ping timeout: 256 seconds 21:37 (quit) mithos28: Quit: mithos28 21:45 (join) jeapostrophe 22:02 (join) PiRSquared17 22:02 (join) haruki_zaemon 22:03 haruki_zaemon: Hi all, I have a web app I want to deploy. Is there a way to bundle all deps up as a binary so I can deploy onto shared hosting? 22:03 (join) WUSTL 22:03 WUSTL: hello 22:03 PiRSquared17: Hi 22:04 WUSTL: would anyone be able to help me with some racket code im having some problems :/ 22:04 PiRSquared17: sure :) 22:04 (quit) ozzloy: Quit: leaving 22:04 (quit) jeapostrophe: Ping timeout: 240 seconds 22:04 WUSTL: i'm trying to rewrite a normal fibonacci function in CPS 22:05 WUSTL: right now i have this and i'm not sure why it is not working 22:05 WUSTL: (define (fib/k n k) (case n [(0) (k 0)] [(1) (k 1)] [else (fib/k ((lambda (x) (fib/k (lambda (y) (k (+ x y))) (- n 2)))) (- n 1))])) 22:07 (join) ozzloy 22:11 WUSTL: no one knows can help? ._> 22:11 PiRSquared17: WUSTL What is k supposed to be? 22:12 PiRSquared17: WUSTL I'm sure someone here or in #scheme can help 22:12 haruki_zaemon: I'm hoping to avoid having to install the runtime on the machine and just ship a binary if I can 22:14 WUSTL: um pir k is the procedure of one argument representing the pending computation 22:14 PiRSquared17: so a thunk ? 22:15 jonrafkind: umperkay? 22:15 PiRSquared17: ... 22:15 jonrafkind: // 22:15 WUSTL: o_O 22:17 jonrafkind: WUSTL, i think you reversed some arguments 22:18 jonrafkind: n is suppose to be a number right? 22:18 PiRSquared17: (fib/k ((lambda (x) (fib/k (lambda (y) (k (+ x y))) (- n 2)))) (- n 1)) 22:18 PiRSquared17: should be 22:18 PiRSquared17: (sib/k num fun) 22:18 PiRSquared17: *fib/k 22:19 WUSTL: so i missed a parantheses 22:19 WUSTL: before the first lambda 22:19 PiRSquared17: no 22:19 WUSTL: er 22:19 PiRSquared17: (fib/k (- n 1) ((lambda (x) (fib/k (lambda (y) (k (+ x y))) (- n 2)))) ) 22:20 jonrafkind: you reversed the order of arguments 22:20 PiRSquared17: ^^ Fixed 22:20 jonrafkind: haruki_zaemon, you can try 'raco exe' 22:20 jonrafkind: or 'raco distribute' maybe 22:21 haruki_zaemon: jonrafkind ooh, I'll have a look, thanks 22:21 WUSTL: ah i see 22:24 WUSTL: wait then why is (- n 1) the first argument for fib/k, then it is lambda y in the nested one 22:24 WUSTL: hm i keep getting errors about the number of arguments 22:25 jonrafkind: annotate your function parameters with their type 22:25 jonrafkind: so you dont get confused 22:25 jonrafkind: i mean just put it in a comment 22:26 WUSTL: no i know that i was just asking because PiR pasted a response like that 22:26 WUSTL: which confused me 22:26 WUSTL: and when i try to switch it to be consistent it still isnt working ugh 22:27 jonrafkind: i got your code to work 22:27 PiRSquared17: So did I 22:27 jonrafkind: would you like the answer? 22:28 WUSTL: not just yet :/ 22:30 WUSTL: what is wrong with this 22:30 WUSTL: (define (fib/k n k) (case n [(0) (k 0)] [(1) (k 1)] [else (fib/k (- n 1) ((lambda (x) (fib/k (- n 2) (lambda (y) (k (+ x y)))))))])) 22:31 WUSTL: or i guess yeah what's the working code so i can see where i went wrong -__- 22:31 jonrafkind: you have ((lambda (x) ..)) when you want (lambda (x) ...) 22:31 WUSTL: oh em gee 22:31 WUSTL: it work snow 22:32 jonrafkind: snow!! yay! 22:32 WUSTL: thank you! 22:32 PiRSquared17: snow!!!11! 22:32 WUSTL: ffuuuuuu 22:32 WUSTL: thanks i appreciate you guys helping me learn :) 22:32 WUSTL: first functional programming course rawrrrr 22:38 (part) haruki_zaemon: "Laterz" 22:50 (join) realitygrill 22:55 (join) neilv 23:31 (quit) neilv: Quit: Leaving 23:34 (join) mithos28 23:40 (join) SidH_ 23:42 (quit) WUSTL: Ping timeout: 265 seconds 23:48 (join) haruki_zaemon 23:49 haruki_zaemon: jonrafkind ok I can successfully create an exe and distribute 23:49 jonrafkind: cool 23:49 haruki_zaemon: jonrafkind but it only seems to create one for the current OS? 23:49 haruki_zaemon: I'm on mac but need to target unix 23:49 jonrafkind: you mean linux? 23:49 haruki_zaemon: sorry 23:49 haruki_zaemon: linux, yes 23:50 haruki_zaemon: (was reading the doco and it says unix everywhere so I had that stuck in my head) 23:50 jonrafkind: well assuming you have an understanding of the difference between OS's what do you really expect? 23:50 jonrafkind: exe bundles the racket executable with the runtime and your bytecode 23:51 haruki_zaemon: sure, that's what I figured 23:51 haruki_zaemon: I just wanted to make sure 23:51 jonrafkind: ok 23:52 haruki_zaemon: thanks for your help 23:53 jonrafkind: sure