00:00:01 true 00:00:11 Believe me, I know 00:00:12 ;) 00:00:19 what 00:00:21 haw haw 00:00:35 it's a side-effect from all the Schemeing! 00:00:36 we're just turning this channel into a locker room. Nothing to see here. 00:01:01 *elly* conceals herself, then 00:01:14 like the makeup? 00:02:22 now I just need to go over streams and I've got a good baseline 00:02:39 judging my the crudeness of my jokes, it's about time for a break 00:02:40 walking baseline 00:02:46 With some House MD. 00:03:43 -!- pygospa [~TheRealPy@kiel-5f769580.pool.mediaWays.net] has quit [Read error: Operation timed out] 00:03:50 that's about a psychic doctor right 00:04:07 wish I had psychic powers 00:04:50 it's more like it's about an awesome doctor 00:04:52 who's an ass. 00:05:16 does not compute 00:05:24 well, maybe 00:05:32 let me explain 00:05:35 he's not physically an ass 00:05:41 lol 00:06:17 personally if he was my doctor and he was an ass I would be angry and make him go away. 00:06:28 either type :p 00:06:49 otoh I probably should let him heal my smallpox or whatever first. 00:06:54 oh, a lot of them are angry 00:06:55 sometimes you have to make sacrifices I guesss 00:06:59 but he's good, so they'd die without him. 00:07:27 why would he be an ass to the terminally ill? 00:07:29 what a total ass. 00:07:44 pygospa [~TheRealPy@kiel-4dbed0ab.pool.mediaWays.net] has joined #scheme 00:07:48 that's the point 00:07:51 he's a total ass. 00:07:58 but he rocks 00:08:09 and they're not terminally ill 00:08:12 they'll die without his help 00:08:15 but he can diagnose them. 00:10:33 he should teach his skills to some other doctors 00:10:44 then patients wouldn't have to endure his poor bedside manner 00:11:17 that's the point 00:11:19 he's too good 00:11:32 he's got three lackeys that run around most of the time 00:12:25 then he walks into a patients room after a while and he's like "I'm Dr. House" and they all gasp, since it's FINALLY HIM. Then he's like "did it ever occour to you that your mother's a gigantic idiot?" 00:13:01 and they're like "you get out!" then he's all "you did this and that and you didn't even care to tell us! Your daughter would've been dead now if you'd at least been smart enough to admit how stupid you are!" 00:13:09 you get the deal. Then they thank him while hating him 00:14:38 offby1: rudybot is the sincerest form of flattery, in that respect. 00:15:05 *amoe* yearns for some fictional pastoral idyll of TV doctors 00:16:38 -!- dnolen [~davidnole@184.152.69.75] has quit [Quit: dnolen] 00:17:37 Articate: ; or maybe , but it's not quite as pithy. 00:20:15 -!- masm [~masm@2.80.155.5] has quit [Quit: Leaving.] 00:21:03 \o/ 00:21:06 /^\ 00:22:08 offby1: codpiece? 00:22:35 I swear I don't intend them to be off-color. I just wanted to move beyond the kilt cliché. 00:22:39 haha, the first one is brilliant, klutometis 00:23:10 framling [~user@cpe-74-64-94-88.hvc.res.rr.com] has joined #scheme 00:25:56 offby1: Can you speculate on the various significations of `!', `@', `#', `$', `%', `^', `&' and `*' in the sporran-position? 00:26:11 At least some of them are obscene. 00:26:35 funny that I'm investigating that issue now. 00:26:41 \o/ 00:26:44 _X_ 00:26:48 / \ 00:26:54 that's reasonably G-rated. 00:27:04 sorry about the skirt, but IRC eats leading whitespace. 00:27:43 Nice thorax. 00:28:37 @ probably represents http://goo.gl/JffcI 00:32:19 offby1: As Sporran or thorax? 00:33:24 as eyeballs 00:35:06 -!- zmv [~daniel@c9533906.virtua.com.br] has quit [Quit: bye] 00:43:26 -!- jonrafkind [~jon@jonr5.dsl.xmission.com] has quit [Ping timeout: 276 seconds] 00:50:50 -!- ijp [~user@host109-154-194-139.range109-154.btcentralplus.com] has left #scheme 00:51:16 offby1: I take that back, actually; Google backtracked and decided to offer Translate as a for-pay service: . 00:51:16 http://tinyurl.com/3hvloxm 00:52:20 hmph 00:53:27 I'm surprised I didn't already subscribe to that blog. 00:53:43 I suppose I'd be willing to pay a tiny amount per call, but I'd limit the number of calls per month, so as to avoid DOS 00:56:45 -!- HG` [~HG@xdsl-92-252-119-189.dip.osnanet.de] has quit [Quit: Leaving.] 01:00:52 rramsden [~rramsden@173.180.109.6] has joined #scheme 01:14:12 -!- ckrailo [~ckrailo@208.86.167.249] has quit [Quit: Computer has gone to sleep.] 01:17:35 Can anyone recommend a Common Lisp implementation: CLISP, CMUCL, SBCL? 01:18:01 I've decided to at least start PAIP in Common Lisp (switching to Scheme if this becomes tedious). 01:18:18 No, I don't want to ask in #lisp. 01:19:11 I favored sbcl, back when I cared about such things. 01:19:19 It seemed to play nicest with SLIME &c 01:19:33 clisp would be my second choice. 01:19:39 cmucl was a weird horror, if I recall correctly. 01:19:46 Hmm; I think I remember compiling Macsyma with SBCL once upon a time. 01:19:54 I tried that and got nowhere. 01:20:13 There's also ABCL. 01:21:04 Yeah; it's between CLISP and SBCL, I think. 01:23:32 I think CLISP, as the name suggests, is written (at least at base) in C, hence reasonably easy to build. SBCL is self-hosted, so I think you have to get a binary. 01:23:41 On the other hand, there's no law says you gotta build from source. 01:24:11 (well, WRS 1968.32.12a, but that only applies to for-profit corporations) 01:26:41 pandeiro [~pandeiro@bd21c0a9.virtua.com.br] has joined #scheme 01:27:48 offby1: you remember me from earlier today? starting out with scheme/sicp? 01:31:49 offby1: Heh; here's some 4chan trolls on the virtue of CLISP vs. SBCL for PAIP: . 01:33:26 pandeiro: I do 01:34:04 klutometis: why on Earth would I want to read that? 01:34:58 offby1: I don't know; better not. A few lulz were to be had, however. 01:35:40 *offby1* would rather poke himself in the gullet with a ribeye 01:36:21 offby1: I am trying to articulate why the 'new-if' procedure can't replace good old if with recursive processes. I intuitively sense it has to do with applicative order processing but I'm not sure normal-order would be different. Would it? 01:45:19 pandeiro: Just for argument's sake, what do expect the following code to return? 01:45:35 (let iter ((x 10)) (if (positive? x) (iter (- x 1)) x)) 01:47:04 klutometis, is let a synonym for define? sorry i am at day one here, literally 01:47:57 pandeiro: Oh, sorry; yeah. Let me rephrase that. 01:48:01 (define (iter x) (if (positive? x) (iter (- x 1)) x)) (iter 10) 01:48:02 and is there something to the fact that (x 10) is inside another combination? 01:48:45 i would expect it to return 0? 01:49:02 Indeed! 01:49:32 In that case, though, when x is no longer positive, you wouldn't expect it to evaluate (iter (- x 1)), would you? 01:49:52 nope 01:50:17 In applicative order, it will evaluate (iter (- x 1)) whether or not x is positive; in normal, it doesn't bother and the recursion stops. 01:50:51 k so your example would zonk out the mit-scheme interpreter? 01:51:08 and i was thinking in normal-order? 01:51:23 No, because `if' is a special form; it's evaluated in normal order. 01:51:44 ok yeah i was figuring that... but then i did that (define (p) (p)) example... 01:52:18 (test 0 (p) where (define (test x y)(if (= x 0) x y)) 01:52:42 sorry i am writing pseudo invalid lisp obviously 01:53:01 but why doesn't that one work if 'if' is a special form? 01:54:06 Because `test' is not. 01:56:55 ok so the initial invocation itself with (p) already causes a problem... 01:57:22 Right 01:58:15 ok but then back to normal-order -- i answered that it would evaluate ok but wouldn't it have the same problem with the initial (test 0 (p))? 01:59:05 pnkfelix [~Adium@c-68-82-87-23.hsd1.pa.comcast.net] has joined #scheme 02:01:11 -!- framling [~user@cpe-74-64-94-88.hvc.res.rr.com] has quit [Remote host closed the connection] 02:03:55 sorry i've reread the section on normal-order and i am comprehending the 'laziness' of it now... thanks for your help, klutometis 02:04:19 In normal order, `test' refrains from evaluating y unless (= x 0); and since (= x 0), execution stops. 02:04:22 No problem. 02:04:44 i am surprised at how much i am liking this :) 02:04:54 tcleval [~funnyguy@177.30.221.136] has joined #scheme 02:09:03 pandeiro: Good stuff! Yeah, SICP will stimulate your dopamine receptors. 02:09:03 -!- tcleval [~funnyguy@177.30.221.136] has quit [Quit: leaving] 02:09:34 (Thank god the HtDP trolls weren't out today.) 02:09:42 the first video lecture from open courseware was terrific! wish i had dug in sooner 02:09:46 Me, too. 02:09:51 heh earlier when i was here it came up :) 02:10:45 i decided to go with a duct-taped vim/screen/mit-scheme setup instead of DrRacket or Emacs after extensive consultation here 02:10:46 dnolen [~davidnole@184.152.69.75] has joined #scheme 02:10:59 and stick with SICP over HTDP 02:11:49 eventually if i become adept with lisp i will make the investment to learn emacs but for now i just need to be able to do the exercises and follow along 02:11:55 Nice, pandeiro; that'll be rewarding. Not sure what the argument against Emacs was, but I know some cats that are successful with vim. 02:12:24 True; there's an additional learning curve there that you maybe don't need right away. 02:12:35 it's just i know vim already and starting from 0 with an editor would be too much i think 02:13:12 DrRacket seemed simple enough too but I decided i wanted the mit-scheme interpreter for the full 1983 vibe 02:13:19 really goes with the videos 02:14:02 it would be nice though if there were a flag that allowed one to simply pipe in an expression and get its evaluation from stdout 02:14:08 but i guess i'm asking a lot 02:20:28 Heh; what about `echo '(+ 2 2)' | mit-scheme --load /dev/stdin'? 02:21:06 Little bit of a hack, though; wait, --load is superfluous. 02:22:39 yeah i mean the problem is i still get a huge output of about 20 lines for one evaluation! 02:22:42 I think it's a good idea, though, to cut your teeth on MIT; you can use something more comfortable later. 02:23:41 echo '(display (+ 2 2))' | mit-scheme --quiet 02:24:08 i think maybe my version was compiled without quiet or something 02:25:40 with the --quiet flag i get no output at all ... i got this from the arch user repository... maybe i will try configuring and making it myself later 02:26:03 thanks klutometis, much appreciate all the help 02:26:19 -!- JoelMcCracken [~user@pool-96-236-166-27.pitbpa.east.verizon.net] has quit [Ping timeout: 252 seconds] 02:26:26 pandeiro: Yeah, you have to explicitly use `display'. 02:27:01 got it! 02:27:05 tried that just now 02:27:13 awesome i will alias that and i'm good to go 02:27:54 -!- strout [~strout@ip-64-255-129-222.ideaone.net] has quit [Ping timeout: 248 seconds] 02:28:12 -!- nego [~nego@c-76-16-30-244.hsd1.il.comcast.net] has quit [Quit: Lost terminal] 02:33:23 pandeiro: There's already `pp'; try that. 02:34:53 klutometis: sorry don't follow (?) 02:35:15 echo '(pp (+ 2 2))' | mit-scheme --quiet 02:35:30 `pp' stands for `pretty-print'; gives you nicer output than `display'. 02:36:19 ah i see, great... 02:42:05 -!- MrFahrenheit [~RageOfTho@users-146-61.vinet.ba] has quit [Ping timeout: 260 seconds] 02:48:07 -!- thoolihan [~Tim@50.51.30.43] has quit [Quit: Leaving] 02:49:51 -!- rramsden [~rramsden@173.180.109.6] has quit [Quit: Leaving] 02:50:41 -!- pnkfelix [~Adium@c-68-82-87-23.hsd1.pa.comcast.net] has quit [Quit: Leaving.] 02:52:03 -!- monqy [~chap@pool-71-102-217-117.snloca.dsl-w.verizon.net] has quit [Quit: cant see a thing] 02:55:10 monqy [~chap@pool-71-102-217-117.snloca.dsl-w.verizon.net] has joined #scheme 03:01:02 -!- homie [~levent.gu@xdsl-78-35-161-140.netcologne.de] has quit [Quit: ERC Version 5.3 (IRC client for Emacs)] 03:12:46 klutometis: good work son; I'll take over from here. 03:12:55 *offby1* opens another beer and settles onto the couch 03:18:10 f8l [~f8l@213-238-105-249.adsl.inetia.pl] has joined #scheme 03:33:46 -!- aidalgol [~user@114-134-7-23.rurallink.co.nz] has quit [Quit: ERC Version 5.3 (IRC client for Emacs)] 03:43:04 teurastaja [~Samuel@modemcable072.213-81-70.mc.videotron.ca] has joined #scheme 03:50:05 realitygrill_ [~realitygr@adsl-76-226-120-202.dsl.sfldmi.sbcglobal.net] has joined #scheme 03:50:16 -!- realitygrill [~realitygr@76.226.194.215] has quit [Ping timeout: 250 seconds] 03:50:17 -!- realitygrill_ is now known as realitygrill 03:51:55 -!- djcb [~user@a88-112-253-18.elisa-laajakaista.fi] has quit [Remote host closed the connection] 03:56:56 -!- pandeiro [~pandeiro@bd21c0a9.virtua.com.br] has quit [Quit: Leaving] 03:59:46 hba [~hba@189.130.23.205] has joined #scheme 04:03:45 -!- bgs100 [~ian@unaffiliated/bgs100] has quit [Quit: *_*] 04:05:30 -!- MichaelRaskin [~MichaelRa@195.91.224.225] has quit [Ping timeout: 248 seconds] 04:21:54 -!- elliottcable is now known as ec|detached 04:29:22 -!- teurastaja [~Samuel@modemcable072.213-81-70.mc.videotron.ca] has quit [Quit: --> Put something intelligent here when I'm more bored <--] 04:59:13 Zot! 05:08:39 -!- ec|detached is now known as elliottcable 05:16:26 aidalgol [~user@114-134-7-23.rurallink.co.nz] has joined #scheme 05:36:43 -!- f8l [~f8l@213-238-105-249.adsl.inetia.pl] has quit [Quit: WeeChat 0.3.5] 05:42:18 gravicappa [~gravicapp@ppp91-77-169-55.pppoe.mtu-net.ru] has joined #scheme 05:45:00 -!- pjb` [~t@81.202.16.46.dyn.user.ono.com] has quit [Ping timeout: 244 seconds] 05:45:33 -!- aidalgol [~user@114-134-7-23.rurallink.co.nz] has quit [Remote host closed the connection] 05:48:29 tdignan [~tom@pdpc/supporter/student/tdignan] has joined #scheme 05:50:41 -!- replore [~replore@ntkngw256114.kngw.nt.ftth.ppp.infoweb.ne.jp] has quit [Remote host closed the connection] 05:51:59 -!- poindontcare [~user@cloudbovina.bovinasancta.com] has quit [Remote host closed the connection] 05:52:29 genieliu [~genieliu@59.78.62.120] has joined #scheme 05:54:17 poindontcare [~user@cloudbovina.bovinasancta.com] has joined #scheme 05:55:44 -!- genieliu [~genieliu@59.78.62.120] has quit [Quit: leaving] 05:56:03 genieliu [~genieliu@59.78.62.120] has joined #scheme 06:05:00 aidalgol [~user@114-134-7-23.rurallink.co.nz] has joined #scheme 06:10:29 -!- genieliu [~genieliu@59.78.62.120] has quit [Quit: Lost terminal] 06:11:37 genieliu [~genieliu@59.78.62.120] has joined #scheme 06:15:47 why did plt-scheme rename itself to racket? 06:16:01 are there any differences I should be aware of, or is it 100% branding? 06:16:17 also is 'racket' suitable for working through SICP? 06:16:33 http://racket-lang.org/new-name.html 06:16:47 tdignan: 1) http://racket-lang.org/new-name.html 2) yes, racket is perfectly suitable for SICP 06:16:52 there is also a SICP language IIRC 06:17:23 http://planet.racket-lang.org/display.ss?package=sicp.plt&owner=neil 06:19:14 man i don't even understand 06:19:24 I just downloaded MIT scheme I should be able to use that 06:19:30 racket looks like it could be cool though 06:19:32 -!- realitygrill [~realitygr@adsl-76-226-120-202.dsl.sfldmi.sbcglobal.net] has quit [Quit: realitygrill] 06:20:41 am i going ot miss out on anything really cool if I use vim for all this stuff.. isn't emacs the lisp editor of choice 06:21:26 I know a couple of Lispers who use vim 06:21:33 so it's OK i guess 06:22:14 Racket is pretty cool because it comes with an IDE and the SICP teach-language allows you to do actuall stuff like from that chapter with pictures 06:23:13 oh, like an interactive tutorial? 06:23:28 http://www.neilvandyke.org/racket-sicp/ 06:23:52 tdignan: no, have you already read the chapter where you get to manipulate pictures? 06:24:24 it's 2.2 i think 06:25:24 tdignan: The main reason to prefer emacs is that it's scriptable in lisp, while vim's scripting system is a bit... limited. 06:26:40 As far as what the editors offer for scheme, vim's not too far behind. 06:27:16 -!- dfeuer [~dfeuer@wikimedia/Dfeuer] has quit [Ping timeout: 246 seconds] 06:28:15 pjb [~t@81.202.16.46.dyn.user.ono.com] has joined #scheme 06:28:20 i'm already so hooked on vim 06:28:25 years of use 06:29:13 I envy the emacs lisp though 06:30:38 HG` [~HG@xdsl-188-118-166-171.dip.osnanet.de] has joined #scheme 06:38:12 tdignan: M-x viper RET You can use emacs with your vim fingers. 06:38:28 Makes for a slow transition. 06:42:50 -!- gravicappa [~gravicapp@ppp91-77-169-55.pppoe.mtu-net.ru] has quit [Ping timeout: 248 seconds] 06:48:16 -!- aidalgol [~user@114-134-7-23.rurallink.co.nz] has quit [Quit: Restarting Emacs...] 06:58:10 gravicappa [~gravicapp@ppp91-77-169-55.pppoe.mtu-net.ru] has joined #scheme 07:00:14 jewel [~jewel@196-209-224-184.dynamic.isadsl.co.za] has joined #scheme 07:00:46 man, when I hit esc in viper mode it doesn't take me out of insert 07:05:59 aidalgol [~user@114-134-7-23.rurallink.co.nz] has joined #scheme 07:17:32 tdignan: you have emacs lisp to make it do so. 07:18:09 tdignan: for example, have a look at the variable meta-prefix-char 07:18:31 tdignan: then at the function local-set-key 07:28:29 masm [~masm@bl19-155-5.dsl.telepac.pt] has joined #scheme 07:33:34 tdignan: editor is a user choice, I use Visual Studio for Scheme editing :) 07:36:33 *Obfuscate* hands leppie some antipsychotics. 07:36:57 no thanks, already have some :) 07:39:01 You need something stronger if msvc still has a hold over you. ;) 07:47:01 leppie: Visual Studio... Then how can you debug scheme? 07:47:04 -!- elliottcable is now known as ec|detached 07:48:57 genieliu: well I can debug IronScheme in Visual Studio, which is the important part. 07:50:27 but mostly I never debug. I was stuck without debugging support for such a long time, I learnt how to live without it 07:51:23 Do you use Scheme for anything...productive. 07:51:27 only broken code.logic needs to be debugged, so do not write such code :) 07:51:29 I mean, real busines apps? 07:52:03 wilx: nope, IronScheme is mine, just hacking on it for self enrichment 07:52:34 I guess I could, but C# would be so much easier 07:52:43 well at least for desktop apps 07:53:41 I wonder if anybody is really using F#. 07:53:45 It seems interesting. 07:54:26 If I have 5 users for IronScheme, I would be happy :) 07:56:32 leppie: you wrote IronScheme? 07:56:39 yes genieliu 07:57:08 It's amazing!!! 07:57:25 well most of it, using psyntax as the syntax expander, and the an old version of the DLR which I have changed a lot 07:57:34 thanks genieliu :) 07:57:57 Maybe next time i will try it under my visual studio 07:58:19 it has a syntax highlighting plugin for VS2008 08:00:25 no project support though :( I tried, but the API is just to massive to understand for the features I want, so I gave up on that 08:06:53 It is too hard for one person to finish such a project 08:07:27 leppie:what language do you use to write IronScheme? 08:08:03 ugh, emacs looks like a pain on windows 08:08:36 I cannot figure out the whole .emacs file thing. couldn't find one, etc. UI looks ugly. Someone needs to write a new emacs/vim. 08:09:02 I hardly use emacs on windows 08:09:11 I use vim on windows and it's awesome. 08:09:32 I will never use linux as a desktop again. I promised myself a month ago. 08:09:45 I've got virtual machines for that stuff. 08:09:50 -!- gravicappa [~gravicapp@ppp91-77-169-55.pppoe.mtu-net.ru] has quit [Ping timeout: 250 seconds] 08:09:51 Sometimes I use emacs on MS-Windows, and what's awesome, is that it makes MS-Windows almost usable! 08:10:00 (but not really). 08:10:04 my gvim look so bad on windows than on linux 08:10:19 hm, mine looks excellent on windows 7 08:10:24 and i don't know how to make it look like on linux 08:10:49 you might be able to change the gtk theme, or something 08:10:56 if you want to change the icons etc 08:11:41 sooner or later I'll buy a mac :) 08:14:16 pdelgallego [~pdelgalle@1385159903.dhcp.dbnet.dk] has joined #scheme 08:16:19 -!- monqy [~chap@pool-71-102-217-117.snloca.dsl-w.verizon.net] has quit [Quit: hello] 08:17:03 can anyone share the experience of studying scheme? I start learning scheme by using SICP. But I'm such a newer to scheme 08:20:38 gravicappa [~gravicapp@ppp91-77-209-51.pppoe.mtu-net.ru] has joined #scheme 08:24:36 genieliu: sicp is not specifically about scheme but about programming. If you never read it, then do so. 08:25:04 genieliu: now you might also read http://htdp.org to learn scheme programming. But be sure to read sicp in any case. 08:28:08 -!- gravicappa [~gravicapp@ppp91-77-209-51.pppoe.mtu-net.ru] has quit [Remote host closed the connection] 08:28:44 -!- araujo [~araujo@gentoo/developer/araujo] has quit [Quit: Leaving] 08:34:25 -!- aidalgol [~user@114-134-7-23.rurallink.co.nz] has quit [Remote host closed the connection] 08:36:05 gvim on windows is a great editor. but the best term emu for windows is still, imo, GNUemacs+eshell 08:36:23 UI takes a bit of tweaking so it's not ugly as hell, tough. 08:37:17 gvim took more tweaking than emacs. 08:48:57 -!- hba [~hba@189.130.23.205] has quit [Quit: leaving] 08:55:36 aidalgol [~user@114-134-7-23.rurallink.co.nz] has joined #scheme 09:00:49 i just started the code to write my own editor 09:00:51 :) 09:01:03 suffering from NIH syndrome 09:01:55 *facepalm* 09:02:18 penryu: gvim has cooler icon tho 09:03:27 homie [~levent.gu@xdsl-84-44-154-157.netcologne.de] has joined #scheme 09:09:31 tdignan: writing an editor is fun: http://www.finseth.com/craft/ 09:09:57 pjb: oh awesome 09:10:13 i saw this a long time ago when i tried one in C. i got a bit bored because I had to write so much code 09:10:28 i didn't remember until you linked me though. i am glad to have this 09:10:42 especially because I was thinking to use a gap buffer, but I don't remember how at all 09:10:46 tdignan: writing an emacs should be a valuable learning experience. If you can do it for an editor, you can then do it for any applications, and that'd be great. 09:11:51 i wish I had more time to do it 09:12:10 i'm just going to have to write it slowly 09:12:52 Well if you start from scheme, with its libraries for regexp, and buffers, and so on, you should be able to write a small emacs quickly enough. 09:13:25 i'm using python, i don't even know scheme yet.. I got sidetracked when i was thinking about what tool I wanted to use, heh 09:14:05 i'll support the saving of scheme files, via ascii compatibility ;) 09:15:05 -!- drdo [~user@91.205.108.93.rev.vodafone.pt] has quit [Read error: Connection reset by peer] 09:15:43 drdo [~user@91.205.108.93.rev.vodafone.pt] has joined #scheme 09:23:53 genieliu: sorry was away, the compiler and minimal runtime is in C#, rest is Scheme 09:26:39 drdo` [~user@91.205.108.93.rev.vodafone.pt] has joined #scheme 09:27:11 -!- drdo [~user@91.205.108.93.rev.vodafone.pt] has quit [Read error: Connection reset by peer] 09:30:45 -!- aidalgol [~user@114-134-7-23.rurallink.co.nz] has quit [Quit: zZzZzZzZzZz] 09:35:11 drdo [~user@91.205.108.93.rev.vodafone.pt] has joined #scheme 09:35:21 -!- drdo` [~user@91.205.108.93.rev.vodafone.pt] has quit [Read error: Connection reset by peer] 09:38:36 leppie: Never mind 09:41:41 I'm wondering how to make my racket be edited as like in emacs 10:21:55 -!- astrokatie [~Katie@142.68.168.20] has quit [Read error: Connection reset by peer] 10:29:23 pjb__ [~pjb@81.202.16.46.dyn.user.ono.com] has joined #scheme 10:46:59 -!- blueadept [~blueadept@unaffiliated/blueadept] has quit [Quit: Leaving] 10:47:32 MrFahrenheit [~RageOfTho@users-146-61.vinet.ba] has joined #scheme 11:01:17 -!- drwho [~drwho@c-69-242-33-209.hsd1.pa.comcast.net] has quit [Read error: Connection reset by peer] 11:06:24 araujo [~araujo@gentoo/developer/araujo] has joined #scheme 11:07:06 genieliu: do you mean emacs keybindings in DrRacket? 11:24:34 bremner_: yes 11:25:02 oh 11:25:06 it is possible 11:25:07 hold on 11:26:41 edit->preferences->editing->general->enable keybindings in menu 11:26:51 genieliu: ^ 11:33:22 ohwow: Thx, but it didn't work 11:35:34 bgs100 [~ian@unaffiliated/bgs100] has joined #scheme 11:36:12 please tell us what you typed, what you were expecting, and what happened. 11:36:44 the confusing part is you actually want that checkbox _unchecked_ for emacs keybindings iirc 11:38:05 brandelune [~suzume@pl571.nas982.takamatsu.nttpc.ne.jp] has joined #scheme 11:38:47 I just want to edit my script in racket just like in emacs. 11:40:18 well, what we suggested is a way to make DrRacket a bit more emacs-like. If you really want emacs, you should use emacs (but then you lose some DrRacket features) 11:40:50 but it's hard to tell if you even managed to get DrRacket into emacs-like mode from what you have told us. 11:41:54 kuribas [~user@d54C43D8A.access.telenet.be] has joined #scheme 11:45:45 -!- pjb__ [~pjb@81.202.16.46.dyn.user.ono.com] has quit [Quit: from my iPad] 11:50:49 gravicappa [~gravicapp@ppp91-77-185-185.pppoe.mtu-net.ru] has joined #scheme 11:52:36 alvatar [~alvatar@179.232.218.87.dynamic.jazztel.es] has joined #scheme 11:54:18 -!- genieliu [~genieliu@59.78.62.120] has quit [Quit: leaving] 12:05:29 -!- brandelune [~suzume@pl571.nas982.takamatsu.nttpc.ne.jp] has quit [Quit: brandelune] 12:11:53 copumpkin [~pumpkin@user-12hcrs5.cable.mindspring.com] has joined #scheme 12:11:53 -!- copumpkin [~pumpkin@user-12hcrs5.cable.mindspring.com] has quit [Changing host] 12:11:53 copumpkin [~pumpkin@unaffiliated/pumpkingod] has joined #scheme 12:15:06 -!- copumpkin [~pumpkin@unaffiliated/pumpkingod] has quit [Client Quit] 12:36:40 so 12:37:01 hmm 12:41:24 no! 12:43:26 yes? 12:43:42 Lo. 12:43:59 -!- kuribas [~user@d54C43D8A.access.telenet.be] has quit [Quit: ERC Version 5.3 (IRC client for Emacs)] 12:46:18 I'm just contemplating (define (f) vs (define f 12:46:23 (still) 12:46:53 this time in relation to streams 12:48:03 can't (define (f) blah) always be replaced by (define f (lambda () blah)) ? 12:50:15 yes 12:50:23 perhaps it will be easier if you think of it that way, Articate 12:50:29 the former is just a shorthand for the latter 12:50:33 -!- elly has set mode -o elly 12:51:15 genieliu [~genieliu@59.78.62.120] has joined #scheme 12:52:05 And (define ((f x) y) (e x y)) is a short hand for (define (f x) (lambda (y) (e x y))) which is a shorthand for (define f (lambda (x) (lambda (y) (e x y)))) 12:52:21 You get gratis currying in scheme. 12:55:00 kinda :P 12:55:09 you have to explicitly mark something as curryable like that 12:58:42 Yeah. Scheme is strange. Full of syntax... 12:58:52 *bremner_* doesn't consider (define ((f x) y) ...) nice compared to the equivalent Haskell... 12:59:24 well, nicely explicit, I guess 13:00:10 it lets you explicitly declare at which points the function can curry, I guess? 13:00:26 In Haskell, all functions can be considered to have one parameter 13:00:39 but then to call it you have to ((f 3) 4) 13:00:43 which is not very cool 13:00:53 Well, Haskell's syntax for function application is whitespace. 13:01:08 So ((f 3) 4) is just written f 3 4. 13:01:39 yes. and _that_ is gratis currying 13:01:55 This means that the arity of all functions are fixed, which is nevertheless a fair tradeoff. 13:02:35 well, pattern matching hides that, so it seems kinda like an implementation detail. 13:03:14 I definitely like the Haskell way more 13:03:17 bremner_, (curry-app f x y z) -> (((f x) y) z) ; almost as nice. 13:03:27 (where all functions can be partially applied) 13:05:34 -!- pdelgallego [~pdelgalle@1385159903.dhcp.dbnet.dk] has left #scheme 13:07:36 DT``: is there something like (curry-define (f x y z) ...)? one could call it defun ;) 13:08:00 oh wow 13:08:06 I did not know my brother was that big of an idiot 13:09:22 genetic, probably. I'd get tested. 13:10:21 bremner_, well, make (curry-define (f x y z) ...) to (define (((f x) y) z) ...), or to a curry-lambda. 13:10:50 sure. A simple matter of macrology. 13:11:05 or maybe not even needed. 13:11:44 ah, yeah f is special there, so some macro is needed 13:12:01 oh doh!, all the parameters are special. 13:16:18 -!- dnolen [~davidnole@184.152.69.75] has quit [Quit: dnolen] 13:18:36 bremner_, here: (begin(define-syntax clambda(syntax-rules()((_(). body)(lambda(). body))((_(a). body)(lambda(a). body))((_(a b ...). body)(lambda(a)(clambda(b ...). body)))))(define-syntax cdefine(syntax-rules()((_(f a ...). body)(define f(clambda(a ...). body)))((_ x y)(define x y))))(define-syntax capp(syntax-rules()((_ f)(f))((_ f x)(f x))((_ f x y ...)(capp(f x)y ...))))) (unstripping the whitespaces is left as an exercise for th 13:18:37 e pretty-printer) 13:18:46 Keta [~Katie@142.68.168.20] has joined #scheme 13:19:04 d'oh, it break the character limit anyway. 13:19:47 Not if you had named it defun! 13:19:54 bremner_ - half-brother 13:23:44 nah, currying is serious business, no time for defun. 13:33:59 ASau [~user@95-27-146-128.broadband.corbina.ru] has joined #scheme 13:34:49 DT``: but then you need to know something is curried when you apply it, which is sorta gauche 13:35:37 How is that any different from Haskell, elly? 13:38:17 -!- Keta [~Katie@142.68.168.20] has quit [Read error: Connection reset by peer] 13:38:44 Keta [~Katie@142.68.168.20] has joined #scheme 13:39:23 -!- Keta [~Katie@142.68.168.20] has quit [Read error: Connection reset by peer] 13:39:51 Keta [~Katie@142.68.168.20] has joined #scheme 13:40:32 Riastradh: well, in haskell the same function application syntax works for partial vs complete application 13:41:12 alfa_y_omega [~alfa_y_om@90.166.231.220] has joined #scheme 13:43:00 I duess if you build all functions with that magical DEFINE, and always use CAPP, you get the same thing 13:43:04 Haskell's analogue to `(f x y z)' is `f (x, y, z)'. Just like in Scheme you have to know whether to write that or `(((f x) y) z)', in Haskell you have to know whether to write that or `f x y z' (= `(((f x) y) z)', of course). 13:45:06 francogrex [~user@109.130.69.14] has joined #scheme 13:45:24 Hi, what program translates scm to C ? 13:45:32 gambit scheme. 13:45:37 And some ohters. 13:46:16 pjb: good to ee you here; gambit compiles to c then 13:46:27 s/ee/see 13:53:50 Riastradh: in Haskell every function is curried, so there is nothing to know 13:54:38 bremner_, you have to know when to pass a tuple. 13:54:59 bremner_, in Scheme every function is curried, so there is nothing to know. Except for the exceptions, which you have to know. 13:55:05 strout [~strout@ip-64-255-129-222.ideaone.net] has joined #scheme 13:55:07 Not curried, I mean. 13:55:30 Riastradh: sure, we were just discussing nice syntax for curried functions, that's all. 13:56:17 There isn't any intrinsic difference here; the only difference is convention. 14:00:16 I'm not sure what "intrinsic" means here, but since the discussion was mainly in terms of what is pretty, I guess we agree. 14:02:12 Is there a function for `grouping' lists? (2 2 3 3 3) => ((2 2) (3 3 3))? 14:03:54 -!- francogrex [~user@109.130.69.14] has quit [Remote host closed the connection] 14:06:03 -!- Keta [~Katie@142.68.168.20] has quit [Read error: Connection reset by peer] 14:06:06 ohwow: there is. But your TA will like you better if you provide your own code... 14:06:30 Keta [~Katie@142.68.168.20] has joined #scheme 14:07:20 -!- forcer [~forcer@g231147139.adsl.alicedsl.de] has quit [Ping timeout: 240 seconds] 14:07:48 TA? 14:07:56 Teaching Assistant. 14:09:46 -!- strout [~strout@ip-64-255-129-222.ideaone.net] has quit [Ping timeout: 248 seconds] 14:10:46 Ah, 14:11:00 unfortunatelly we don't have Scheme classes at our university 14:11:37 If you assume your input list is sorted, GROUP isn't hard to write 14:14:29 i just use take-while + drop-while 14:14:47 not really good since i go over the same list twice 14:14:55 should write take/drop-while 14:17:13 -!- Keta [~Katie@142.68.168.20] has quit [Quit: Leaving] 14:18:06 ohwow: it's called span 14:18:09 You mean like SPAN? 14:18:33 foof: oh, thanks 14:20:34 -!- ymasory [~ymasory@c-76-99-55-224.hsd1.pa.comcast.net] has quit [Quit: Leaving] 14:33:15 -!- gravicappa [~gravicapp@ppp91-77-185-185.pppoe.mtu-net.ru] has quit [Ping timeout: 252 seconds] 14:43:20 -!- ToxicFrog [~ToxicFrog@24-246-40-169.cable.teksavvy.com] has quit [Read error: Operation timed out] 14:49:19 COMPLEX! 14:49:20 gaah! 14:49:30 let's do this together! 14:49:43 I think your problems with complex numbers are purely imaginary. 14:50:06 That's clever. 14:50:09 that's irrational. 14:50:24 the imaginary problem of your complex numbers is irrelational! 14:50:31 no wait 14:50:42 the root of your imaginary problem of your complex numbers is irrelational! 14:51:31 it's only a fraction of the problem, really. 14:52:10 rudybot, (define (add-streams s t) (cons-stream (+ (stream-car s) (stream-car t)) (add-streams (stream-cdr s) (stream-cdr t))) 14:52:10 Articate: So basically the apply rule stream -- even evaluating the stream-car can cause a recursive infinite loop 14:52:17 -!- alvatar [~alvatar@179.232.218.87.dynamic.jazztel.es] has quit [Quit: leaving] 14:52:36 he doesn't like streams? 14:52:46 I doubt that rudybot has SICP's cons-stream. 14:53:19 racket has stream-cons, but you have require some module. 14:53:20 gravicappa [~gravicapp@ppp91-77-218-49.pppoe.mtu-net.ru] has joined #scheme 14:53:39 rudybot, stream-cons 14:53:39 DT``: racket has stream-cons, but you have require some module. 14:53:54 *bremner_* nods wisely 14:53:59 rudybot, u so smart. 14:53:59 DT``: hey all. I am using Python mode but "smart indent" isn't working (it's bound to C-j..?? see hey all. I am using Python mode but "smart indent" isn't working (it's bound to C-j..?? see http://www.emacswiki.org/emacs/PythonMode 14:54:14 rudybot, (require racket/stream) 14:54:14 DT``: your sandbox is ready 14:54:14 DT``: Done. 14:54:19 rudybot, eval stream-cons 14:54:19 DT``: error: eval:1:0: stream-cons: bad syntax in: stream-cons 14:54:41 rudybot, (define-syntax cons-stream (syntax-rules () ((cons-stream obj stream) (cons obj (delay stream))))) 14:54:41 Articate: Done. 14:55:08 rudybot, (define (add-streams s t) (cons-stream (+ (car s) (car t)) (add-streams (force (cdr s)) (force (cdr t)))) 14:55:08 Articate: hmm not to sure if I have it right. Where should I place the delay? (define (integers-starting-from n) (cons-stream n (integers-starting-from (+ n 1)))) 14:55:14 rudybot, init r5rs 14:55:14 DT``: your r5rs sandbox is ready 14:55:21 rudybot, init planet neil/sicp 14:55:21 DT``: expecting: init [] 14:55:27 rudybot, init "planet neil/sicp" 14:55:27 DT``: expecting: init [] 14:55:45 well, at least I tried. 14:56:15 but I gave him cons-stream! 14:56:32 rudybot, eval cons-stream 14:56:32 Articate: error: eval:1:0: cons-stream: bad syntax in: cons-stream 14:56:37 o rly 14:56:45 Articate, try that code with eval. 14:57:34 rudybot, eval (define-syntax cons-stream (syntax-rules () ((cons-stream obj stream) (cons obj (delay stream))))) 14:57:34 Articate: Done. 14:57:36 like that? 14:57:41 yeah. 14:57:46 (you were missing two parens) 14:58:08 rudybot, (define-syntax cons-stream (syntax-rules () ((cons-stream obj stream) (cons obj (delay stream))))) 14:58:08 DT``: Done. 14:58:17 rudybot, eval (define (add-streams s t) (cons-stream (+ (car s) (car t)) (add-streams (force (cdr s)) (force (cdr t)))) 14:58:17 DT``: error: eval:1:0: read: expected a `)' to close `(' 14:58:24 rudybot, eval (define (add-streams s t) (cons-stream (+ (car s) (car t)) (add-streams (force (cdr s)) (force (cdr t)))) )) 14:58:24 DT``: error: eval:1:107: read: unexpected `)' 14:58:29 ok, just one. 14:58:35 rudybot, eval (define (add-streams s t) (cons-stream (+ (car s) (car t)) (add-streams (force (cdr s)) (force (cdr t)))) ) 14:58:35 DT``: Done. 14:58:36 it's in this smiley! 14:58:37 ) 14:58:39 :) 14:58:40 damnit. 14:58:48 rudybot, (define (add-streams s t) (cons-stream (+ (car s) (car t)) (add-streams (force (cdr s)) (force (cdr t))))) 14:58:48 Articate: Done. 14:58:53 \o/ 14:59:05 ToxicFrog [~ToxicFrog@24-246-40-169.cable.teksavvy.com] has joined #scheme 14:59:56 rudybot, (define (ints-from n) (cons-stream n (ints (+ n 1)))) 14:59:56 Articate: Done. 15:00:15 rudybot, (define ints (ints-from 1)) 15:00:15 Articate: Done. 15:00:22 rudybot, eval ints 15:00:23 Articate: ; Value: (1 . #) 15:00:30 now! 15:01:08 how do we make a stream where D = d(1), d(2), d(3), d(4) = 1, 2, 4, 7.. -> d(i+1) - d(i) = i 15:01:08 it's going to implode on (force (cdr ints)). 15:02:02 why? 15:02:17 you're applying a list to (+ 1 1). 15:02:52 it'll be delayed? 15:03:00 (you probably wanted (ints-from (+ n 1)) in ints-from) 15:03:11 duuur :D 15:04:02 rudybot, (define (ints-from n) (cons-stream n (ints-from (+ n 1)))) 15:04:02 Articate: Done. 15:04:07 rudybot, (define ints (ints-from 1)) 15:04:07 Articate: Done. 15:04:50 rudybot, (define D (cons-stream 1 (add-streams D ints))) 15:04:50 Articate: Done. 15:05:01 that's where my head implodes from recursiveness 15:05:36 ok, so the next part of that stream is the added stream of this stream plus ints 15:06:14 well, that's obviously... it means... well... isn't it obvious? 15:06:15 realitygrill [~realitygr@adsl-76-226-120-202.dsl.sfldmi.sbcglobal.net] has joined #scheme 15:06:51 (because it works, right?) 15:06:54 it does 15:07:06 D4 = 7 15:07:37 rudybot, (define (stream-cdr s) (force (cdr s))) 15:07:38 Articate: Done. 15:08:07 rudybot, eval (stream-cdr (stream-cdr (stream-cdr (stream-cdr D)))) 15:08:07 Articate: ; Value: (11 . #) 15:08:26 right, that's d(5) 15:08:45 so it works 15:08:57 but, ok, I'm just trying to take this slowly so I get it 15:12:50 it's just the fact that we're adding a stream that we're making by adding the stream! 15:14:22 oh 15:18:16 or not 15:18:26 because - (car D), that's easy, it's 1 15:18:50 and the evaluation of (add-streams D ints) is then also easy, because it's (+ 1 1) 15:19:15 you're adding the end of the forced-so-far D to the end of the forced-so-far ints. 15:19:35 right, I'm just trying to see how it is formed 15:19:45 so, (+ 1 1), (+ (+ 1 1) 2), (+ (+ (+ 1 1) 2) 3), ... 15:20:00 hmm 15:20:43 let's see - the next evaluation is (add-streams (stream-cdr D) (stream-cdr ints)) - and we just found (stream-cdr D), which was 2, and stream-cdr of ints is 2. That's 4 15:22:51 blueadept [~blueadept@unaffiliated/blueadept] has joined #scheme 15:22:53 it's just kind of hard to see the recursiveness with two streams making each other :D 15:23:30 yeah, I still have that problem too. 15:24:16 pjb__ [~pjb@81.202.16.46.dyn.user.ono.com] has joined #scheme 15:29:35 rudybot, (define S (cons-stream 1 (add-stream (stream-cdr D) S)) 15:29:35 Articate: let's see - the next evaluation is (add-streams (stream-cdr D) (stream-cdr ints)) - and we just found (stream-cdr D), which was 2, and stream-cdr of ints is 2. That's 4 15:29:45 rudybot, (define S (cons-stream 1 (add-stream (stream-cdr D) S))) 15:29:45 Articate: Done. 15:29:55 rudybot, eval S 15:29:55 Articate: ; Value: (1 . #) 15:30:05 rudybot, eval (stream-cdr S) 15:30:05 Articate: error: reference to an identifier before its definition: add-stream in module: 'program 15:30:15 oh 15:30:21 rudybot, (define S (cons-stream 1 (add-streams (stream-cdr D) S))) 15:30:21 Articate: Done. 15:30:23 rudybot, eval (stream-cdr S) 15:30:23 Articate: ; Value: (3 . #) 15:46:22 ymasory [~ymasory@c-76-99-55-224.hsd1.pa.comcast.net] has joined #scheme 15:53:56 -!- ToxicFrog [~ToxicFrog@24-246-40-169.cable.teksavvy.com] has quit [Ping timeout: 250 seconds] 16:03:50 JoelMcCracken [~user@pool-72-95-201-220.pitbpa.east.verizon.net] has joined #scheme 16:06:00 -!- blueadept [~blueadept@unaffiliated/blueadept] has quit [Quit: Leaving] 16:06:25 blueadept [~blueadept@unaffiliated/blueadept] has joined #scheme 16:07:56 -!- JoelMcCracken [~user@pool-72-95-201-220.pitbpa.east.verizon.net] has quit [Remote host closed the connection] 16:08:49 tupi [~david@189.60.161.65] has joined #scheme 16:10:30 JoelMcCracken [~user@pool-72-95-201-220.pitbpa.east.verizon.net] has joined #scheme 16:12:34 -!- DT`` [~Feeock@net-93-149-45-136.cust.dsl.teletu.it] has quit [Ping timeout: 250 seconds] 16:19:12 zmv [~daniel@c9533906.virtua.com.br] has joined #scheme 16:24:35 DT`` [~Feeock@net-93-149-67-59.cust.dsl.teletu.it] has joined #scheme 16:46:01 pnkfelix [~Adium@c-68-82-87-23.hsd1.pa.comcast.net] has joined #scheme 16:46:41 -!- EM03 [~dfsdfdsf@unaffiliated/em03] has left #scheme 16:53:13 strout [~strout@ip-64-255-129-222.ideaone.net] has joined #scheme 16:57:17 can someone tell me how "apply" works? 16:58:13 apply calls the functions with the given argument. 16:58:18 Apply takes two arguments: procedure and a list. After that it.. applies the list to the procedure 16:58:19 What else do you want to know? 16:58:22 for example: 16:58:25 ohwow: that's wrong. 16:58:31 apply takes any number of arguments. 16:58:38 (apply f '(1 2 3 a)) => (f 1 2 3 'a) 16:58:38 The last argument must be a list. 16:58:46 pjb: yes, sorry 16:58:54 rudybot: (apply + 1 2 3 '(4 5 6)) 16:58:54 pjb: your sandbox is ready 16:58:54 pjb: ; Value: 21 16:59:44 The usual grammatical structure is `apply operator to operands', not `apply operands to operator'. 16:59:58 Hm 17:00:07 Sorry again, English is not my first language. 17:00:18 but that makes sense 17:01:46 does it sort of do a 17:02:18 (apply + '(1 2 3)) gives (+ (+ 1 2) 3) ? 17:02:40 No. (apply + '(1 2 3))== (+ 1 2 3) 17:03:09 ah! 17:03:38 -!- strout [~strout@ip-64-255-129-222.ideaone.net] has quit [Ping timeout: 276 seconds] 17:03:38 so in essence, it's a way to explode a list? 17:03:55 or, one take on its essense, I suppose 17:04:03 In a way yes. 17:04:32 that's why I see it so much in these older exams in use with the dotted argument notation 17:05:08 since, if you have a (define (func . list) ... ) you can re-explode the list and pass it on to the next iteration of that function by doing (apply func (list)) 17:05:13 Older? 17:05:17 ohwow: this is true (re. Vim icon; MacVim's is even better, I think) 17:05:27 When you receive a variable number of arguments, to forward them, you must use apply indeed. 17:05:29 Riastradh - I have an exam on monday. I have older exams back to '96 17:10:09 Where would you use weak hash-tables? (as in http://docs.racket-lang.org/guide/hash-tables.html ) 17:10:42 ventonegro [~alex@cust.static.46-14-234-161.swisscomdata.ch] has joined #scheme 17:11:00 ohwow: 17:11:24 There are a few examples given there of weak data structures, including weak hash tables, of various flavours. 17:12:37 ok thanks 17:19:40 monqy [~chap@pool-71-102-217-117.snloca.dsl-w.verizon.net] has joined #scheme 17:23:38 strout [~strout@ip-64-255-129-222.ideaone.net] has joined #scheme 17:33:25 djcb [~user@82.131.116.185.cable.starman.ee] has joined #scheme 17:38:22 -!- JoelMcCracken [~user@pool-72-95-201-220.pitbpa.east.verizon.net] has quit [Ping timeout: 250 seconds] 17:43:00 teurastaja [~Samuel@modemcable072.213-81-70.mc.videotron.ca] has joined #scheme 17:48:11 -!- pnkfelix [~Adium@c-68-82-87-23.hsd1.pa.comcast.net] has quit [Quit: Leaving.] 17:51:31 -!- genieliu [~genieliu@59.78.62.120] has quit [Quit: leaving] 17:58:38 dnolen [~davidnole@184.152.69.75] has joined #scheme 18:02:21 Dre [~Dre@166.pool85-54-128.dynamic.orange.es] has joined #scheme 18:19:47 JoelMcCracken [~user@pool-108-32-0-165.pitbpa.east.verizon.net] has joined #scheme 18:20:11 what is the rationale behind multiple return values, as opposed to returning a list? 18:20:39 Multiple values don't require consing a list. 18:20:45 They can be stored in registers. 18:20:54 What's the rationale behind passing multiple arguments, as opposed to passing a list? 18:21:10 Multiple arguments don't require consing a list. 18:21:18 They can be stored in registers (or on the stack). 18:22:04 -!- Khisanth [~Khisanth@50.14.244.111] has quit [Ping timeout: 240 seconds] 18:22:07 so, efficency, then? I was thinking there might be a higher-level philosophical point to it 18:22:50 A little more generally, multiple {return values, arguments} are easier to reason about, easier to detect errors of early, and easier to implement more efficiently than APIs involving lists. 18:24:21 JoelMcCracken, the philosophical point is the symmetry of functions and continuations (I think). Why shouldn't continuations take multiple values? 18:31:39 -!- MrFahrenheit [~RageOfTho@users-146-61.vinet.ba] has quit [Read error: Connection reset by peer] 18:32:05 MrFahrenheit [~RageOfTho@users-146-61.vinet.ba] has joined #scheme 18:36:14 -!- strout [~strout@ip-64-255-129-222.ideaone.net] has quit [Ping timeout: 240 seconds] 18:36:31 -!- gravicappa [~gravicapp@ppp91-77-218-49.pppoe.mtu-net.ru] has quit [Ping timeout: 252 seconds] 18:39:02 -!- JoelMcCracken [~user@pool-108-32-0-165.pitbpa.east.verizon.net] has quit [Ping timeout: 250 seconds] 18:39:57 Khisanth [~Khisanth@50.14.244.111] has joined #scheme 18:45:50 gravicappa [~gravicapp@ppp91-77-176-213.pppoe.mtu-net.ru] has joined #scheme 18:50:49 ijp [~user@host109-154-194-139.range109-154.btcentralplus.com] has joined #scheme 18:53:26 -!- clog [~nef@bespin.org] has quit [Ping timeout: 240 seconds] 19:09:32 karme [~user@stgt-5f73ab48.pool.mediaWays.net] has joined #scheme 19:09:59 copumpkin [~pumpkin@user-12hcrs5.cable.mindspring.com] has joined #scheme 19:09:59 -!- copumpkin [~pumpkin@user-12hcrs5.cable.mindspring.com] has quit [Changing host] 19:09:59 copumpkin [~pumpkin@unaffiliated/pumpkingod] has joined #scheme 19:11:45 dfeuer [~dfeuer@wikimedia/Dfeuer] has joined #scheme 19:13:12 foof: How do you generate your docs, by the way? They look identical to SICP and appear to be made with TeX2page. 19:13:21 Did you need to do anything special to get the Scheme syntax highlighting? 19:14:48 -!- copumpkin [~pumpkin@unaffiliated/pumpkingod] has quit [Client Quit] 19:16:04 DT``: That's the most convincing argument I've heard yet, I think; it was the thing I always suspected, but was unable to articulate. 19:24:37 thomanil [~Adium@ti0165a340-dhcp0652.bb.online.no] has joined #scheme 19:25:03 alvatar [~alvatar@179.232.218.87.dynamic.jazztel.es] has joined #scheme 19:25:18 -!- thomanil [~Adium@ti0165a340-dhcp0652.bb.online.no] has quit [Client Quit] 19:31:37 aidalgol [~user@114-134-7-23.rurallink.co.nz] has joined #scheme 19:32:05 -!- aidalgol [~user@114-134-7-23.rurallink.co.nz] has quit [Remote host closed the connection] 19:39:41 -!- gravicappa [~gravicapp@ppp91-77-176-213.pppoe.mtu-net.ru] has quit [Remote host closed the connection] 19:43:17 -!- zmv is now known as cock 19:43:22 -!- cock [~daniel@c9533906.virtua.com.br] has quit [Quit: leaving] 19:48:29 micrypt [~micrypt@138.37.217.40] has joined #scheme 19:49:02 Hi, could someone recommend a scheme interpreter? I'm reading through The Little Schemer. 19:49:31 s/interpreter/implementation 19:50:21 I'm fond of racket and chicken, personally. 19:56:05 *karme* likes gauche 19:57:15 homie` [~levent.gu@xdsl-78-35-164-95.netcologne.de] has joined #scheme 19:59:38 -!- homie [~levent.gu@xdsl-84-44-154-157.netcologne.de] has quit [Ping timeout: 250 seconds] 20:00:33 so, if (apply) can take several arguments, but the last has to be a list 20:01:04 -!- homie` [~levent.gu@xdsl-78-35-164-95.netcologne.de] has quit [Client Quit] 20:01:20 that means (apply + 1 2 '(3 4)) is the same as (apply + '(1 2 3 4)) 20:01:31 is the latter prefered, or anything like that I should know? 20:01:53 -!- alvatar [~alvatar@179.232.218.87.dynamic.jazztel.es] has quit [Quit: leaving] 20:02:00 What's prefered is 10. 20:02:07 Second choice: (+ 1 2 3 4) 20:02:14 yeah 20:02:26 but out of those two 20:02:29 Articate: The former is just for convenience 20:02:31 *offby1* votes for racket 20:02:55 rudybot: eval (printf "Yo ~a: ~a is pretty nice" 'micrypt (banner)) 20:02:55 *offby1: your sandbox is ready 20:02:55 *offby1: ; stdout: "Yo micrypt: Welcome to Racket v5.1.1.\n is pretty nice" 20:03:05 It happens that sometimes you have the last arguments, and you want to prefix some arguments. Then you will use (apply + prefix last-arguments) rather than consing uselessly (apply + (cons prefix last-arguments)). 20:03:28 right. I've just seen it consistently been done like (apply multimap (cons proc somelist)) 20:04:19 then we agree! 20:04:22 or something! 20:04:25 That's because humans, despite their being proud of having billions of neurons, actually have little brains. 20:04:33 :-( 20:04:34 The code is probably a holdover from when you could only (apply proc list) 20:04:44 So they retain only (apply fun args) instead of (apply fun arg... args). 20:05:00 *micrypt* went with Racket. Thanks. 20:09:53 homie [~levent.gu@xdsl-78-35-164-95.netcologne.de] has joined #scheme 20:10:44 pjb++ 20:11:05 -!- karme [~user@stgt-5f73ab48.pool.mediaWays.net] has quit [Remote host closed the connection] 20:14:21 (apply + 1 2 3 4 '()) 20:15:02 $1 = 10 20:15:39 aalix [~textual@75.85.176.185] has joined #scheme 20:16:12 sorry. that was supposed to go into slime. 20:17:00 rudybot: (apply + 1 2 3 4 '()) 20:17:00 pjb: ; Value: 10 20:17:55 hrm. does rudybot have docs? 20:18:02 is this it on github? 20:20:05 -!- aalix [~textual@75.85.176.185] has quit [Quit: Textual IRC Client: http://www.textualapp.com/] 20:20:26 aalix [~aalix@75.85.176.185] has joined #scheme 20:22:37 rudybot: source 20:22:37 penryu: git clone git://github.com/offby1/rudybot.git 20:26:09 rudybot: thanks 20:26:09 penryu: Thanks. This is my first attempt at both a useful piece of Lisp and a major mode. I think my inexperience is showing ;-) 20:33:19 rudybot, how are you? 20:33:19 Articate: Hey, do any of you use Wanderlust? I'm trying to figure out how to save attachments. 20:33:39 rudybot, sux 2 b u 20:33:39 Articate: yuck that sux 20:34:44 rudybot: help 20:34:44 *offby1: help [], version, quote, source, seen , uptime, t8 ..., init [], eval ..., give ..., apropos ..., desc , doc , later "tell" ..., join , part , tell ..., emote ..., for ..., ghost , nick , system ..., top-eval ... 20:35:35 rudybot: emote the stoat 20:35:35 *rudybot* the stoat 20:35:47 EbiDK [3e6b7ac3@gateway/web/freenode/ip.62.107.122.195] has joined #scheme 20:35:53 -!- offby1 is now known as anon 20:35:55 rudybot: emote the stoat 20:35:55 anon: Your machine has been infected by the recent spam attacks - visit http://www2.freenode.pl/ for a quick and easy solution! 20:36:00 rudybot: help 20:36:00 anon: help [], version, quote, source, seen , uptime, t8 ..., init [], eval ..., give ..., apropos ..., desc , doc , later "tell" ... 20:36:05 -!- anon is now known as offby1 20:36:30 penryu: alas, mere mortals such as yourself are limited to the shorter list of commands. 20:38:19 I've come to terms with this. 20:38:25 *cky* needs to write a multi-language bot, so you can "init guile" or "init racket" or "init sbcl" or whatever. :-) 20:42:54 rudybot: lang 20:42:54 penryu: Loading a file with a `#lang' will evaluate the module, which is why you won't see the definitions. 20:44:58 rudybot: version 20:44:58 penryu: c8b04bc 20:45:04 penryu: That just quotes something from the channel history that contains the word you said. 20:45:07 e.g., 20:45:09 rudybot: offby1 20:45:09 cky: jelly-bean buttons? 20:45:14 Hmm. 20:45:24 rudybot: eval (version) 20:45:24 penryu: your sandbox is ready 20:45:24 penryu: ; Value: "5.1.1" 20:45:25 -!- pjb__ [~pjb@81.202.16.46.dyn.user.ono.com] has quit [Quit: from my iPad] 20:45:38 rudybot: eval (banner) 20:45:38 penryu: ; Value: "Welcome to Racket v5.1.1.\n" 20:45:48 ahh. sweet. 20:46:28 penryu: actually, "version" all by itself is a real command, and that c8b04bc was a real answer: it's the SHA1 of the git commit 20:46:34 rudybot: capisce? 20:46:34 *offby1: capisce? 20:46:37 grr 20:46:45 rudybot: so you think you're so smart, do you? 20:46:45 *offby1: And it does have a smart plotting algorithm, using springs. 20:47:03 offby1: yeah, I thought so. 20:47:36 just trying to get at the current lang 20:48:09 I don't think there's a way to find that out, actually. 20:48:10 which ones are available? and is there a policy/convention on users changing them? 20:48:14 you can _set_ it; you just can't _get_ it 20:48:18 rudybot: init r5rs 20:48:19 *offby1: your r5rs sandbox is ready 20:48:29 I think r5rs and racket are the only ones that actually work 20:48:34 rudybot: init r6rs 20:48:34 *offby1: error: r6rs: must contain a `library' form (for a library) or start with `import' (for a top-level program) in: (#%module-begin) 20:48:36 ooooh. they're racket langs, not impls of scheme. 20:48:37 rudybot: init mzscheme 20:48:38 *offby1: your mzscheme sandbox is ready 20:48:41 penryu: right 20:48:48 rudybot: init scheme 20:48:48 *offby1: your scheme sandbox is ready 20:48:51 rudybot: init racket 20:48:52 *offby1: your sandbox is ready 20:48:59 I'm honestly not sure of the differences between them all. 20:49:00 cky: I second your statement. 20:49:09 rudybot: init planet neil/sicp 20:49:09 *offby1: expecting: init [] 20:49:15 rudybot: init (planet neil/sicp) 20:49:15 *offby1: expecting: init [] 20:49:17 nuts 20:49:20 that'd have been handy 20:49:44 rudybot: init "planet neil/sicp" 20:49:44 *offby1: expecting: init [] 20:51:35 suppose you could always diagnose which lang is in effect by evaluating mutually exclusive features. 20:51:54 but as you said, I'm not sure of all the differences either. :) 20:52:39 or any of them, really. I'm just learning scheme. 20:55:41 *penryu* builds mit-scheme 21:00:26 clog [~nef@bespin.org] has joined #scheme 21:02:19 pnkfelix [~Adium@c-68-82-87-23.hsd1.pa.comcast.net] has joined #scheme 21:08:26 rudybot: init scribble 21:08:26 bremner_: error: default-load-handler: cannot open input file: "/usr/local/racket/collects/scribble/main.rkt" (No such file or directory; errno=2) 21:15:16 devogon [~user@a83-163-241-74.adsl.xs4all.nl] has joined #scheme 21:17:20 -!- micrypt [~micrypt@138.37.217.40] has quit [Quit: leaving] 21:24:34 -!- jewel [~jewel@196-209-224-184.dynamic.isadsl.co.za] has quit [Ping timeout: 250 seconds] 21:26:20 rudybot: init r6rs 21:26:20 penryu: error: r6rs: must contain a `library' form (for a library) or start with `import' (for a top-level program) in: (#%module-begin) 21:33:09 cafesofie [~cafesofie@ool-18b97779.dyn.optonline.net] has joined #scheme 21:41:29 wack 21:41:48 kniu [~kniu@pool-96-250-3-60.nycmny.fios.verizon.net] has joined #scheme 21:43:07 rudybot, (define seqs '((1 2 3) (4 5 6))) 21:43:08 Articate: your sandbox is ready 21:43:08 Articate: Done. 21:43:24 rudybot, (map car seqs) 21:43:24 Articate: ; Value: (1 4) 21:43:33 rudybot, (map cdr seqs) 21:43:33 Articate: ; Value: ((2 3) (5 6)) 21:44:05 -!- Riastradh [~riastradh@fsf/member/riastradh] has quit [Ping timeout: 250 seconds] 21:44:05 -!- elly [~elly@atheme/member/elly] has quit [Ping timeout: 250 seconds] 21:47:51 rudybot: (define seqs '((1 2 3) (4 5 6))) 21:47:51 cky: your sandbox is ready 21:47:51 cky: Done. 21:47:55 rudybot: (require srfi/1) 21:47:56 cky: Done. 21:48:00 rudybot: (map car+cdr seqs) 21:48:00 cky: error: context expected 1 value, received 2 values: 1 '(2 3) 21:48:03 Bwahahahaha. 21:48:33 ? 21:49:16 Articate: car+cdr is a SRFI 1 function that returns the car and cdr of a pair, as two values. 21:49:24 Articate: map isn't designed for functions that return two values. 21:49:28 Thus, the error message you see. 21:51:27 rudybot: (car+cdr '(foo . bar)) 21:51:27 cky: ; Value: foo 21:51:28 cky: ; Value#2: bar 21:51:38 Articate: ^^-- does that make sense? 21:52:13 Riastradh [~riastradh@fsf/member/riastradh] has joined #scheme 21:54:38 sure 21:58:08 elly [~elly@atheme/member/elly] has joined #scheme 22:05:29 I've always wondered, why does srfi-1 define unzipN, when you can just define a general unzip as (define (unzip xs) (apply values (apply zip xs)))? 22:08:50 DT``: Probably to keep the number of returned values predictable. 22:09:22 DT``: unzip2 always returns 2 values, no matter what the length of the input lists are (as long as they're all >= 2). 22:09:27 cky: it's your code. the result whould always be predictable :) 22:09:33 leppie: :-P 22:11:43 I would have provided the generic one too, though. 22:12:15 I don't know, those numbers feel dirty to me. 22:12:36 What's the point? The generic one would be identical to zip, except for returning values rather than list. 22:13:08 DT``: how many values is returned by the user proc? I think (without knowing the actual proc) it need that info to construct a reasonal return value(s) 22:13:26 I've been using UNZIP as the name for a procedure that returned two values: the car of the lists and the cdr of the lists 22:13:55 it feels more like what I think of when I say "unzipping" 22:14:02 Huh, interesting. 22:14:15 cky, the point of unzip is to, well, unzip a zipped list. 22:14:36 ijp, that's nice too. 22:16:26 leppie, I don't deny that, but sometimes a generic unzip could be useful. 22:16:50 but since it's just two applys away, it's not much a problem. 22:17:17 i guess it could be done, even a bit inefficiently 22:18:20 strout [~strout@ip-64-255-129-222.ideaone.net] has joined #scheme 22:23:57 -!- ec|detached is now known as elliottcable 22:26:58 Every once and a while when I need something (e.g. fuse) that takes me to SourceForge, I'm reminded that: "Oh, yeah: SourceForge is moribund, anachronistic and almost irrelevant." Whereupon I become wistful and sad. 22:27:25 soveran [~soveran@x225035.dynamic.ppp.asahi-net.or.jp] has joined #scheme 22:28:20 -!- ventonegro [~alex@cust.static.46-14-234-161.swisscomdata.ch] has quit [Quit: ventonegro] 22:28:22 -!- aalix [~aalix@75.85.176.185] has quit [Quit: Computer has gone to sleep.] 22:28:28 s/once and/once in/1 22:29:01 klutometis: I know. :-( 22:29:26 cky: Weird story, isn't it? I wonder why they failed to adapt to the post-github world (not to give too much credit to github). 22:30:09 klutometis: I think to adapt to the distributed-VCS mentality would require way too many changes to the platform. 22:30:19 They'd effectively have to create a completely new product. 22:30:51 -!- HG` [~HG@xdsl-188-118-166-171.dip.osnanet.de] has quit [Quit: Leaving.] 22:30:58 Hmm; maybe you're right. I take it the CVS -> SVN migration in the early aughts was merely incremental. 22:31:48 they are working on a new version 22:31:51 and they've open sourced it 22:31:57 -!- masm [~masm@bl19-155-5.dsl.telepac.pt] has quit [Ping timeout: 246 seconds] 22:32:04 and then it died? 22:32:07 it's available here: http://sourceforge.net/p/allura/git/ci/d9e6b55f1a5f9e85f067ede7ffc33c7abde0a0d9/tree/ 22:32:08 http://tinyurl.com/5w98xow 22:32:31 klutometis: They took *way* too long to adopt svn 22:32:43 I remember scrambling to find a svn hosting provider 22:33:00 I had to settle for Berlios.de, iirc 22:33:07 zeekay: Interesting; I wonder if it succumbed to second-system syndrome. 22:33:17 sjamaan: Yeah, I remember that awkward period. 22:33:34 what is second-system syndrom? 22:33:37 svn was obviously the way forward 22:33:46 But when they adopted it, everybody lost interest 22:33:54 it seems actively developed, hopefully they'll migrate the site over eventually, it seems like an improvement to me 22:34:14 (people already found alternative svn hosters, and new VCS started cropping up making svn less important) 22:34:19 zeekay: Sort of what Yahoo! Stores did when they rewrote Paul Graham's Lisp implementation in PHP: it takes too long to get to market; it includes the kitchen sink; and, by the time it's available, it's irrelevant. 22:34:44 zeekay: You should really read The Mythical Man-Month 22:34:55 they should have rewritten it in ARC! 22:34:57 that's in my pile of books somewhere 22:35:27 bremner_: Heh; I wonder if PG is embarrassed by the exponential decay in buzz that took place after release. 22:35:39 zeekay: It explains second-system syndrome 22:35:43 Jesus, that Arc-buzz had a quick half-life. 22:35:50 yeah :) 22:36:06 klutometis: I know nothing about Arc other than the pretensions, so I feel a bit bad sniping at it. 22:37:05 http://lemonodor.com/images/lolpg-s.jpg 22:37:08 lol yeah, big anticlimax that one 22:37:25 *sjamaan* trolls 22:38:05 sjamaan: Hilarious 22:38:30 *bremner_* installs the debian package of arc: http://packages.debian.org/sid/arc 22:38:46 bremner_: Good man; that's more than I've done. 22:38:54 *bremner_* trolls too 22:40:37 Debian has arc already?! 22:40:40 That's fast! 22:40:54 *sjamaan* trolls some more 22:41:05 arc trolling? why? is a well-designed language, with a clean implementation on top of racket. 22:42:30 *cky* shakes head. 22:42:34 it leverages the existing immutability and persistence of racket's cons data structures by adding mutability through a well-thought and scalable application of racket's optimized unsafe operations to deliver a stable, scalable and efficient product. 22:42:38 doesn't it? 22:42:45 DT``: They're talking about a totally different arc than the one you're thinking of. 22:43:12 <3 your comment though. +1 22:43:27 cky, just trolling some more. 22:43:29 ;-) 22:45:02 *bremner_* thinks trolls in this channel are kindof meta 22:45:41 What gave you that idea? 22:45:47 hey, it's #scheme, what did you expect? metaprogrammers and metatrolls. 22:45:54 *sjamaan* is just drunk 22:50:49 -!- devogon [~user@a83-163-241-74.adsl.xs4all.nl] has quit [Remote host closed the connection] 22:56:46 -!- drdo [~user@91.205.108.93.rev.vodafone.pt] has quit [Read error: Connection reset by peer] 22:59:08 -!- pnkfelix [~Adium@c-68-82-87-23.hsd1.pa.comcast.net] has quit [Quit: Leaving.] 23:01:14 ckrailo [~ckrailo@pool-173-57-102-171.dllstx.fios.verizon.net] has joined #scheme 23:06:21 tcleval [~funnyguy@186.198.145.189] has joined #scheme 23:07:55 -!- tcleval [~funnyguy@186.198.145.189] has quit [Quit: leaving] 23:14:22 -!- ijp [~user@host109-154-194-139.range109-154.btcentralplus.com] has quit [Quit: ERC Version 5.3 (IRC client for Emacs)] 23:30:19 -!- soveran [~soveran@x225035.dynamic.ppp.asahi-net.or.jp] has quit [Remote host closed the connection] 23:34:50 jonrafkind [~jon@jonr5.dsl.xmission.com] has joined #scheme 23:41:29 -!- cafesofie [~cafesofie@ool-18b97779.dyn.optonline.net] has quit [Remote host closed the connection] 23:41:35 -!- bremner_ [~bremner@yantan.tethera.net] has quit [Quit: ZNC - http://znc.sourceforge.net] 23:42:21 bremner_ [~bremner@yantan.tethera.net] has joined #scheme 23:43:13 pandeiro [~pandeiro@189.33.195.88] has joined #scheme 23:45:59 -!- REPLeffect [~REPLeffec@69.54.115.254] has quit [Ping timeout: 252 seconds] 23:48:24 -!- Dre [~Dre@166.pool85-54-128.dynamic.orange.es] has quit [Quit: Leaving] 23:50:02 -!- ymasory [~ymasory@c-76-99-55-224.hsd1.pa.comcast.net] has quit [Remote host closed the connection] 23:57:13 -!- zeekay is now known as zk