00:06:35 zmv [~daniel@c95339f3.virtua.com.br] has joined #scheme 00:06:42 -!- tupi [~david@139.82.89.24] has quit [Quit: Leaving] 00:06:50 Euthydemus [~euthydemu@unaffiliated/euthydemus] has joined #scheme 00:10:08 -!- Kajtek [~nope@nat4-230.ghnet.pl] has quit [Quit: Leaving.] 00:10:45 -!- wingo [~wingo@90.164.198.39] has quit [Ping timeout: 260 seconds] 00:16:13 -!- zmv [~daniel@c95339f3.virtua.com.br] has quit [Ping timeout: 258 seconds] 00:18:07 zmv [~daniel@c95339f3.virtua.com.br] has joined #scheme 00:19:36 jonrafkind [~jon@ip68-102-28-191.ks.ok.cox.net] has joined #scheme 00:20:21 -!- weirdo [sthalik@kronstadt.lain.pl] has quit [Read error: Connection reset by peer] 00:23:09 -!- samth is now known as samth_away 00:24:12 weirdo [sthalik@kronstadt.lain.pl] has joined #scheme 00:26:35 -!- karswell [~mjc@93-97-29-243.zone5.bethere.co.uk] has quit [Read error: Operation timed out] 00:28:56 karswell [~mjc@93-97-29-243.zone5.bethere.co.uk] has joined #scheme 00:30:56 samth_away: Yes, I'm well aware of that :) 00:31:09 -!- Euthydemus [~euthydemu@unaffiliated/euthydemus] has quit [Read error: Operation timed out] 00:41:58 -!- shardz [~samuel@ilo.staticfree.info] has quit [Quit: leaving] 00:42:30 shardz [~samuel@ilo.staticfree.info] has joined #scheme 00:44:43 jeapostrophe [~jay@69.169.141.110.provo.static.broadweavenetworks.net] has joined #scheme 00:47:21 copumpkin [~pumpkin@unaffiliated/pumpkingod] has joined #scheme 00:52:30 -!- jeapostrophe [~jay@69.169.141.110.provo.static.broadweavenetworks.net] has quit [Quit: jeapostrophe] 00:58:59 -!- gffa [~gffa@unaffiliated/gffa] has quit [Quit: sleep] 01:01:18 -!- zmv [~daniel@c95339f3.virtua.com.br] has quit [Ping timeout: 255 seconds] 01:05:53 woonie [~woonie@119.56.116.88] has joined #scheme 01:10:27 -!- woonie [~woonie@119.56.116.88] has quit [Ping timeout: 258 seconds] 01:14:41 bgs101 [~ian@unaffiliated/bgs100] has joined #scheme 01:14:58 -!- bgs100 [~ian@unaffiliated/bgs100] has quit [Ping timeout: 276 seconds] 01:16:50 -!- bgs101 is now known as bgs100 01:19:19 skangas [~skangas@h-238-245.a219.priv.bahnhof.se] has joined #scheme 01:24:23 wisey [~Steven@host86-164-93-171.range86-164.btcentralplus.com] has joined #scheme 01:24:55 masm [~masm@bl15-131-200.dsl.telepac.pt] has joined #scheme 01:25:43 -!- karswell [~mjc@93-97-29-243.zone5.bethere.co.uk] has quit [Read error: Connection reset by peer] 01:26:13 -!- klltkr [~klltkr@78.143.205.208] has quit [Quit: Lost terminal] 01:27:12 -!- copumpkin [~pumpkin@unaffiliated/pumpkingod] has quit [Remote host closed the connection] 01:30:19 frhodes [~user@168-103-97-250.albq.qwest.net] has joined #scheme 01:36:17 -!- ijp [~user@host86-177-156-241.range86-177.btcentralplus.com] has quit [Quit: getting late...] 01:36:59 karswell [~mjc@93-97-29-243.zone5.bethere.co.uk] has joined #scheme 01:37:18 -!- XTL [~XTL@dsl-olubrasgw2-fe6af800-251.dhcp.inet.fi] has quit [Ping timeout: 255 seconds] 01:37:30 LTX [~XTL@dsl-olubrasgw2-fe6af800-251.dhcp.inet.fi] has joined #scheme 01:37:44 -!- LTX is now known as XTL 01:41:08 mjonsson [~mjonsson@38.109.95.133] has joined #scheme 01:41:42 borkman` [~user@68.147.21.90] has joined #scheme 01:42:55 pyro- [~pyro@unaffiliated/purplepanda] has joined #scheme 01:43:30 -!- borkman [~user@S0106001111de1fc8.cg.shawcable.net] has quit [Ping timeout: 260 seconds] 01:45:32 -!- jao [~user@pdpc/supporter/professional/jao] has quit [Ping timeout: 258 seconds] 01:48:33 borkman`` [~user@S0106001111de1fc8.cg.shawcable.net] has joined #scheme 01:48:39 -!- borkman`` [~user@S0106001111de1fc8.cg.shawcable.net] has quit [Remote host closed the connection] 01:49:09 -!- rvn_ [~rvn@77.107.164.131] has quit [Remote host closed the connection] 01:50:30 -!- borkman` [~user@68.147.21.90] has quit [Ping timeout: 260 seconds] 01:53:38 -!- leppie [~lolcow@196-215-36-200.dynamic.isadsl.co.za] has quit [Read error: Connection reset by peer] 01:59:59 -!- pchrist [~spirit@gentoo/developer/pchrist] has quit [Quit: leaving] 02:00:23 leppie [~lolcow@196-215-36-200.dynamic.isadsl.co.za] has joined #scheme 02:01:07 -!- amliby [~amliby@silo.cs.indiana.edu] has quit [Remote host closed the connection] 02:08:35 -!- chrissbx [~chrissbx@69.196.180.202] has quit [Ping timeout: 260 seconds] 02:09:21 masm1 [~masm@bl15-66-91.dsl.telepac.pt] has joined #scheme 02:10:26 -!- masm [~masm@bl15-131-200.dsl.telepac.pt] has quit [Ping timeout: 244 seconds] 02:10:38 -!- skangas [~skangas@h-238-245.a219.priv.bahnhof.se] has quit [Ping timeout: 260 seconds] 02:13:58 skangas [~skangas@h-238-245.a219.priv.bahnhof.se] has joined #scheme 02:17:01 -!- turbofail [~user@c-107-3-149-149.hsd1.ca.comcast.net] has quit [Ping timeout: 240 seconds] 02:19:47 -!- bzzbzz [~franco@modemcable240.34-83-70.mc.videotron.ca] has quit [Quit: leaving] 02:25:50 jeapostrophe [~jay@69.169.141.110.provo.static.broadweavenetworks.net] has joined #scheme 02:27:50 -!- jeapostrophe [~jay@69.169.141.110.provo.static.broadweavenetworks.net] has quit [Client Quit] 03:06:46 -!- jonrafkind [~jon@ip68-102-28-191.ks.ok.cox.net] has quit [Ping timeout: 276 seconds] 03:08:07 chrissbx [~chrissbx@69-196-180-202.dsl.teksavvy.com] has joined #scheme 03:16:33 -!- kennyd [~kennyd@93-138-120-38.adsl.net.t-com.hr] has quit [Ping timeout: 260 seconds] 03:17:25 -!- mithos28 [~eric@99-113-32-54.lightspeed.sntcca.sbcglobal.net] has quit [Quit: mithos28] 03:19:43 jonrafkind [~jon@ip68-102-28-191.ks.ok.cox.net] has joined #scheme 03:20:54 kennyd [~kennyd@93-138-109-254.adsl.net.t-com.hr] has joined #scheme 03:41:15 -!- masm1 [~masm@bl15-66-91.dsl.telepac.pt] has quit [Quit: Leaving.] 03:44:34 -!- frhodes [~user@168-103-97-250.albq.qwest.net] has quit [Quit: ERC Version 5.3 (IRC client for Emacs)] 03:48:07 realitygrill [~realitygr@adsl-76-226-131-40.dsl.sfldmi.sbcglobal.net] has joined #scheme 03:52:36 -!- wisey [~Steven@host86-164-93-171.range86-164.btcentralplus.com] has quit [Quit: Leaving] 03:55:38 woonie [~woonie@119.56.117.96] has joined #scheme 04:08:17 -!- bgs100 [~ian@unaffiliated/bgs100] has quit [Read error: Operation timed out] 04:19:13 -!- mjonsson [~mjonsson@38.109.95.133] has quit [Remote host closed the connection] 04:36:52 -!- gabot [~eli@winooski.ccs.neu.edu] has quit [Remote host closed the connection] 04:38:29 lusory [~bart@bb115-66-195-54.singnet.com.sg] has joined #scheme 04:39:27 kenjin2201 [~kenjin@218.235.8.175] has joined #scheme 04:39:40 -!- eli [~eli@winooski.ccs.neu.edu] has quit [Remote host closed the connection] 04:42:39 -!- kenjin2201 [~kenjin@218.235.8.175] has quit [Remote host closed the connection] 04:50:48 -!- Modius [~Modius@cpe-70-123-140-183.austin.res.rr.com] has quit [Read error: Connection reset by peer] 04:51:55 -!- zipace [~hi@unaffiliated/zipace] has quit [Read error: Connection reset by peer] 04:53:03 -!- annihilator [~rff@ip72-207-241-136.br.br.cox.net] has quit [Ping timeout: 248 seconds] 04:56:29 kenjin2201 [~kenjin@218.235.8.175] has joined #scheme 05:04:54 -!- peterhil` [~peterhil@GYKMMCCCXLI.gprs.sl-laajakaista.fi] has quit [Remote host closed the connection] 05:09:52 jeapostrophe [~jay@69.169.141.110.provo.static.broadweavenetworks.net] has joined #scheme 05:18:08 -!- jeapostrophe [~jay@69.169.141.110.provo.static.broadweavenetworks.net] has quit [Quit: jeapostrophe] 05:18:25 jeapostrophe [~jay@69.169.141.110.provo.static.broadweavenetworks.net] has joined #scheme 05:19:24 -!- jeapostrophe [~jay@69.169.141.110.provo.static.broadweavenetworks.net] has quit [Client Quit] 05:34:21 woonie2 [~woonie@nusnet-195-16.dynip.nus.edu.sg] has joined #scheme 05:34:21 -!- woonie [~woonie@119.56.117.96] has quit [Read error: Connection reset by peer] 05:36:38 -!- jonrafkind [~jon@ip68-102-28-191.ks.ok.cox.net] has quit [Ping timeout: 245 seconds] 05:41:13 jonrafkind [~jon@ip68-102-28-191.ks.ok.cox.net] has joined #scheme 05:42:18 eli [~eli@winooski.ccs.neu.edu] has joined #scheme 05:43:05 rimmjob [~king@adsl-108-207-193-83.dsl.hstntx.sbcglobal.net] has joined #scheme 05:43:18 would it be possible to give scheme a C like syntax? 05:43:46 not that i personally want one 05:44:07 rimmjob: You would lose a major feature of Scheme, namely homoiconicity. 05:45:06 I think it would be difficult to decide what is a statement and what is an expression 05:48:19 cky: That's a Lisp-induced myth... That whole term is something that sounds very impressive but doesn't really mean much. 05:50:22 gabot [~eli@winooski.ccs.neu.edu] has joined #scheme 05:50:50 There are lots of languages that borrow heavily from Scheme but have more C-like syntaxes. There are even a few alternate synatxes for Scheme. 05:52:07 It's not just that. The term itself means, very vaguely, a language that uses user-accessible runtime data structures to represent code -- so user programs can treat code as data. 05:52:21 But that's true for any language that has strings. 05:53:48 Well, that's one of those trivial truths that isn't very helpful. But a language like tcl is probably sort of like Scheme in that way more than other languages described in strings. 05:54:48 Um, if anything, TCL is a classic example of what I said -- since it *does* use just strings to represent code. 05:55:03 (Actually, it uses strings to represent anything, which was one of its main features.) 05:55:04 That's what I mean. 05:55:09 -!- em [~em@unaffiliated/emma] has quit [Ping timeout: 255 seconds] 05:55:26 So why is that different than, say, Javascript? 05:56:57 There probably isn't any theoretical difference. It's more of an 'ease-of-use' thing. 05:57:03 em [~em@unaffiliated/emma] has joined #scheme 05:57:31 Though people apply program transformations to Javascript all the time. It just takes a lot more work than it does in Scheme. 05:58:27 Exactly -- the only difference is how easy it is, and that is indeed a major difference. 05:58:58 Lisp sexprs are much better than strings, since they reflect more than just a flat stream of characters to be reparsed over and over. 05:59:12 i just wanted to trick my friends 05:59:42 And by the same token Scheme syntax objects are much better than sexprs, since they hold more information (lexical context), which must be re-inferred in Lisps. 05:59:57 But a system like Template Haskell or Metalua brings the ease of manipulation back into the same league as Scheme, despite the very different syntax. 06:00:05 And, of course, Racket's syntax objects are better than Schemes, since they add yet more information. 06:00:33 Template Haskell etc get the Lisp benefit, basically. 06:00:55 And they do indeed demonstrate that this whole homoiconicity iff sexprs is a myth. 06:02:13 (They get just the Lisp benefit because they don't deal with hygiene, btw.) 06:02:38 Factor is meta-programmable to a pretty extreme degree, too. 06:03:41 -!- realitygrill [~realitygr@adsl-76-226-131-40.dsl.sfldmi.sbcglobal.net] has quit [Quit: realitygrill] 06:05:25 -!- tessier [~treed@kernel-panic/copilotco] has quit [Read error: Operation timed out] 06:08:30 rimmjob: You want to show a language to your friends who hate Scheme and fool them with a C-like syntax? 06:09:33 -!- jonrafkind [~jon@ip68-102-28-191.ks.ok.cox.net] has quit [Ping timeout: 245 seconds] 06:09:34 pretty much 06:09:41 they dont hate it 06:09:45 the just think its alien 06:11:29 rimmjob: http://www.dwheeler.com/readable/ 06:11:50 rimmjob: That's one way to have a less-brackety look and feel, while still retaining everything that's great about S-expressions. 06:12:11 rimmjob: samth once linked to a Racket implementation thereof, if that's the Scheme implementation you're using. 06:12:55 i mostly use chicken 06:13:35 when i make a mess, its nice to be able to debug in C 06:14:03 eli: Sure, but homoiconicity just feels so much more elegant! :-P (I do take the point that with a template system, you can implement easy-to-use macro systems, and you don't strictly need S-expressions. But still.) 06:14:25 rimmjob: :-) 06:14:33 tessier [~treed@mail.copilotco.com] has joined #scheme 06:14:49 realitygrill [~realitygr@adsl-76-226-131-40.dsl.sfldmi.sbcglobal.net] has joined #scheme 06:14:57 rimmjob: For me, the appeal of Chicken is the ease of integrating with C libraries without having to use FFI (though, of course, I <3 FFIs, so it's not as major of a win as one might think). 06:15:25 rimmjob: Also, it integrates well with C++ libraries, which is something FFIs can't do in general. 06:16:05 cky: Um, you mean the particular variant of homoiconicity that are sexprs is much more elegant. 06:16:18 eli: Yeah, that. 06:46:15 pyro-_ [~pyro@unaffiliated/purplepanda] has joined #scheme 06:48:56 -!- pyro- [~pyro@unaffiliated/purplepanda] has quit [Ping timeout: 258 seconds] 06:50:09 soveran [~soveran@juv34-7-78-249-50-4.fbx.proxad.net] has joined #scheme 07:00:07 jao [~user@pdpc/supporter/professional/jao] has joined #scheme 07:03:37 -!- realitygrill [~realitygr@adsl-76-226-131-40.dsl.sfldmi.sbcglobal.net] has quit [Quit: realitygrill] 07:04:25 Arafangion [~Arafangio@220-244-108-23.static.tpgi.com.au] has joined #scheme 07:08:27 -!- tessier [~treed@mail.copilotco.com] has quit [Changing host] 07:08:27 tessier [~treed@kernel-panic/copilotco] has joined #scheme 07:28:43 -!- arcfide [1000@c-69-136-7-94.hsd1.in.comcast.net] has left #scheme 07:35:40 Kajtek [~nope@nat4-230.ghnet.pl] has joined #scheme 07:40:02 -!- replore [~replore@ntkngw304073.kngw.nt.ftth.ppp.infoweb.ne.jp] has quit [Remote host closed the connection] 07:47:41 gravicappa [~gravicapp@ppp91-77-186-228.pppoe.mtu-net.ru] has joined #scheme 07:56:59 alkoma [~alkoma@c-98-207-166-94.hsd1.ca.comcast.net] has joined #scheme 07:57:04 -!- soveran [~soveran@juv34-7-78-249-50-4.fbx.proxad.net] has quit [Remote host closed the connection] 08:08:48 soveran [~soveran@juv34-7-78-249-50-4.fbx.proxad.net] has joined #scheme 08:20:48 taylanub [~taylanub@p4FD9577A.dip.t-dialin.net] has joined #scheme 08:21:58 i want guile to implement kernel the language :P 08:31:15 -!- weirdo [sthalik@kronstadt.lain.pl] has quit [Read error: Connection reset by peer] 08:33:38 weirdo [sthalik@kronstadt.lain.pl] has joined #scheme 08:37:09 -!- jao [~user@pdpc/supporter/professional/jao] has quit [Ping timeout: 255 seconds] 08:42:19 is kernel the language related to conan the barbarian? 08:50:24 ijp [~user@host86-177-156-241.range86-177.btcentralplus.com] has joined #scheme 08:51:13 MrFahrenheit [~RageOfTho@users-151-104.vinet.ba] has joined #scheme 08:54:42 Scheme the Language : Lambda the Ultimate :: Kernel the Language : Conan the Barbarian 08:56:37 ... ..? 08:56:57 it's Vau the Ultimate 09:04:54 -!- Kajtek [~nope@nat4-230.ghnet.pl] has quit [Quit: Leaving.] 09:04:58 -!- levi [~user@c-174-52-219-147.hsd1.ut.comcast.net] has quit [Remote host closed the connection] 09:06:09 Kajtek [~nope@nat4-230.ghnet.pl] has joined #scheme 09:11:04 levi [~user@c-174-52-219-147.hsd1.ut.comcast.net] has joined #scheme 09:11:09 -!- MrFahrenheit [~RageOfTho@users-151-104.vinet.ba] has quit [Ping timeout: 258 seconds] 09:11:48 MrFahrenheit [~RageOfTho@users-151-104.vinet.ba] has joined #scheme 09:16:31 -!- levi [~user@c-174-52-219-147.hsd1.ut.comcast.net] has quit [Remote host closed the connection] 09:20:41 masm [~masm@bl15-66-91.dsl.telepac.pt] has joined #scheme 09:30:08 -!- soveran [~soveran@juv34-7-78-249-50-4.fbx.proxad.net] has quit [Remote host closed the connection] 09:30:27 -!- pyro-_ is now known as pyro- 09:30:37 superjudge [~superjudg@c83-250-198-227.bredband.comhem.se] has joined #scheme 09:44:49 zmyrgel [~user@hoasb-ff0cdd00-22.dhcp.inet.fi] has joined #scheme 09:58:43 peterhil` [~peterhil@ZKMCDVIII.gprs.sl-laajakaista.fi] has joined #scheme 10:17:59 jewel [~jewel@196-209-248-67.dynamic.isadsl.co.za] has joined #scheme 10:18:03 ijp` [~user@host81-159-127-88.range81-159.btcentralplus.com] has joined #scheme 10:20:41 -!- alkoma [~alkoma@c-98-207-166-94.hsd1.ca.comcast.net] has quit [Ping timeout: 252 seconds] 10:21:03 -!- ijp [~user@host86-177-156-241.range86-177.btcentralplus.com] has quit [Ping timeout: 248 seconds] 10:34:10 did anyone ever try to port scsh's AWK to any other system? 10:34:55 Chicken and Racket have it 10:35:56 -!- ijp` is now known as ijp 10:36:12 great, thanks! 10:41:10 kenjin2202 [~kenjin@218.235.8.175] has joined #scheme 10:45:53 -!- pygospa [~TheRealPy@kiel-d9bfdef8.pool.mediaWays.net] has quit [Disconnected by services] 10:46:03 pygospa [~TheRealPy@kiel-5f77b8ad.pool.mediaWays.net] has joined #scheme 10:49:23 -!- ijp [~user@host81-159-127-88.range81-159.btcentralplus.com] has quit [Quit: ERC Version 5.3 (IRC client for Emacs)] 10:51:47 hi schemers 10:54:46 hey 11:12:47 -!- gravicappa [~gravicapp@ppp91-77-186-228.pppoe.mtu-net.ru] has quit [Ping timeout: 260 seconds] 11:14:35 -!- MrFahrenheit [~RageOfTho@users-151-104.vinet.ba] has quit [Ping timeout: 258 seconds] 11:19:29 ijp [~user@host81-159-127-88.range81-159.btcentralplus.com] has joined #scheme 11:20:57 homie [~levgue@xdsl-78-35-160-109.netcologne.de] has joined #scheme 11:21:00 -!- superjudge [~superjudg@c83-250-198-227.bredband.comhem.se] has quit [Quit: superjudge] 11:22:02 wbooze [~levgue@xdsl-78-35-160-109.netcologne.de] has joined #scheme 11:27:34 gravicappa [~gravicapp@91.77.212.74] has joined #scheme 11:39:09 superjudge [~superjudg@c83-250-198-227.bredband.comhem.se] has joined #scheme 11:41:35 Ivoz [cb811aca@gateway/web/freenode/ip.203.129.26.202] has joined #scheme 11:42:05 -!- superjudge [~superjudg@c83-250-198-227.bredband.comhem.se] has quit [Client Quit] 11:42:12 Would any of you have any tips for making an iterative version of map? 11:44:39 Ivoz: Sure. 11:45:05 Ivoz: The idea is that you either reverse the incoming list, or reverse the outgoing list. 11:45:34 ahhhh 11:45:35 Ivoz: The former gives right-to-left execution of the function, while the latter is left-to-right. 11:45:46 cus I think I got a reversed order list that was correct 11:45:52 Yep. 11:46:14 but then proceeded to make list-within-list version taht was the correct way around 11:46:21 and was scratching my head 11:47:40 cky so it would take at least f*n + n time? 11:47:55 Yes, but that means it's still O(n). 11:50:05 is it usually the case that an iterative version of a 'naturally' recursive function needs a helper function? 11:52:10 An iterative version needs to stow the result somewhere. But you don't necessarily have to use a helper function per se. 11:52:32 Here are two ways to implement sum, for example: 11:53:12 rudybot: (define (sum1 items (total 0)) (if (null? items) total (sum1 (cdr items) (+ total (car items))))) 11:53:13 cky: your sandbox is ready 11:53:13 cky: Done. 11:53:18 rudybot: (sum '(1 2 3 4 5)) 11:53:18 cky: error: reference to an identifier before its definition: sum in module: 'program 11:53:23 rudybot: (sum1 '(1 2 3 4 5)) 11:53:23 cky: ; Value: 15 11:53:44 Ivoz: That version uses a defaulted parameter to stow the intermediate result. 11:54:10 Another approach is to use a named let. That is effectively like using a helper, albeit easier on the eye. 11:54:38 -!- Ivoz [cb811aca@gateway/web/freenode/ip.203.129.26.202] has quit [Ping timeout: 252 seconds] 11:54:40 rudybot: (define (sum2 items) (let loop ((items items) (total 0)) (if (null? items) total (loop (cdr items) (+ total (car items)))))) 11:54:41 cky: Done. 11:55:00 :-O 11:55:49 wingo [~wingo@90.164.198.39] has joined #scheme 11:56:19 mithos28 [~eric@99-113-32-54.lightspeed.sntcca.sbcglobal.net] has joined #scheme 12:11:42 rvn_ [~rvn@77.107.164.131] has joined #scheme 12:16:44 -!- deke [~deke@fl-71-54-184-132.dhcp.embarqhsd.net] has quit [Ping timeout: 255 seconds] 12:20:53 rudybot: eval (define (sum . args) (apply + args)) 12:20:53 leppie: your sandbox is ready 12:20:53 leppie: Done. 12:21:05 rudybot: eval (sum '(1 2 3 4 5)) 12:21:05 leppie: error: +: expects argument of type ; given '(1 2 3 4 5) 12:21:12 rudybot: eval (sum 1 2 3 4 5) 12:21:12 leppie: ; Value: 15 12:21:16 oops :) 12:21:23 rudybot: eval (define (sum args) (apply + args)) 12:21:24 leppie: Done. 12:21:26 rudybot: eval (sum '(1 2 3 4 5)) 12:21:26 leppie: ; Value: 15 12:23:40 -!- mithos28 [~eric@99-113-32-54.lightspeed.sntcca.sbcglobal.net] has quit [Quit: mithos28] 12:25:08 rudybot: (require srfi/26) 12:25:08 cky: Done. 12:25:19 Ivoz [cb811aca@gateway/web/freenode/ip.203.129.26.202] has joined #scheme 12:25:19 -!- jewel [~jewel@196-209-248-67.dynamic.isadsl.co.za] has quit [Ping timeout: 248 seconds] 12:25:26 rudybot: (define sum (cut apply + <>)) 12:25:26 cky: Done. 12:25:30 rudybot: (sum '(1 2 3 4 5)) 12:25:31 cky: ; Value: 15 12:26:15 Ivoz: Welcome back. 12:26:28 cky hi 12:26:31 Ivoz: You should read the channel logs for the two versions of iterative sum I wrote. :-P 12:26:40 where are they 12:26:59 http://ccl.clozure.com/irc-logs/scheme/ is one place you can find logs, according to the /topic. 12:27:10 Otherwise I think http://rotty.yi.org/irclogs/ too. 12:28:28 cky can you find where? http://rotty.yi.org/irclogs/freenode/%23scheme/2011-10-07/ 12:29:46 cky this is what I got 12:29:46 http://codepad.org/kiI3atE9 12:30:26 is there a much simpler version of reverse? 12:30:44 Ivoz: Yes, I use the one built into Scheme implementations. ;-) 12:30:55 (define (reverse list) (fold cons '() list)) 12:31:00 That, too. 12:31:06 I'm hoping both reverse and map are iterative 12:31:12 Ivoz: They are. 12:31:53 iterative looks nothing like for (int i = 0; i < n; i++) {} in lisp :'( it's hard to tell when you've done it 12:32:14 Ivoz: look up 'do', its ugly but similar 12:32:16 ijp haven't learnt fold yet 12:32:17 Ivoz: If all recursions are in tail position ("tail recursion"), then it's iterative. 12:32:34 Ivoz: fold is very powerful and useful. 12:32:40 Ivoz: You should learn it soon. :-) 12:32:52 but it has to be the naked function call at the end though, right? 12:33:03 can't be a combination 12:33:03 Ivoz: http://stackoverflow.com/questions/7313563/flatten-a-list-using-only-the-forms-in-the-little-schemer/7324493#7324493 <-- example of using fold 12:33:04 http://tinyurl.com/6d5zhyb 12:33:14 Ivoz: (Disclosure: I wrote that answer.) 12:34:04 yet another idiotic question. 12:34:19 pjb: Lol. 12:34:26 You can write a scheme or CL implementation with the forms in the little schemer... 12:34:34 I can do it just with lambda! 12:35:14 what are kons and knil suppsoed to be 12:35:40 Ivoz: In fold, you need an initial value (knil) and a function that updates that value (kons). 12:35:53 that fold1 looks very similar to my reverse 12:36:07 Ivoz: Yes! And note how reverse is a very simple call into fold1. 12:36:25 In fact, kons = cons and knil = '(), in thet case of reverse. :-P 12:36:28 s/thet/the/ 12:36:37 Ivoz: fold/unfold/etc are meant to capture common recursive patterns 12:37:44 What ijp said. And in fact, that's why fold is so commonly used. 12:37:53 just learn the named let 12:37:54 After a while, you get tired of doing recursion/iteration by hand. :-) 12:38:05 Yes, named let is very useful too. 12:38:17 But even named let is tedious for cases where fold/unfold/map actually work. 12:38:41 rotty uses foof-loop in dorodango, and it's quite nice 12:38:52 :-) 12:38:55 i haven't used it in a project of my own tho 12:39:03 i'm too dysfunctional to use those :) 12:39:10 leppie: Lol. 12:39:51 what do you mean ' just learn named let' 12:40:00 Ivoz: Here's the sum function using named let: 12:40:31 rudybot: (define (sum items) (let loop ((items items) (total 0)) (if (null? items) total (loop (cdr items) (+ total (car items)))))) 12:40:32 cky: Done. 12:40:36 rudybot: (sum '(1 2 3 4 5)) 12:40:36 cky: ; Value: 15 12:40:58 Ivoz: The "let loop" part is the named let. Here, I create a function named "loop". 12:41:03 (You can call it anything you like.) 12:41:37 rudybot: (define (sum items) (let rubber-ducky ((items items) (total 0)) (if (null? items) total (rubber-ducky (cdr items) (+ total (car items)))))) 12:41:38 cky: Done. 12:41:57 many seem to use 'f' too 12:42:11 Yep, though I prefer loop when it's actually a loop. ;-) 12:43:14 that would be soo much better in codepad or something. I can't make sense of that many parentheses on one line yet :( 12:43:15 Ivoz: A named let creates a function, whose name you specify just after the word "let", and it takes as many arguments as there are variables declared in that let. 12:43:23 Ivoz: Okay, lemme paste it. 12:43:33 deke [~deke@fl-71-54-184-132.dhcp.embarqhsd.net] has joined #scheme 12:43:43 I know the let function 12:43:45 pretty broad question, how to make 'interfaces' in scheme? 12:43:51 you use it as a sort of local define 12:44:02 but I thought there was something special about a 'named' let 12:44:15 -!- deke [~deke@fl-71-54-184-132.dhcp.embarqhsd.net] has quit [Remote host closed the connection] 12:44:27 http://stackoverflow.com/questions/7313563/flatten-a-list-using-only-the-forms-in-the-little-schemer/7313811#7313811 is recursive as well, right? would it be easy to make it iterative? 12:44:28 http://tinyurl.com/3ze3umt 12:44:40 Ivoz: http://paste.lisp.org/display/125176 12:45:54 oh I haven't seen that syntax of let before 12:46:08 Right. It's awesome for writing loops. 12:46:17 -!- kennyd [~kennyd@93-138-109-254.adsl.net.t-com.hr] has quit [Disconnected by services] 12:46:52 incase you didn't know/hadn't guessed, I'm going through sicp atm 12:46:59 :-) 12:47:03 -!- zedstar [~john@fsf/member/zedstar] has quit [Remote host closed the connection] 12:47:19 still need to work out how to write an iterative version of towers-of-hanoi 12:48:12 Hahahaha. I can't help you with that (haven't written one myself), but since you were asking how to write an iterative append, here we go. ;-) 12:48:18 rudybot: init 12:48:19 cky: your sandbox is ready 12:48:27 lol 12:48:27 gl 12:48:30 zedstar [~john@fsf/member/zedstar] has joined #scheme 12:48:52 gffa [~gffa@unaffiliated/gffa] has joined #scheme 12:49:50 rudybot: (define (fold1 func init lst) (let loop ((val init) (lst lst)) (if (null? lst) val (loop (func (car lst) val) (cdr lst))))) 12:49:50 cky: Done. 12:50:19 rudybot: (define (append-reverse rev-head tail) (fold1 cons tail rev-head)) 12:50:19 cky: Done. 12:50:31 rudybot: (define (reverse lst) (append-reverse lst '())) 12:50:32 cky: Done. 12:51:06 rudybot: (define (append . lsts) (reverse (fold1 append-reverse '() lsts))) 12:51:07 cky: Done. 12:51:17 rudybot: (append '(1 2 3) '(4 5 6) '(7 8 9 10)) 12:51:18 cky: ; Value: (1 2 3 4 5 6 7 8 9 10) 12:51:21 Tada!! 12:51:33 :] 12:52:47 :-) 12:53:02 Ivoz: Obviously, that's a very fold-heavy solution, but notice it's very concise. 12:53:38 -!- kenjin2201 [~kenjin@218.235.8.175] has quit [Read error: Connection reset by peer] 12:53:38 -!- kenjin2202 [~kenjin@218.235.8.175] has quit [Read error: Connection reset by peer] 12:55:35 annihilator [~rff@ip72-207-241-136.br.br.cox.net] has joined #scheme 12:56:32 bzzbzz [~franco@modemcable240.34-83-70.mc.videotron.ca] has joined #scheme 12:56:58 do you use . x to many a list of x? 12:57:24 what's the . 12:57:25 for 12:57:46 Ivoz: It makes the function variadic, i.e., take a variable number of arguments. 12:59:05 Ivoz: All the arguments in this case are assembled into a list. 13:00:50 what does (let loop ((total 0) (items items)) do? 13:01:45 Ivoz: think of it as being like (define (loop total items) ...) (loop 0 items) 13:10:10 bgs100 [~ian@unaffiliated/bgs100] has joined #scheme 13:11:26 mithos28 [~eric@99-113-32-54.lightspeed.sntcca.sbcglobal.net] has joined #scheme 13:13:42 so is this basically what its used to be equivalent to? is there a smarter use? http://codepad.org/HZ5yvSnj 13:16:03 one thing that's nice in say, python, is that the iterative definition of fibonacci, can have default parameters so you don't need to define an inner function, e.g def fib(n, a = 0, b = 1) and call fib(n) 13:16:16 Ivoz: You can do that in some Scheme implementations too. 13:16:17 yes, most of the time it's a matter of which you prefer. 13:16:45 rudybot: (define (sum items (total 0)) (if (null? items) total (sum (cdr items) (+ total (car items))))) 13:16:45 cky: Done. 13:16:49 rudybot: (sum '(1 2 3 4 5) 13:16:49 cky: Well, the first problem is that I don't know to apply anything on a column. All examples assume you have lets say 4 columns, and you want to sum the first three into the fourth, while I want to sum all rows of a column into the last row of the column. 13:16:52 rudybot: (sum '(1 2 3 4 5)) 13:16:52 cky: ; Value: 15 13:17:06 The important distinction is that named let is also an expression, e.g. (zero? (let loop () ...)) is valid, but (zero? (begin (define (loop) ...) (loop))) is not 13:17:14 rudybot is talking :O 13:17:56 so let combines defining something and calling that something 13:18:09 Pretty much. 13:18:10 Ivoz: a lot schemes support named arguments, but that is an improper use of the IMO 13:18:18 And makes it much nicer to look at. 13:18:18 them* 13:18:41 ijp: I think Ivoz is talking about defaulted/optional arguments, not named ones. 13:19:01 is there such a distinction in python? 13:19:06 yeah pretty sure I am 13:19:18 yes 13:19:29 Ivoz: See my example at timestamp 13:16:44 UTC. :-) 13:19:35 Ivoz: That uses defaulted/optional arguments. 13:19:46 (total 0) 13:19:54 Yep, that. 13:20:31 ijp in python you can call a function using the parameter names to refer to parameters, not just inputting them in order 13:20:41 dsmith [~dsmith@cpe-184-56-129-232.neo.res.rr.com] has joined #scheme 13:21:09 Ivoz: I'm aware, but there is no such thing as a non-named optional parameter, I think 13:21:15 that is order-only 13:21:37 Ivoz: Yes, you can specify optional argument values positionally. 13:22:02 e.g., calling fib(3, 42) in the example above will be like calling fib(3, 42, 1). 13:22:31 def f(a = 1, b = 2) -- f(b = 3) you can do 13:23:06 Ivoz: Right, that's the named version. 13:23:16 So you can specify arguments by name or by position, in Python. 13:24:22 -!- bzzbzz [~franco@modemcable240.34-83-70.mc.videotron.ca] has quit [Quit: leaving] 13:30:26 http://www.bluishcoder.co.nz/jsscheme/ is a good online scheme interpreter, btw 13:32:13 Ivoz: You should check out leppie's one too! (It's not JS, though.) 13:32:18 http://eval.ironscheme.net/ 13:33:01 rudybot: javascript schemes for everyone 13:33:01 ijp: r6rs and many other schemes 13:33:06 indeed 13:35:13 what does begin do 13:35:36 codepad is awesome too, also 13:36:15 oi I said that the other day, rudybot! 13:36:22 rudybot: eval (begin (display "it evalutes its subexpressions\n") (display "in sequence\n" 'and-returns-the-final-value) 13:36:23 ijp: your sandbox is ready 13:36:23 ijp: error: eval:1:0: read: expected a `)' to close `(' 13:36:30 Ivoz: begin is used for side-effecting code, usually. 13:36:39 thats what I get for trying to be clever 13:36:53 Ivoz: If you want to evaluate a bunch of expressions, and throw away the return value of all of them except the last, then that's what begin does. 13:53:33 replore_ [~replore@125.2.132.73] has joined #scheme 13:54:39 -!- annihilator is now known as rff 13:59:07 thanks for the help everyone 13:59:33 -!- Ivoz [cb811aca@gateway/web/freenode/ip.203.129.26.202] has quit [Quit: Page closed] 13:59:49 -!- weirdo [sthalik@kronstadt.lain.pl] has quit [Ping timeout: 244 seconds] 14:00:42 weirdo [sthalik@kronstadt.lain.pl] has joined #scheme 14:15:31 -!- rff [~rff@ip72-207-241-136.br.br.cox.net] has quit [Read error: Connection reset by peer] 14:15:52 rff [~rff@ip72-207-241-136.br.br.cox.net] has joined #scheme 14:40:15 -!- karswell [~mjc@93-97-29-243.zone5.bethere.co.uk] has quit [Ping timeout: 248 seconds] 14:42:33 realitygrill [~realitygr@adsl-76-226-131-40.dsl.sfldmi.sbcglobal.net] has joined #scheme 14:45:15 karswell [~mjc@93-97-29-243.zone5.bethere.co.uk] has joined #scheme 14:47:02 zmv [~daniel@c95339f3.virtua.com.br] has joined #scheme 14:47:43 jonrafkind [~jon@ip68-102-28-191.ks.ok.cox.net] has joined #scheme 14:50:53 -!- gienah [~mwright@ppp121-44-52-242.lns20.syd6.internode.on.net] has quit [Quit: leaving] 14:54:21 -!- weirdo [sthalik@kronstadt.lain.pl] has quit [Read error: Connection reset by peer] 14:54:30 weirdo [sthalik@kronstadt.lain.pl] has joined #scheme 15:07:36 what's the reasoning behind which combinations of car/cdr are allowed for a condensed form such as caadr, cadr, etc? 15:09:37 -!- wingo [~wingo@90.164.198.39] has quit [Ping timeout: 260 seconds] 15:12:06 Historical. 15:13:29 -!- peterhil` [~peterhil@ZKMCDVIII.gprs.sl-laajakaista.fi] has quit [Excess Flood] 15:14:32 peterhil` [~peterhil@ZKMCDVIII.gprs.sl-laajakaista.fi] has joined #scheme 15:15:56 When there wasn't structures or even vectors yet, they were represented with lists, and accessing the various fields involved a lot of car/cdr combinations. Therefore the condensed forms were practical and useful. Nowadays, we use structures or objects to represent records, so we don't need car/cdr combination as much. 15:19:14 rff: you see that CAR is useful for accessing successive list elements 15:21:01 qu1j0t3, right but I was asking about why say caadr is allowed and caaaaadr is not, etc. 15:21:58 -!- X-Scale [email@sgi-ultra64.broker.freenet6.net] has quit [Ping timeout: 244 seconds] 15:22:41 X-Scale [email@193-126-158-30.net.novis.pt] has joined #scheme 15:22:58 -!- X-Scale is now known as Guest67061 15:24:45 rff: most likely because as pjb says these are rare. 15:25:05 rff: Because that's impractical. For example, (list-ref lst n) is O(n) on the value of n. 15:25:48 rff: (And (caddddddr lst) is equivalent to (list-ref lst 6), if I counted correctly.) 15:27:05 rff: Even though those names are defined up to 4 deep only, you can compose your own combinations. :-P 15:27:25 rudybot: (define cadddddddr (compose cadddr cddddr)) 15:27:25 cky: Done. 15:27:34 rudybot: (require srfi/1) 15:27:35 cky: Done. 15:27:42 rudybot: (cadddddddr (iota 10)) 15:27:42 cky: ; Value: 7 15:28:02 sure they can be defined but I was looking for the rationale behind why a subset of them are pre-defined 15:28:10 anyway, pjb answered my question 15:28:16 *nods* 15:28:41 -!- elliott|nuckOff is now known as elliottcable 15:29:17 dnolen [~davidnole@cpe-98-14-92-234.nyc.res.rr.com] has joined #scheme 15:37:35 MrFahrenheit [~RageOfTho@users-151-104.vinet.ba] has joined #scheme 15:41:32 -!- Guest67061 [email@193-126-158-30.net.novis.pt] has quit [Quit: Time left until the Epochalypse: 26yrs 14wks 4days 23hrs 32mins 11secs] 15:42:08 with [ad]{1,4}, you can refer 16 slots in a binary tree of conses. That's enough fields... 15:43:58 good example 15:44:40 Guest67061 [email@sgi-ultra64.broker.freenet6.net] has joined #scheme 15:46:00 -!- Guest67061 is now known as X-Scale 16:11:19 -!- jonrafkind [~jon@ip68-102-28-191.ks.ok.cox.net] has quit [Read error: Operation timed out] 16:13:35 -!- zmyrgel [~user@hoasb-ff0cdd00-22.dhcp.inet.fi] has quit [Ping timeout: 248 seconds] 16:21:40 mjonsson [~mjonsson@38.109.95.133] has joined #scheme 16:33:00 -!- woonie2 [~woonie@nusnet-195-16.dynip.nus.edu.sg] has quit [Quit: Nettalk6 - www.ntalk.de] 16:41:19 -!- amoe [~amoe@cpc3-brig16-2-0-cust858.3-3.cable.virginmedia.com] has quit [Ping timeout: 248 seconds] 16:44:26 alkoma [~alkoma@c-98-207-166-94.hsd1.ca.comcast.net] has joined #scheme 16:46:58 Hilbert_ [~Hilbert@93.95.87.130] has joined #scheme 16:47:49 -!- djcb [~user@a88-114-88-233.elisa-laajakaista.fi] has quit [Remote host closed the connection] 16:51:41 Hey, I am learning lisp from htdp, however I have trouble understanding one part, This specs of a given function seem to imply it evaultes both clause of a cond statement. The function is Hey, I am learning lisp from htdp, however I have trouble understanding one part, This function is (define (move-circle delta a-circle) 16:51:42 (cond [( [(draw-and-clear-circle a-circle) (translate-circle a-circle delta)] 16:51:42 [else a-circle])) The specs of the function state t draws and clears the circle on the canvas and then produces the new circle structure so that another draw-and-clear effect displays the circle at a new position:. I don't understand how both clauses of cond clause can be excuted. 16:51:42 16:51:42 17:01:39 -!- alkoma [~alkoma@c-98-207-166-94.hsd1.ca.comcast.net] has quit [Remote host closed the connection] 17:02:31 ccorn [~ccorn@g132123.upc-g.chello.nl] has joined #scheme 17:05:12 -!- zmv [~daniel@c95339f3.virtua.com.br] has quit [Ping timeout: 255 seconds] 17:06:53 Hilbert_: I don't see why you think both clauses get executed. 17:07:17 (I can guess but I'm gonna play dumb and force you to articulate your reasoning :-) 17:10:09 offby1: From my experince with if-else statements in other langauges only one clause gets excuted 17:11:11 I agree 17:11:13 same here 17:11:39 in fact, I don't believe both clauses would get executed; that would contradict how "cond" works 17:11:42 *offby1* whistles innocently 17:12:18 The function specs seem to indicate that both clauses get excuted 17:12:36 I agree it's a bit unclear, but I don't draw that conclusion myself 17:13:14 my guess is: draw-and-clear-circle sometimes returns #f, for reasons I don't understand. 17:13:23 when it does, the "cond" clause then does the "else" stuff. 17:13:37 But when it doesn't, the "cond" clause instead does "translate-circle" 17:13:56 so in a sense, you're right: 17:14:10 both bits of the cond are being executed, if you don't look too closely. 17:14:25 in fact, only the first half of the first clause gets executed 17:15:13 When does move-circle fail? 17:17:44 pandeiro [~pandeiro@177.32.219.249] has joined #scheme 17:19:11 offby1: I can't figure out how draw-and-circle would return false, any ideas? 17:20:35 jcowan [John@70.44.4.87.res-cmts.bus.ptd.net] has joined #scheme 17:20:37 I'd look for other 'draw-and-clear' functions for hints, if there are any 17:22:00 hoi 17:22:15 ijp: This is my impletion of draw and clear (define (draw-and-clear-circle circle) 17:22:15 ( and (draw-circle (circle2-center circle) (circle2-radius circle) (circle2-colour circle)) 17:22:15 (sleep-for-a-while 4) 17:22:16 (clear-circle2 circle))) 17:26:36 Hilbert_: then draw-and-clear-circle will return false if any of those procedures do 17:29:10 ijp: Thanks, it is rather unclear to me how any of those procedures could fail 17:29:27 *return failse I mean 17:29:51 zmv [~daniel@c95339f3.virtua.com.br] has joined #scheme 17:31:19 me needer 17:32:13 -!- ccorn [~ccorn@g132123.upc-g.chello.nl] has quit [Quit: ccorn] 17:32:46 Does it strike you as arbitrary that when draw-and-clear return false move-cicle return a-circle? 17:36:38 kenjin2201 [~kenjin@218.235.8.175] has joined #scheme 17:39:10 What is the purpose of 3 periods as in ... in scheme, at least in the implenation discussed in how to design programs? 17:40:02 Somewhat arbitrary, but I guess that way you always get a circle back. 17:42:33 Hilbert_: it's called an "ellipsis" and is used in macro definitions. (and maybe more, i don't know) 17:42:41 Hilbert_: It usually just means "and so on"/"more code elided" when used in an example. 17:42:59 In macros it means something different, but I don't know if HTDP covers them 17:44:36 oh yeah, they're often just used as "meta-syntax". the typography should make it clear. R5RS uses "" when it means that the actual code should use it 17:45:25 http://www.schemers.org/Documents/Standards/R5RS/HTML/r5rs-Z-H-7.html#%_idx_184 like here 17:45:25 http://tinyurl.com/6bo7mk 17:45:36 rudybot is fast 17:59:43 -!- Nisstyre [~yours@infocalypse-net.info] has quit [Ping timeout: 248 seconds] 17:59:50 iSo would I be right in saying that ellipsis inside function are ignored by Racker intrepeter 18:03:22 ccorn [~ccorn@g132123.upc-g.chello.nl] has joined #scheme 18:03:55 I doubt it 18:05:40 soveran [~soveran@78.249.50.4] has joined #scheme 18:10:45 jonrafkind [~jon@ip68-102-28-191.ks.ok.cox.net] has joined #scheme 18:11:49 Hilbert__ [~Hilbert@86-45-172-79-dynamic.b-ras2.chf.cork.eircom.net] has joined #scheme 18:13:34 -!- Hilbert_ [~Hilbert@93.95.87.130] has quit [Ping timeout: 258 seconds] 18:16:04 -!- jonrafkind [~jon@ip68-102-28-191.ks.ok.cox.net] has quit [Ping timeout: 258 seconds] 18:16:43 -!- pandeiro [~pandeiro@177.32.219.249] has quit [Quit: Leaving] 18:18:33 -!- zmv [~daniel@c95339f3.virtua.com.br] has quit [Ping timeout: 255 seconds] 18:20:27 zmv [~daniel@c95339f3.virtua.com.br] has joined #scheme 18:20:31 -!- imphasing|home [~Alex@97-81-115-30.dhcp.gwnt.ga.charter.com] has quit [Ping timeout: 248 seconds] 18:21:08 imphasing|home [~Alex@97-81-115-30.dhcp.gwnt.ga.charter.com] has joined #scheme 18:22:29 (cond (a b c)) executes b and c if a is non nill right? 18:23:16 jonrafkind [~jon@ip68-102-28-191.ks.ok.cox.net] has joined #scheme 18:23:23 but if b is the function itself and c is a collector 18:23:56 nothing makes sense 18:24:02 rudybot: (cond (#t (display "yes") (display "cond has an implicit begin")) 18:24:03 fds: There's a lot of implicit knowledge packed into that statement! 18:24:07 Psh! 18:24:16 rudybot: eval (cond (#t (display "yes") (display "cond has an implicit begin"))) 18:24:18 fds: your sandbox is ready 18:24:18 fds: ; stdout: "yescond has an implicit begin" 18:25:54 Wait, what doesn't make sense? 18:29:30 dis http://pastebin.com/LiRrcavW 18:30:07 jao [~user@pdpc/supporter/professional/jao] has joined #scheme 18:30:41 i dont understand how it returns what was in col 18:30:52 or like how it even stores it 18:31:57 preflex_ [~preflex@unaffiliated/mauke/bot/preflex] has joined #scheme 18:32:22 -!- preflex [~preflex@unaffiliated/mauke/bot/preflex] has quit [Ping timeout: 276 seconds] 18:32:41 -!- preflex_ is now known as preflex 18:32:43 -!- dnolen [~davidnole@cpe-98-14-92-234.nyc.res.rr.com] has quit [Quit: dnolen] 18:33:45 That doesn't have any `(cond (a b c))' style statements. It's just `(cond (a b) (c d) (else e))'. (If that helps at all.) 18:34:19 But, the `d' and `e' there recursively call multirember&co 18:34:46 And each time they change lat and col. 18:35:20 Erm, and the `a' argument too. 18:35:37 yeah i see, its not executing two things, it executes col function as an argument? 18:35:52 and when you pass it as an argument, that stores the value? 18:36:03 Oh, not `a' sorry, that argument stays the same.. 18:36:54 It executes col when it gets to the end of its recursion; that is, when `(null? lat)' is true. 18:37:28 When you pass an argument to a function, obviously that function knows what its arguments are. I suppose that could be considered `storing'. 18:38:14 Maybe drawing some pictures would help. :-) 18:39:08 i think i have brain damage 18:39:36 I doubt that, but if you have you should call an ambulance. 18:43:17 But seriously, I don't think this is a procedure that many people can instantly see and understand, particularly if you've never seen this kind of trick before. I wasn't joking about drawing pictures. 18:43:56 s/instantly see and understand/see and instantly understand/ 18:46:29 the interpreter i use compiles to c 18:46:35 so looking at the call stack helped 18:47:25 Well, I'm not a programmer, so I prefer a pencil and paper! ;-) 18:47:25 i dont really know how to draw this 18:47:43 Well, like a call stack, if that's how you like thinking about it. 18:47:57 But, just so you can see how it changes with each recursion. 18:49:22 -!- Hilbert__ [~Hilbert@86-45-172-79-dynamic.b-ras2.chf.cork.eircom.net] has quit [Quit: Hilbert__] 18:49:38 i dont understand why its(lambda (newlat seen) (col newlat (cons (car lat) seen) instead of (col newlat (cons (car lat) seen)) 18:50:49 Because it's creating a new function and passing that as an argument, it's not passing the result of `(col newlat (cons (car lat) seen))' 18:51:13 woonie [~woonie@nusnet-195-16.dynip.nus.edu.sg] has joined #scheme 18:52:33 but isnt.. 18:52:34 what 18:52:37 humb 18:52:40 humb HUMB HUMB 18:52:42 -!- rimmjob [~king@adsl-108-207-193-83.dsl.hstntx.sbcglobal.net] has left #scheme 18:52:53 Oops, was it something I said? 18:56:18 superjudge [~superjudg@c83-250-198-227.bredband.comhem.se] has joined #scheme 18:58:32 -!- soveran [~soveran@78.249.50.4] has quit [Remote host closed the connection] 18:59:54 Hilbert_ [~Hilbert@93.95.87.130] has joined #scheme 19:00:23 *fds* always gets nervous when he tries to help people. 19:05:47 fds: it's an irc thing 19:07:29 -!- Hilbert_ [~Hilbert@93.95.87.130] has quit [Quit: Hilbert_] 19:08:09 I'm fine with him leaving, so long as it wasn't because I confused or misled him with my lame advice. ;-) 19:08:35 blackened [~blackened@ip-89-102-29-120.net.upcbroadband.cz] has joined #scheme 19:11:41 levi [~user@c-174-52-219-147.hsd1.ut.comcast.net] has joined #scheme 19:12:50 soveran [~soveran@juv34-7-78-249-50-4.fbx.proxad.net] has joined #scheme 19:16:53 krikri [~user@stgt-5f71873a.pool.mediaWays.net] has joined #scheme 19:17:11 fds: well one can only do one's best 19:17:35 Indeed. And I believe the only way to improve is to practise. 19:17:49 One day my advice might be worth something. :-) 19:18:20 fds: true, true 19:18:25 *qu1j0t3* is a learner too 19:18:33 -!- superjudge [~superjudg@c83-250-198-227.bredband.comhem.se] has quit [Quit: superjudge] 19:19:40 We're all learners on this planet. :-) 19:20:16 :) 19:24:00 zmyrgel [~user@hoasb-ff0cdd00-22.dhcp.inet.fi] has joined #scheme 19:25:30 arcfide [1000@c-69-136-7-94.hsd1.in.comcast.net] has joined #scheme 19:28:17 -!- astertronistic [~astertron@ip70-181-198-139.sd.sd.cox.net] has quit [Ping timeout: 252 seconds] 19:29:20 Hilbert_ [~Hilbert@93.95.87.130] has joined #scheme 19:30:44 jewel [~jewel@196-209-248-67.dynamic.isadsl.co.za] has joined #scheme 19:32:05 -!- jcowan [John@70.44.4.87.res-cmts.bus.ptd.net] has quit [Quit: Leaving] 19:32:12 -!- arcfide [1000@c-69-136-7-94.hsd1.in.comcast.net] has quit [Read error: Connection reset by peer] 19:33:28 -!- jao [~user@pdpc/supporter/professional/jao] has quit [Read error: Connection reset by peer] 19:35:36 -!- jonrafkind [~jon@ip68-102-28-191.ks.ok.cox.net] has quit [Ping timeout: 258 seconds] 19:36:53 -!- Hilbert_ [~Hilbert@93.95.87.130] has quit [Quit: Hilbert_] 19:37:05 Nisstyre [~yours@infocalypse-net.info] has joined #scheme 19:37:45 wingo [~wingo@90.164.198.39] has joined #scheme 19:45:51 -!- rvn_ [~rvn@77.107.164.131] has quit [Ping timeout: 248 seconds] 20:01:40 jao [~user@pdpc/supporter/professional/jao] has joined #scheme 20:01:51 -!- zmyrgel [~user@hoasb-ff0cdd00-22.dhcp.inet.fi] has quit [Ping timeout: 248 seconds] 20:04:31 -!- jewel [~jewel@196-209-248-67.dynamic.isadsl.co.za] has quit [Ping timeout: 248 seconds] 20:12:24 -!- woonie [~woonie@nusnet-195-16.dynip.nus.edu.sg] has quit [Ping timeout: 255 seconds] 20:14:45 -!- krikri [~user@stgt-5f71873a.pool.mediaWays.net] has left #scheme 20:15:23 -!- wingo [~wingo@90.164.198.39] has quit [Ping timeout: 245 seconds] 20:28:50 *offby1* rolls eyes 20:29:24 -!- samth_away is now known as samth 20:33:15 -!- pothos [~pothos@111-240-165-121.dynamic.hinet.net] has quit [Read error: Connection reset by peer] 20:33:23 -!- y3llow [~y3llow@111-240-165-121.dynamic.hinet.net] has quit [Read error: Connection reset by peer] 20:34:06 Hilbert_ [~Hilbert@86-45-172-79-dynamic.b-ras2.chf.cork.eircom.net] has joined #scheme 20:35:05 help [~y3llow@111-240-174-11.dynamic.hinet.net] has joined #scheme 20:35:19 -!- help is now known as Guest3366 20:35:21 pothos_ [~pothos@111-240-174-11.dynamic.hinet.net] has joined #scheme 20:35:45 -!- pothos_ is now known as pothos 20:37:33 -!- Guest3366 [~y3llow@111-240-174-11.dynamic.hinet.net] has quit [Read error: Connection reset by peer] 20:38:00 help_ [~y3llow@111-240-174-11.dynamic.hinet.net] has joined #scheme 20:38:22 -!- soveran [~soveran@juv34-7-78-249-50-4.fbx.proxad.net] has quit [Remote host closed the connection] 20:40:06 -!- Hilbert_ [~Hilbert@86-45-172-79-dynamic.b-ras2.chf.cork.eircom.net] has quit [Read error: Connection reset by peer] 20:40:11 Hilbert_ [~Hilbert@86-45-172-79-dynamic.b-ras2.chf.cork.eircom.net] has joined #scheme 20:46:10 -!- jao [~user@pdpc/supporter/professional/jao] has quit [Ping timeout: 260 seconds] 20:52:40 jao [~user@pdpc/supporter/professional/jao] has joined #scheme 20:58:20 f8l [~f8l@81.219.207.135] has joined #scheme 21:01:40 eli: template haskell is hygenic 21:19:52 -!- zmv [~daniel@c95339f3.virtua.com.br] has quit [Ping timeout: 258 seconds] 21:26:36 -!- realitygrill [~realitygr@adsl-76-226-131-40.dsl.sfldmi.sbcglobal.net] has quit [Quit: realitygrill] 21:28:13 -!- taylanub [~taylanub@p4FD9577A.dip.t-dialin.net] has quit [Quit: WeeChat 0.3.5] 21:35:08 Euthydemus [~euthydemu@vaxjo7.69.cust.blixtvik.net] has joined #scheme 21:35:08 -!- Euthydemus [~euthydemu@vaxjo7.69.cust.blixtvik.net] has quit [Changing host] 21:35:08 Euthydemus [~euthydemu@unaffiliated/euthydemus] has joined #scheme 21:36:48 zmv [~daniel@c95339f3.virtua.com.br] has joined #scheme 21:44:00 ehiggs [~ehiggs@87-194-210-227.bethere.co.uk] has joined #scheme 21:45:51 -!- kenjin2201 [~kenjin@218.235.8.175] has quit [Remote host closed the connection] 21:49:41 wbooze` [~levgue@xdsl-78-35-149-137.netcologne.de] has joined #scheme 21:50:02 homie` [~levgue@xdsl-78-35-149-137.netcologne.de] has joined #scheme 21:50:52 -!- gravicappa [~gravicapp@91.77.212.74] has quit [Remote host closed the connection] 21:52:27 -!- wbooze [~levgue@xdsl-78-35-160-109.netcologne.de] has quit [Ping timeout: 258 seconds] 21:52:34 -!- homie [~levgue@xdsl-78-35-160-109.netcologne.de] has quit [Ping timeout: 244 seconds] 21:53:35 -!- Euthydemus [~euthydemu@unaffiliated/euthydemus] has quit [Quit: leaving] 21:54:00 Euthydemus [~euthydemu@unaffiliated/euthydemus] has joined #scheme 21:59:14 realitygrill [~realitygr@adsl-76-226-131-40.dsl.sfldmi.sbcglobal.net] has joined #scheme 22:00:50 -!- snorble [~snorble@s83-191-238-172.cust.tele2.se] has quit [Ping timeout: 244 seconds] 22:03:44 -!- jao [~user@pdpc/supporter/professional/jao] has quit [Ping timeout: 260 seconds] 22:05:02 -!- homie` [~levgue@xdsl-78-35-149-137.netcologne.de] has quit [Quit: ERC Version 5.3 (IRC client for Emacs)] 22:05:06 -!- wbooze` [~levgue@xdsl-78-35-149-137.netcologne.de] has quit [Quit: ERC Version 5.3 (IRC client for Emacs)] 22:08:09 homie [~levgue@xdsl-78-35-149-137.netcologne.de] has joined #scheme 22:08:14 wbooze [~levgue@xdsl-78-35-149-137.netcologne.de] has joined #scheme 22:16:08 astertronistic [~astertron@70.181.193.59] has joined #scheme 22:20:15 -!- ccorn [~ccorn@g132123.upc-g.chello.nl] has quit [Quit: ccorn] 22:26:09 jao [~user@pdpc/supporter/professional/jao] has joined #scheme 22:27:40 -!- zmv [~daniel@c95339f3.virtua.com.br] has quit [Ping timeout: 276 seconds] 22:32:30 -!- Hilbert_ [~Hilbert@86-45-172-79-dynamic.b-ras2.chf.cork.eircom.net] has quit [Quit: Hilbert_] 22:42:44 Hilbert_ [~Hilbert@93.95.87.130] has joined #scheme 22:46:44 ccorn [~ccorn@g132123.upc-g.chello.nl] has joined #scheme 22:51:18 -!- Kajtek [~nope@nat4-230.ghnet.pl] has quit [Quit: Leaving.] 22:51:41 -!- Hilbert_ [~Hilbert@93.95.87.130] has quit [Quit: Hilbert_] 22:53:14 confab_ [~confab@c-24-10-60-185.hsd1.ca.comcast.net] has joined #scheme 22:55:28 gienah [~mwright@121.44.52.242] has joined #scheme 22:55:34 -!- confab [~confab@c-24-10-60-185.hsd1.ca.comcast.net] has quit [Ping timeout: 256 seconds] 23:00:53 -!- ccorn [~ccorn@g132123.upc-g.chello.nl] has quit [Quit: ccorn] 23:08:09 Hilbert_ [~Hilbert@93.95.87.130] has joined #scheme 23:13:45 -!- masm [~masm@bl15-66-91.dsl.telepac.pt] has quit [Quit: Leaving.] 23:27:36 plainas [~p@31.44.230.79] has joined #scheme 23:28:14 what's a good implementation to follow MIT 6.01 lectures online? (and the book) 23:38:02 jonrafkind [~jon@198.202.202.21] has joined #scheme 23:38:20 -!- Hilbert_ [~Hilbert@93.95.87.130] has quit [Quit: Hilbert_] 23:39:50 plainas: I cut my teeth on GNU/MIT Scheme; a lot of cats seem to be in the PLT-camp. I say, "O'Reilly to PLT," though. 23:40:39 *gasp* 23:44:06 -!- f8l [~f8l@81.219.207.135] has quit [Quit: WeeChat 0.3.5] 23:47:39 snorble [~snorble@s83-191-238-172.cust.tele2.se] has joined #scheme 23:49:43 offby1: Heh. 23:53:54 Hilbert_ [~Hilbert@93.95.87.130] has joined #scheme