00:17:40 groovy2shoes [~guv@unaffiliated/groovebot] has joined #scheme 00:18:39 -!- dzhus [~dzhus@95-31-27-234.broadband.corbina.ru] has quit [Ping timeout: 252 seconds] 00:22:55 bvvd [~dmr@c-73-49-6-108.hsd1.fl.comcast.net] has joined #scheme 00:36:55 -!- jxv [~jxv@cpe-23-243-183-182.socal.res.rr.com] has quit [Ping timeout: 260 seconds] 00:44:45 -!- nisstyre [~yours@oftn/member/Nisstyre] has quit [Quit: Leaving] 00:46:08 nisstyre [~yours@oftn/member/Nisstyre] has joined #scheme 00:46:37 -!- amgarchIn9 [~amgarchin@p4FD60C92.dip0.t-ipconnect.de] has quit [Quit: Konversation terminated!] 00:46:46 alexei [~amgarchin@p4FD60C92.dip0.t-ipconnect.de] has joined #scheme 00:48:05 -!- adbge [~rps@c-24-14-247-168.hsd1.il.comcast.net] has quit [Ping timeout: 248 seconds] 00:57:14 -!- taylanub [~taylanub@85.100.71.194] has quit [Ping timeout: 240 seconds] 00:57:52 -!- boycottg00gle [~user@stgt-5f72a872.pool.mediaWays.net] has quit [Read error: Connection reset by peer] 01:03:56 -!- tupi [~user@201-29-170-150.user.veloxzone.com.br] has quit [Ping timeout: 246 seconds] 01:07:14 frx [~frx@93-138-29-221.adsl.net.t-com.hr] has joined #scheme 01:11:01 taylanub [~taylanub@78.179.242.127] has joined #scheme 01:15:17 -!- nisstyre [~yours@oftn/member/Nisstyre] has quit [Quit: Leaving] 01:29:59 ehaliewicz [~user@50-0-51-28.dsl.static.sonic.net] has joined #scheme 01:31:24 ericmathison [~ericmathi@172-15-249-133.lightspeed.irvnca.sbcglobal.net] has joined #scheme 01:59:54 -!- Triku [~Triku@64.Red-83-33-81.dynamicIP.rima-tde.net] has quit [Quit: Triku] 02:20:37 -!- rgrau [~user@95.Red-83-33-70.dynamicIP.rima-tde.net] has quit [Remote host closed the connection] 02:22:38 -!- kbw [~KeyboardW@unaffiliated/keyboardwarrior] has quit [Ping timeout: 245 seconds] 02:35:24 nisstyre [~yours@oftn/member/Nisstyre] has joined #scheme 02:45:06 -!- nisstyre [~yours@oftn/member/Nisstyre] has quit [Quit: Leaving] 03:07:42 stamourv [~user@racket/stamourv] has joined #scheme 03:07:45 -!- Nizumzen [~Nizumzen@cpc1-reig5-2-0-cust251.6-3.cable.virginm.net] has quit [Quit: KVIrc 4.2.0 Equilibrium http://www.kvirc.net/] 03:07:58 -!- stamourv is now known as stamourv` 03:08:03 -!- zzach [~zzach@dslb-088-077-120-007.pools.arcor-ip.net] has quit [Ping timeout: 252 seconds] 03:08:23 zzach [~zzach@dslb-088-078-222-149.pools.arcor-ip.net] has joined #scheme 03:10:42 Nizumzen [~Nizumzen@cpc1-reig5-2-0-cust251.6-3.cable.virginm.net] has joined #scheme 03:12:57 -!- davexunit [~user@fsf/member/davexunit] has quit [Quit: Later] 03:17:57 -!- Ogion [~Ogion@96.Red-83-38-69.dynamicIP.rima-tde.net] has quit [Ping timeout: 248 seconds] 03:41:29 effy_ [~x@123.116.60.65] has joined #scheme 03:44:10 -!- effy [~x@111.197.233.78] has quit [Ping timeout: 245 seconds] 03:47:17 -!- estevocastro [~estevocas@4.Red-81-33-60.dynamicIP.rima-tde.net] has quit [Ping timeout: 252 seconds] 03:54:18 nisstyre [~yours@oftn/member/Nisstyre] has joined #scheme 03:59:02 defanor_ [~defanor@ppp91-77-171-7.pppoe.mtu-net.ru] has joined #scheme 03:59:43 -!- ericmathison [~ericmathi@172-15-249-133.lightspeed.irvnca.sbcglobal.net] has quit [Quit: leaving] 04:02:48 -!- pecg [~pecg@unaffiliated/pecg] has quit [Quit: WeeChat 0.4.2] 04:03:12 -!- yrdz [~p_adams@unaffiliated/p-adams/x-7117614] has quit [Quit: WeeChat 0.4.2] 04:04:59 -!- Guest67309 [~klutometi@klutometis.wikitex.org] has quit [Changing host] 04:04:59 Guest67309 [~klutometi@pdpc/supporter/professional/klutometis] has joined #scheme 04:05:24 -!- Guest67309 is now known as klutometis 04:06:48 -!- alexei [~amgarchin@p4FD60C92.dip0.t-ipconnect.de] has quit [Ping timeout: 245 seconds] 04:27:25 -!- Nizumzen [~Nizumzen@cpc1-reig5-2-0-cust251.6-3.cable.virginm.net] has quit [Quit: KVIrc 4.2.0 Equilibrium http://www.kvirc.net/] 04:28:54 marsam [~marsam@146.185.180.111] has joined #scheme 04:35:17 -!- marsam [~marsam@146.185.180.111] has quit [Quit: ZNC - http://znc.in] 04:35:19 jxv [~jxv@76-219-78-35.lightspeed.irvnca.sbcglobal.net] has joined #scheme 04:36:06 marsam [~marsam@146.185.180.111] has joined #scheme 04:36:54 Nizumzen [~Nizumzen@cpc1-reig5-2-0-cust251.6-3.cable.virginm.net] has joined #scheme 04:37:19 -!- marsam [~marsam@146.185.180.111] has quit [Client Quit] 04:38:05 marsam [~marsam@146.185.180.111] has joined #scheme 04:38:11 -!- taylanub [~taylanub@78.179.242.127] has quit [Disconnected by services] 04:38:44 taylanub [~taylanub@78.179.242.127] has joined #scheme 04:41:55 -!- tenq|away is now known as tenq 04:47:05 -!- preflex [~preflex@unaffiliated/mauke/bot/preflex] has quit [Ping timeout: 246 seconds] 04:47:10 preflex_ [~preflex@unaffiliated/mauke/bot/preflex] has joined #scheme 04:47:57 -!- preflex_ is now known as preflex 04:49:37 -!- jao [~jao@pdpc/supporter/professional/jao] has quit [Ping timeout: 252 seconds] 04:54:10 kbw [~KeyboardW@unaffiliated/keyboardwarrior] has joined #scheme 04:55:12 -!- kbw [~KeyboardW@unaffiliated/keyboardwarrior] has quit [Client Quit] 04:55:30 lo 04:56:57 -!- jxv [~jxv@76-219-78-35.lightspeed.irvnca.sbcglobal.net] has quit [Ping timeout: 252 seconds] 04:58:12 weie [~weie@softbank221078042071.bbtec.net] has joined #scheme 05:03:48 jeapostrophe [~jay@racket/jeapostrophe] has joined #scheme 05:04:53 -!- groovy2shoes [~guv@unaffiliated/groovebot] has quit [Quit: groovy2shoes] 05:05:12 jxv [~jxv@76-219-78-35.lightspeed.irvnca.sbcglobal.net] has joined #scheme 05:07:02 -!- marsam [~marsam@146.185.180.111] has quit [Quit: I really need to sleep.] 05:23:49 -!- Nizumzen [~Nizumzen@cpc1-reig5-2-0-cust251.6-3.cable.virginm.net] has quit [Quit: KVIrc 4.2.0 Equilibrium http://www.kvirc.net/] 05:35:07 -!- jeapostrophe [~jay@racket/jeapostrophe] has quit [Ping timeout: 260 seconds] 05:43:16 marsam [~marsam@146.185.180.111] has joined #scheme 05:46:59 -!- tenq is now known as tenq|away 05:59:24 groovy2shoes [~guv@unaffiliated/groovebot] has joined #scheme 06:03:46 Ogion [~Ogion@22.Red-81-32-255.dynamicIP.rima-tde.net] has joined #scheme 06:13:53 -!- jxv [~jxv@76-219-78-35.lightspeed.irvnca.sbcglobal.net] has quit [Ping timeout: 272 seconds] 06:20:19 pecg [~pecg@unaffiliated/pecg] has joined #scheme 06:22:27 -!- groovy2shoes [~guv@unaffiliated/groovebot] has quit [Quit: groovy2shoes] 06:38:42 jxv [~jxv@76-219-78-35.lightspeed.irvnca.sbcglobal.net] has joined #scheme 06:47:55 -!- REPLeffect [~REPLeffec@69.54.115.254] has quit [Ping timeout: 245 seconds] 06:50:01 REPLeffect [~REPLeffec@69.54.115.254] has joined #scheme 06:50:21 -!- jxv [~jxv@76-219-78-35.lightspeed.irvnca.sbcglobal.net] has quit [Ping timeout: 272 seconds] 06:55:35 tiksa [~tiksa@gateway/tor-sasl/tiksa] has joined #scheme 06:57:05 -!- REPLeffect [~REPLeffec@69.54.115.254] has quit [Ping timeout: 245 seconds] 07:03:22 -!- nisstyre [~yours@oftn/member/Nisstyre] has quit [Quit: Leaving] 07:05:14 -!- arubin [~textual@99-114-192-172.lightspeed.cicril.sbcglobal.net] has quit [Quit: My MacBook has gone to sleep. ZZZzzz] 07:10:44 -!- araujo [~araujo@gentoo/developer/araujo] has quit [Quit: Leaving] 07:14:04 REPLeffect [~REPLeffec@69.54.115.254] has joined #scheme 07:18:32 -!- Ogion is now known as Ogion_ 07:18:45 -!- Ogion_ is now known as Ogion 07:18:45 -!- REPLeffect [~REPLeffec@69.54.115.254] has quit [Ping timeout: 245 seconds] 07:18:51 -!- Ogion is now known as Ogion_ 07:19:03 -!- Ogion_ is now known as Ogion 07:23:38 REPLeffect [~REPLeffec@69.54.115.254] has joined #scheme 07:29:19 akenisuto [~akenisuto@HSI-KBW-37-209-74-126.hsi15.kabel-badenwuerttemberg.de] has joined #scheme 07:31:46 jewel [~jewel@197.110.95.161] has joined #scheme 07:42:30 -!- REPLeffect [~REPLeffec@69.54.115.254] has quit [Ping timeout: 245 seconds] 07:42:47 REPLeffect [~REPLeffec@69.54.115.254] has joined #scheme 07:43:14 -!- dsmith [~dsmith@cpe-184-56-129-232.neo.res.rr.com] has quit [Ping timeout: 252 seconds] 07:47:05 -!- REPLeffect [~REPLeffec@69.54.115.254] has quit [Ping timeout: 245 seconds] 07:53:35 RageOfThou [~RageOfTho@unaffiliated/rageofthou] has joined #scheme 07:56:31 -!- MrFahrenheit [~RageOfTho@unaffiliated/rageofthou] has quit [Ping timeout: 260 seconds] 07:59:56 REPLeffect [~REPLeffec@69.54.115.254] has joined #scheme 08:00:10 -!- RageOfThou [~RageOfTho@unaffiliated/rageofthou] has quit [Read error: Connection reset by peer] 08:00:53 RageOfThou [~RageOfTho@unaffiliated/rageofthou] has joined #scheme 08:36:40 -!- REPLeffect [~REPLeffec@69.54.115.254] has quit [Ping timeout: 245 seconds] 08:38:04 REPLeffect [~REPLeffec@69.54.115.254] has joined #scheme 08:42:30 -!- REPLeffect [~REPLeffec@69.54.115.254] has quit [Ping timeout: 245 seconds] 08:42:48 REPLeffect [~REPLeffec@69.54.115.254] has joined #scheme 08:43:40 FractalFive [~ja@user-5af43e99.broadband.tesco.net] has joined #scheme 09:05:53 -!- copumpkin [~copumpkin@unaffiliated/copumpkin] has quit [Ping timeout: 246 seconds] 09:07:27 -!- frx [~frx@93-138-29-221.adsl.net.t-com.hr] has quit [Ping timeout: 260 seconds] 09:10:07 copumpkin [~copumpkin@unaffiliated/copumpkin] has joined #scheme 09:17:05 -!- REPLeffect [~REPLeffec@69.54.115.254] has quit [Ping timeout: 245 seconds] 09:18:28 REPLeffect [~REPLeffec@69.54.115.254] has joined #scheme 09:24:31 -!- pecg [~pecg@unaffiliated/pecg] has quit [Quit: WeeChat 0.4.2] 09:25:50 -!- REPLeffect [~REPLeffec@69.54.115.254] has quit [Ping timeout: 245 seconds] 09:26:38 -!- oleo [~oleo@xdsl-87-79-249-121.netcologne.de] has quit [Ping timeout: 252 seconds] 09:27:47 oleo [~oleo@xdsl-78-35-150-149.netcologne.de] has joined #scheme 09:46:14 frx [~michael@93-138-180-118.adsl.net.t-com.hr] has joined #scheme 10:11:16 araujo [~araujo@gentoo/developer/araujo] has joined #scheme 10:25:45 alexei [~amgarchin@p4FD6332B.dip0.t-ipconnect.de] has joined #scheme 10:28:30 -!- akenisuto [~akenisuto@HSI-KBW-37-209-74-126.hsi15.kabel-badenwuerttemberg.de] has quit [Ping timeout: 246 seconds] 10:36:53 aap_ [~aap@85.183.44.54] has joined #scheme 11:08:02 palach [~palach@92.55.10.190] has joined #scheme 11:11:39 -!- Kneferilis [~Kneferili@nb1-210.static.cytanet.com.cy] has quit [Killed (herbert.freenode.net (Nickname regained by services))] 11:42:24 Okasu [~1@188.162.65.28] has joined #scheme 11:42:31 -!- Okasu [~1@188.162.65.28] has quit [Changing host] 11:42:31 Okasu [~1@unaffiliated/okasu] has joined #scheme 11:42:51 -!- copumpkin [~copumpkin@unaffiliated/copumpkin] has quit [Ping timeout: 260 seconds] 11:47:37 copumpkin [~copumpkin@unaffiliated/copumpkin] has joined #scheme 11:53:02 MrFahrenheit [~RageOfTho@unaffiliated/rageofthou] has joined #scheme 11:54:57 -!- ehaliewicz [~user@50-0-51-28.dsl.static.sonic.net] has quit [Ping timeout: 246 seconds] 11:55:39 -!- RageOfThou [~RageOfTho@unaffiliated/rageofthou] has quit [Ping timeout: 246 seconds] 12:04:07 -!- jewel [~jewel@197.110.95.161] has quit [Ping timeout: 272 seconds] 12:07:01 es [~estevocas@4.Red-81-33-60.dynamicIP.rima-tde.net] has joined #scheme 12:07:01 -!- es is now known as estevocastro 12:10:38 -!- MrFahrenheit [~RageOfTho@unaffiliated/rageofthou] has quit [Read error: Connection reset by peer] 12:11:22 MrFahrenheit [~RageOfTho@unaffiliated/rageofthou] has joined #scheme 12:24:20 -!- alexei [~amgarchin@p4FD6332B.dip0.t-ipconnect.de] has quit [Ping timeout: 246 seconds] 12:58:52 jewel [~jewel@197.110.95.161] has joined #scheme 12:58:52 hiroakip [~hiroaki@p54A6A4D1.dip0.t-ipconnect.de] has joined #scheme 13:00:49 b4283 [~b4283@118.150.143.229] has joined #scheme 13:04:33 Triku [~Triku@64.Red-83-33-81.dynamicIP.rima-tde.net] has joined #scheme 13:16:00 ChernoPutin [~nevzets@unaffiliated/nevzets] has joined #scheme 13:16:06 Any syntax-case gurus here? 13:16:52 Basically, my syntax case complains that using a user defined function with datum->syntax violates scoping which is understandable since they can do funny stuff like cause side effects and read from input but you can use primitive functions so where is the line? 13:23:02 -!- hiroakip [~hiroaki@p54A6A4D1.dip0.t-ipconnect.de] has quit [Ping timeout: 240 seconds] 13:25:45 hiroakip [~hiroaki@p54A6A4D1.dip0.t-ipconnect.de] has joined #scheme 13:27:07 -!- Okasu [~1@unaffiliated/okasu] has quit [Quit: leaving] 13:33:38 rgc [~user@95.Red-83-33-70.dynamicIP.rima-tde.net] has joined #scheme 13:45:43 -!- palach [~palach@92.55.10.190] has quit [Read error: Connection reset by peer] 13:53:53 -!- aap_ [~aap@85.183.44.54] has quit [Remote host closed the connection] 14:11:32 -!- estevocastro [~estevocas@4.Red-81-33-60.dynamicIP.rima-tde.net] has quit [Ping timeout: 252 seconds] 14:13:07 -!- aeth [~Michael@wesnoth/umc-dev/developer/aethaeryn] has quit [Ping timeout: 260 seconds] 14:14:24 es [~estevocas@189.Red-79-158-172.staticIP.rima-tde.net] has joined #scheme 14:14:24 -!- es is now known as estevocastro 14:19:09 Not being able to use a user defined function in `syntax-case' sounds grave, sure it's not a limitation of your implementation ? 14:19:10 *taylanub* tests 14:20:16 davexunit [~user@fsf/member/davexunit] has joined #scheme 14:24:11 ChernoPutin: Can you post a code snippet ? 14:28:46 -!- hiroakip [~hiroaki@p54A6A4D1.dip0.t-ipconnect.de] has quit [Ping timeout: 246 seconds] 14:29:38 aeth [~Michael@wesnoth/umc-dev/developer/aethaeryn] has joined #scheme 14:39:45 jeapostrophe [~jay@216-21-162-70.slc.googlefiber.net] has joined #scheme 14:39:45 -!- jeapostrophe [~jay@216-21-162-70.slc.googlefiber.net] has quit [Changing host] 14:39:45 jeapostrophe [~jay@racket/jeapostrophe] has joined #scheme 14:40:05 taylanub, sure, let me see 14:40:55 taylanub: http://pastebin.com/XjYsabXF 14:41:19 My implementation is racket currently in #!r6rs and it complains ehh, let me get the error message 14:41:38 fn.scm:24:25: make-arglist: unbound identifier in module (in the transformer environment, which does not include the run-time definition) 14:41:38 in: make-arglist 14:42:29 hiroakip [~hiroaki@p54A6A4D1.dip0.t-ipconnect.de] has joined #scheme 14:44:00 -!- hiroakip [~hiroaki@p54A6A4D1.dip0.t-ipconnect.de] has quit [Remote host closed the connection] 14:46:57 hiroakip [~hiroaki@p54A6A4D1.dip0.t-ipconnect.de] has joined #scheme 14:50:47 I think you're over-using square brackets 14:51:42 taylanub, well, I use round ones for function calls and square for anything else, that's sure not what's causing it though 14:51:57 Just saying, that's very very atypical. 14:52:18 True, but then again, so is scheme's syntax in and of itself. 14:52:32 Nah, s-expression syntax existed for some 50 years. 14:53:05 And after 50 years they are still atypical. Not to say that I don't like them, I do wish scheme enforced a difference between function calls and special forms though, because they're not the same. 14:53:15 alexei [~amgarchin@p4FD6332B.dip0.t-ipconnect.de] has joined #scheme 14:54:12 taylanub, but ehh, any idea what might cause it? 14:54:16 It's atypical to "outsiders", but it has its own conventions, you should ideally follow them ... 14:54:18 looking .. 14:54:32 It seems really weird to me because I could technically inline it and make it work methinks but that would produce some horrible code. 14:56:10 -!- hiroakip [~hiroaki@p54A6A4D1.dip0.t-ipconnect.de] has quit [Remote host closed the connection] 14:56:36 ChernoPutin: Could it be that the order of definition or so matters ? 14:57:32 In "fn.scm:24:25: make-arglist: unbound identifier in module", does that mean it doesn't find `make-arglist' at all ? Because I just tested in Guile and it at least entered `make-arglist' (bailing out at `find-all-map' instead because I suppose it's a Racket extension) 14:57:59 find all map is implemented further in the document, but the order didn't matter, tried that 14:58:00 Hmm 14:58:06 That's quite interesting 14:58:16 ANd if guile is ran in r6 mode? 14:58:19 Could you paste that too, so I can see if I get it fully running ? 14:58:21 hiroakip [~hiroaki@p54A6A4D1.dip0.t-ipconnect.de] has joined #scheme 14:58:23 Sure 14:58:33 Guile implements R5RS and parts of R6RS ... 14:59:38 http://pastebin.com/6PrFb8Lg 14:59:59 It depends on r6 and the srfi 1 and 13 which guile probably has 15:00:30 Ehh, the testing comment is done wrongly in this iteration I see 15:00:44 match-rest-arg also needs to be uncomented 15:01:03 Also SRFI-11 apparently. 15:01:40 And `list:partition' is missing. 15:02:03 But wait, I think Guile has something that's equivalent .. 15:02:24 parition is in srfi 1 15:02:32 How does `list:partition' differ from SRFI-1 `partition' ? 15:02:44 Not at all, list: is a prefix defined by the import scheme 15:02:50 Oh, OK 15:03:06 I imported thme all with prefix, not sure if guile supports that? 15:03:38 Yes but it was just partition anyway, I just removed the prefix. 15:03:59 I think you have a typo `ord-args' -> `ord-arg' in `make-arglist' ? 15:05:26 Or `make-formals' in the latter paste. 15:05:50 Oh, it's fixed there I think ... 15:09:26 It just works on guile without complaining about the environment? 15:10:22 Now only `match-rest-arg' was missing, which I defined as (lambda (x) (eq? '__ x)), and after that I can use `fn' 15:10:30 scheme@(guile-user)> ((fn (+ 1 2))) 15:10:30 $10 = 3 15:10:47 ChernoPutin: I recommend you ask in #racket. 15:11:33 Yeah, match-rest-arg is accidentally commented in the paste 15:12:13 And if you do ((fn (apply + __)) 1 2 3) it also works fine? 15:12:13 -!- Sgeo [~quassel@ool-44c2df0c.dyn.optonline.net] has quit [Read error: Connection reset by peer] 15:12:33 Indeed 15:13:19 Can also use _1 _2 etc. as expected .. neat macro! 15:13:26 Sgeo [~quassel@ool-44c2df0c.dyn.optonline.net] has joined #scheme 15:14:57 Well, if you ever find it useful, be my guest. :) 15:14:59 frxx [~michael@93-138-180-118.adsl.net.t-com.hr] has joined #scheme 15:15:00 Let's see what racket says 15:15:00 -!- frx [~michael@93-138-180-118.adsl.net.t-com.hr] has quit [Read error: Connection reset by peer] 15:15:48 Good luck, I gotta go 15:17:35 RageOfThou [~RageOfTho@unaffiliated/rageofthou] has joined #scheme 15:18:32 -!- taylanub [~taylanub@78.179.242.127] has quit [Disconnected by services] 15:19:12 taylanub [~taylanub@78.179.242.127] has joined #scheme 15:20:10 -!- RageOfThou [~RageOfTho@unaffiliated/rageofthou] has quit [Read error: Connection reset by peer] 15:20:45 -!- MrFahrenheit [~RageOfTho@unaffiliated/rageofthou] has quit [Ping timeout: 246 seconds] 15:20:58 MrFahrenheit [~RageOfTho@77.221.25.95] has joined #scheme 15:20:58 -!- MrFahrenheit [~RageOfTho@77.221.25.95] has quit [Changing host] 15:20:58 MrFahrenheit [~RageOfTho@unaffiliated/rageofthou] has joined #scheme 15:21:06 -!- kalven [~calvin@2a02:470:84:102::24] has quit [Ping timeout: 246 seconds] 15:21:50 -!- hiroakip [~hiroaki@p54A6A4D1.dip0.t-ipconnect.de] has quit [Remote host closed the connection] 15:21:53 kalven [~calvin@2a02:470:84:102::24] has joined #scheme 15:22:46 hiroakip [~hiroaki@p54A6A4D1.dip0.t-ipconnect.de] has joined #scheme 15:23:27 RageOfThou [~RageOfTho@77.221.25.95] has joined #scheme 15:23:27 -!- RageOfThou [~RageOfTho@77.221.25.95] has quit [Changing host] 15:23:27 RageOfThou [~RageOfTho@unaffiliated/rageofthou] has joined #scheme 15:23:57 jxv [~jxv@76-219-78-35.lightspeed.irvnca.sbcglobal.net] has joined #scheme 15:26:36 defanor__ [~defanor@ppp91-77-171-7.pppoe.mtu-net.ru] has joined #scheme 15:26:47 -!- MrFahrenheit [~RageOfTho@unaffiliated/rageofthou] has quit [Ping timeout: 272 seconds] 15:28:02 crypto_ [~z0d@q.notresp.com] has joined #scheme 15:28:24 kbtr_ [~kbtr@li198-73.members.linode.com] has joined #scheme 15:28:39 certaint1 [~david@www1.d-coded.de] has joined #scheme 15:28:50 -!- hiroakip [~hiroaki@p54A6A4D1.dip0.t-ipconnect.de] has quit [Read error: No route to host] 15:29:01 hiroakip [~hiroaki@p54A6A4D1.dip0.t-ipconnect.de] has joined #scheme 15:32:53 djbclark` [~djbclark@lab-3.mit.edu] has joined #scheme 15:33:23 -!- kalven [~calvin@2a02:470:84:102::24] has quit [*.net *.split] 15:33:25 -!- defanor-- [~defanor@ppp91-77-171-7.pppoe.mtu-net.ru] has quit [*.net *.split] 15:33:26 -!- certainty [~david@www1.d-coded.de] has quit [*.net *.split] 15:33:26 -!- kbtr [~kbtr@li198-73.members.linode.com] has quit [*.net *.split] 15:33:28 -!- djbclark [~djbclark@fsf/member/djbclark] has quit [*.net *.split] 15:33:30 -!- z0d [~z0d@unaffiliated/z0d] has quit [*.net *.split] 15:37:13 -!- hiroakip [~hiroaki@p54A6A4D1.dip0.t-ipconnect.de] has quit [Ping timeout: 245 seconds] 15:38:02 hiroakip [~hiroaki@p54A6A4D1.dip0.t-ipconnect.de] has joined #scheme 15:38:13 -!- juanfra [~juanfra@unaffiliated/juanfra] has quit [Ping timeout: 248 seconds] 15:38:55 -!- crypto_ is now known as z0d 15:39:02 -!- z0d [~z0d@q.notresp.com] has quit [Changing host] 15:39:02 z0d [~z0d@unaffiliated/z0d] has joined #scheme 15:40:11 juanfra [~juanfra@unaffiliated/juanfra] has joined #scheme 15:40:26 kalven [~calvin@2a02:470:84:102::24] has joined #scheme 15:42:43 -!- estevocastro [~estevocas@189.Red-79-158-172.staticIP.rima-tde.net] has quit [Ping timeout: 260 seconds] 15:50:00 -!- hiroakip [~hiroaki@p54A6A4D1.dip0.t-ipconnect.de] has quit [Ping timeout: 245 seconds] 16:00:00 -!- eli [~eli@racket/eli] has quit [Read error: Connection reset by peer] 16:00:33 Shadox [Shadox@24-180-72-65.dhcp.bycy.mi.charter.com] has joined #scheme 16:09:23 cmatei [~cmatei@78.96.108.146] has joined #scheme 16:12:38 -!- djbclark` [~djbclark@lab-3.mit.edu] has quit [Ping timeout: 240 seconds] 16:25:25 -!- alexei [~amgarchin@p4FD6332B.dip0.t-ipconnect.de] has quit [Ping timeout: 272 seconds] 16:27:53 1JTABM3W0 [~djbclark@lab-3.mit.edu] has joined #scheme 16:29:57 -!- vraid [50d8e34d@gateway/web/freenode/ip.80.216.227.77] has quit [Ping timeout: 272 seconds] 16:34:28 arubin [~textual@99-114-192-172.lightspeed.cicril.sbcglobal.net] has joined #scheme 16:46:37 -!- Triku [~Triku@64.Red-83-33-81.dynamicIP.rima-tde.net] has quit [Quit: Triku] 16:51:32 -!- tenq|away is now known as tenq 16:54:21 add^_ [~user@m176-70-201-196.cust.tele2.se] has joined #scheme 16:58:45 -!- jewel [~jewel@197.110.95.161] has quit [Ping timeout: 245 seconds] 17:11:28 alexei [~amgarchin@p4FD6332B.dip0.t-ipconnect.de] has joined #scheme 17:12:42 -!- yacks [~py@103.6.159.103] has quit [Read error: Connection reset by peer] 17:13:25 -!- ineiros_ [~itniemin@bayesianconspiracy.org] has quit [*.net *.split] 17:13:26 -!- Razz_ [~tim@kompiler.org] has quit [*.net *.split] 17:13:26 -!- acieroid [~acieroid@wtf.awesom.eu] has quit [*.net *.split] 17:13:26 -!- haroldwu [~haroldwu@unaffiliated/haroldwu] has quit [*.net *.split] 17:13:27 -!- rudybot [~luser@ec2-54-215-10-197.us-west-1.compute.amazonaws.com] has quit [*.net *.split] 17:13:27 -!- C-Keen [cckeen@pestilenz.org] has quit [*.net *.split] 17:13:41 rudybot [~luser@ec2-54-215-10-197.us-west-1.compute.amazonaws.com] has joined #scheme 17:13:49 acieroid` [~acieroid@178.33.42.21] has joined #scheme 17:14:36 ineiros [~itniemin@bayesianconspiracy.org] has joined #scheme 17:14:36 Razz [~tim@kompiler.org] has joined #scheme 17:16:07 -!- b4283 [~b4283@118.150.143.229] has quit [Remote host closed the connection] 17:16:55 haroldwu [~haroldwu@219.85.185.194] has joined #scheme 17:17:54 C-Keen [cckeen@pestilenz.org] has joined #scheme 17:19:27 -!- 1JTABM3W0 [~djbclark@lab-3.mit.edu] has quit [Ping timeout: 240 seconds] 17:20:16 -!- acieroid` [~acieroid@178.33.42.21] has quit [Ping timeout: 240 seconds] 17:21:21 acieroid [~acieroid@wtf.awesom.eu] has joined #scheme 17:23:03 -!- alexei [~amgarchin@p4FD6332B.dip0.t-ipconnect.de] has quit [Ping timeout: 240 seconds] 17:24:55 djbclark [~djbclark@lab-3.mit.edu] has joined #scheme 17:24:55 -!- djbclark [~djbclark@lab-3.mit.edu] has quit [Changing host] 17:24:55 djbclark [~djbclark@fsf/member/djbclark] has joined #scheme 17:32:58 taylanub, in case this will ever be useful to you, it turns out that r6 defines that you can do something like [import [for (srfi :1) expand]] which defines that the bindings of that library are imported before expansion time 17:33:16 Change expand to run to get the default behaviour of racket, no such specification leaves it free to choose I guess 17:36:39 Ah, R6RS has "explicit phasing" I reckon. 17:38:48 That's how everything that does macros and modules remotely sensibly works. 17:39:27 -!- tenq is now known as tenq|away 17:41:40 Riastradh, well, it still doesn't work completely sensibly by my knowldge, you can define the level of library impoirts, but not of random definitions 17:41:59 Seemingly, in order to do that you have to first put them in a seperate library and then import that one 17:42:07 alexei [~amgarchin@p4FD6332B.dip0.t-ipconnect.de] has joined #scheme 17:42:25 Hrm, looks like I asked something about this before: "So, psyntax fully infers all information about in which phases an import is needed, and thus makes explicit phasing unnecessary ? Or is there still a reason for explicit phasing ?" 17:50:55 -!- alexei [~amgarchin@p4FD6332B.dip0.t-ipconnect.de] has quit [Ping timeout: 272 seconds] 17:53:55 taylanub, the implementation is actually bad though, I just realized a better way to do it is to make sure that [fn _4] becomes [lambda [_0 _1 _2 _3 _4 . __) _4] 17:54:04 So you can create dummy arguments 17:54:22 No idea what I was thinking with the first idea, _1 should just alwayts refer to the second argument 17:55:05 It's also much easier to implement and doesn't need a sorting algorithm in it 17:58:07 -!- kbtr_ [~kbtr@li198-73.members.linode.com] has quit [Quit: leaving] 17:59:33 I didn't really look into the implementation at all to be honest. And I think I'd feel uncomfortable using such an unconventional construct; it's quite "fundamental" (an alternative to `lambda') and I suspect most use-cases would be covered by SRFI-26, the rest having almost no difference from the equivalent direct `lambda' usage. 18:00:58 Well, not the "implementation" as much as the semantics were awkward 18:01:06 But I actually mad eit because I felt frustrated with cut on some levels. 18:01:46 And I think lambda makes code hard to read for very simple expressions, if you have something like say (filter (lambda (x) (< x 2) lst) 18:02:29 The anonymous function itself is as large as the entire thing, (filter (fn (< 2 _0)) lst) or (filter #(< 2 %0) lst) in clojure is quite succinct 18:02:45 Then again, cut can do that one fine 18:02:54 I think the mind learns to filter out the noise after not-so-long. I also like Emacs's "pretty-symbols" extension which visually turns occurences "lambda" into "". 18:03:04 (cut (+ 1 <>)) doesn't work, right? the <> must be on the outermost level? 18:03:25 (cut + 1 <>) 18:03:29 or rather (cut + (+ 1 <>) 3) doesn't work 18:03:39 *taylanub* tries 18:04:19 Indeed. 18:04:47 this makes CUT essentially useless for all but the most trivial cases :) 18:04:59 I'm not sure how hard it would be to extend it to work recursively 18:05:18 From the ML discussions it seemed like the most trivial cases are the most common. 18:05:36 ecraven, yeah, that is pretty much why I made this 18:06:01 Yeah, but still, I don't think allowing arbitrary depth hurts 18:06:44 I indeed haven't seen that being discussed explicitly on the ML when I went through the archives, perhaps it was an oversight. 18:06:56 Might want to ask the author for a rationale. 18:08:13 Well, maybe they feel you shouldn't use something like that if it grows too complicated 18:08:34 I don't know, I never see a reason to restrict to a secpfiic case when something can do the general case with no loss of convenience for the restricted one. 18:08:38 -!- rotty [rotty@yade.xx.vu] has quit [Ping timeout: 264 seconds] 18:09:14 rotty [rotty@yade.xx.vu] has joined #scheme 18:09:14 What kind of typo was that :D 18:09:22 well, (something like (cut + (amount <>) (taxes <>)) doesn't seem excessively uncommon, for example.. at least I've wished for it to work often enough 18:10:34 emma [~em@unaffiliated/emma] has joined #scheme 18:11:53 frx [~michael@93-138-180-118.adsl.net.t-com.hr] has joined #scheme 18:12:01 -!- frxx [~michael@93-138-180-118.adsl.net.t-com.hr] has quit [Remote host closed the connection] 18:12:46 BTW unlike some other proposals that have been rejected for complexity, I don't see this proposal causing any ambiguity in the semantics (even in the extreme example of nested `cut' forms; any <> would just bind to the "nearest" cut form a la usual variable binding). Or maybe it has problems similar to (cut if <> 0 1) etc. ? 18:13:03 kbtr [~kbtr@li198-73.members.linode.com] has joined #scheme 18:13:20 *taylanub* reads archives to refresh memory on the reason special-forms were rejected. 18:13:36 Well, [fn (+ (amount $0) (taxes $1))) works here ftw 18:13:43 -!- Ogion [~Ogion@22.Red-81-32-255.dynamicIP.rima-tde.net] has quit [Ping timeout: 272 seconds] 18:14:15 The only argument against arbitrary depth that I can see is discouraging abuse. 18:14:28 But truth be told, scheme as a language does not exactly discourage abuse 18:14:39 ((call/cc call/cc) (call/cc call/cc)) 18:14:48 I want that on a shirt 18:14:54 Y? 18:15:11 That's a fixedpoint operator? 18:16:28 what was the argument against (cut if <> 0 1)? 18:17:00 Added complexity basically 18:17:07 And like, if can again expand 18:17:24 I fail to see how that is a problem :) 18:17:28 Like, what happens if you do (or <>) and it expands to something that duplicates <> 18:17:43 Well, ifit expands againa nd it duplicates <> then the semantics become less than transparent 18:17:53 Not a problem with my version which is like totally better in every single way because it gives them a number 18:17:59 wouldn't <> be expanded before OR or IF? 18:18:06 ecraven: Just found it: (cut quasiquote <>) 18:18:23 ecraven, maybe, maybe not, it just makes it hard to reason about I guess 18:18:27 http://srfi.schemers.org/srfi-26/mail-archive/msg00070.html 18:18:59 ChernoPutin: i'll try to port your code to MIT/GNU Scheme later, if I have some time, it looks interesting :) 18:19:04 I guess this is why datum->syntax is broken, it seems to ruin the confluence of macro expansion, hmm. 18:19:11 ecraven, I have a better version now 18:19:47 problem is, MIT/GNU Scheme isn't R6RS, we'll see how well it works 18:19:50 ecraven http://pastebin.com/bVdFPz8i 18:19:57 Well, you can run it in r6 mode right? 18:20:10 ecraven: If it has `syntax-case' it should work. 18:20:47 This version parses argument differently, like [fn $2] expands to [lambda [$0 $1 $2 . $$] $2) 18:20:58 ChernoPutin: Most implementations don't have "modes" like Racket does; they try to form one language coherent in its own regard, implementing or ignoring specific parts of specific standards as they see fit. 18:21:01 fridim_ [~fridim@bas2-montreal07-2925317577.dsl.bell.ca] has joined #scheme 18:21:27 taylanub, I use larceny, ikarus and racket and they all default to r6 when #!r6rs is at the top of the document. 18:21:37 ChernoPutin: it doesn't :) 18:21:48 Well, larceny does not "conform" strictly, it has some minor exceptions 18:22:01 It runs every valid r6 code but it doesn't catch soe errors r6 wants to be caught It hink 18:22:12 ecraven, well, well, good luck porting then 18:22:35 ChernoPutin: I didn't know anything other than Racket supports something like #!r6rs, I guess there's a couple then but still not most implementations. 18:22:47 The major reaosn I am on r6 is because it's the only way to get a portable library system. 18:23:04 Well, r6 says you have to support #!r6rs if you want to call yourself r6 conformant 18:23:28 I think, racket's own way is #lang r6rs which makes Ikarus and Larceny raise erros 18:23:29 Then most implementations aren't R6RS conformant. :) 18:23:50 I like that scheme is finally at the point that I can actually write useful code and run it in 3 different implementations and get identical results. 18:26:25 scheme@(guile-user)> ((cut quasiquote <>) foo) 18:26:25 $13 = t-4162 18:26:26 eheh 18:28:22 Ogion [~Ogion@22.Red-81-32-255.dynamicIP.rima-tde.net] has joined #scheme 18:29:35 -!- tenq|away is now known as tenq 18:29:42 Oh, that only worked because I happened to have `foo' defined in the REPL session. 18:30:42 groovy2shoes [~guv@unaffiliated/groovebot] has joined #scheme 18:32:18 Not entirely sure r6 absolutely requires #!r6rs following or that it just a hint though, but it does fmention it 18:32:57 I think to be r6 conformant you also need to accept as many arguments to a procedure as can fit into memory or something, a lot ofimplementations limit it tos omething like 256 18:37:48 -!- tenq is now known as tenq|away 18:46:05 erider [~chatzilla@unaffiliated/erider] has joined #scheme 18:46:07 nisstyre [~yours@oftn/member/Nisstyre] has joined #scheme 18:47:53 Nizumzen [~Nizumzen@cpc1-reig5-2-0-cust251.6-3.cable.virginm.net] has joined #scheme 18:50:06 dsmith [~dsmith@cpe-184-56-129-232.neo.res.rr.com] has joined #scheme 18:51:01 es [~estevocas@189.Red-79-158-172.staticIP.rima-tde.net] has joined #scheme 18:51:01 -!- es is now known as estevocastro 18:53:24 vraid [50d8e34d@gateway/web/freenode/ip.80.216.227.77] has joined #scheme 18:55:19 -!- Ogion [~Ogion@22.Red-81-32-255.dynamicIP.rima-tde.net] has quit [Ping timeout: 246 seconds] 18:58:07 add^_` [~user@m176-70-201-196.cust.tele2.se] has joined #scheme 18:59:40 -!- add^_ [~user@m176-70-201-196.cust.tele2.se] has quit [Ping timeout: 246 seconds] 19:03:08 Ogion [~Ogion@81.32.255.22] has joined #scheme 19:05:15 stepnem [~stepnem@internet2.cznet.cz] has joined #scheme 19:09:17 yrdz [~p_adams@unaffiliated/p-adams/x-7117614] has joined #scheme 19:20:07 pecg [~pecg@unaffiliated/pecg] has joined #scheme 19:31:02 -!- Nizumzen [~Nizumzen@cpc1-reig5-2-0-cust251.6-3.cable.virginm.net] has quit [Quit: KVIrc 4.2.0 Equilibrium http://www.kvirc.net/] 19:38:38 isn't r7rs more important nowadays? 19:41:12 -!- pecg [~pecg@unaffiliated/pecg] has quit [Quit: WeeChat 0.4.2] 19:44:54 ecraven: Some implementations hold R6RS above R7RS-small because the latter can be seen as a step back. R7RS-large is in infancy ... 19:47:24 taylanub: don't most implementations just ignore R6RS, and R7RS-small has a chance of at least being implemented by most of these? 19:52:27 jenia [~jenia@modemcable112.235-178-173.mc.videotron.ca] has joined #scheme 19:52:31 hello everyone. 19:52:41 in little schemer theres a function called lat? 19:52:59 it can be defined as (define lat? 19:53:07 (lambda () ...)) 19:53:12 or 19:53:40 ups no 19:53:51 (lambda ( list ) ...)) 19:53:56 sure 19:54:09 or (define lat? ( list ) (...)) 19:54:13 how can that be 19:54:24 (define lat? (lambda (arguments) (...))) 19:54:25 one is a function lat? returninga function 19:54:32 that returna function 19:54:41 no, lambda is the definition of a function 19:54:59 (define lat? (lambda ...)) defines lat? as a function 19:55:15 whhat if you want to return a funtion? 19:55:32 (define lat? (lambda (a) (lambda (b) (...)))) 19:55:39 ahh okay 19:55:42 thanks very much 19:55:45 np 19:56:45 -!- jeapostrophe [~jay@racket/jeapostrophe] has quit [Ping timeout: 251 seconds] 19:58:23 ecraven, do implementations ignore r6? 19:58:36 Almost every implementation I used seems to make an attempt to support it 19:58:48 Ikarus, Bigloo, Chez, Chicken, Racket, Larceny, that's about all the big ones no? 19:59:02 ah, then that has changed since I last checked 19:59:35 I kind of think r6 is awful though but it's the only portable module system there is. 19:59:45 That's ultimately why I attempt to limit to r6+srfi 19:59:45 ChernoPutin: I agree 20:00:10 I don even feel r6 would have to define map, just the minimal primitives from which everything else can be built 20:00:15 srfi can do the rest 20:00:42 Which is what r7 smal is right? 20:03:35 -!- nisstyre [~yours@oftn/member/Nisstyre] has quit [Quit: Leaving] 20:06:33 boycottg00gle [~user@stgt-5f71be79.pool.mediaWays.net] has joined #scheme 20:07:27 as I understand it, yes 20:08:17 I am always one for the layered standards 20:08:36 The rest can just be done by srfi really. 20:11:41 the next scheme standard should require '' characters instead of 'lambda' 20:11:52 then I would be ultra happy! ^_^ 20:12:38 zacts: just use any decent editor :) emacs supports this, for example 20:12:49 I know. pretty-lambdada 20:12:54 I rather limit to ascii myself though 20:12:54 I'm just joking 20:12:55 it really looks good and makes things more readable to me 20:13:07 Also, with the new and reevolutionary fn, lambda is clearly a thing of the past 20:13:22 you could probably define  as a macro that expands to LAMBDA :) 20:13:57 ChernoPutin: well, $1 $2 $3 are not exactly good parameter names in general :) hard to understand what they are supposed to be :p 20:14:00 jao [~jao@144.pool85-58-52.dynamic.orange.es] has joined #scheme 20:14:03 -!- jao [~jao@144.pool85-58-52.dynamic.orange.es] has quit [Changing host] 20:14:03 jao [~jao@pdpc/supporter/professional/jao] has joined #scheme 20:14:04 Still requires something else than ascii to expand 20:14:22 ecraven: that looks like perl 20:14:31 ecraven, well, if you use lambda instead of define when you need to know what the parametre names are you are probably doing it wrongly. 20:14:35 ChernoPutin: don't most schemes support unicode anyway? 20:14:38 zacts, fn is the future 20:14:44 ChernoPutin: what is fn? 20:14:56 ecraven, yeah, and most text editors, but as you probably realize I have this pathological obsession with portability 20:15:10 *zacts* is only like 1/2 way through 'Scheme and the Art of Programming' 20:15:19 ecraven: (re. R6/7RS) It can be the opposite too, due to what I mentioned. I should've mentioned BTW that my only data point is Guile when I say some implementations hold R6RS higher than R7RS-small. 20:15:39 zacts: "function" probably 20:16:09 zacts, well, a team of brilliant men and women came together to work for a decade on the fn special form, essentially [fn (apply + $0 $2 $$)] expands to [lambda ($0 $1 $2 . $$) (apply + $0 $1 $2 $$)] 20:16:12 ChernoPutin: I'd say Guile is also one of the "big" implementations. (And it also strives for R6RS support.) 20:16:26 well, r7rs small is pretty recent, it'll take some time to get it supported "everywhere" 20:16:35 True, but Guile, I never got it 20:16:41 It's neither fast nor very user friendly. 20:16:47 but personally I much prefer r7rs-small to the corresponding r6rs part 20:16:52 It's quite fast and I find it very friendly. :D 20:16:56 ecraven, what does it do differently? 20:16:57 ChernoPutin: did you miss $1 in the fn form? 20:16:58 things have changed recently with guile 20:16:59 ChernoPutin: Did you use 1.8 ? 20:17:02 taylanub, guile is pretty slow no? 20:17:17 vraid, no, that is the point of it. 20:17:23 ChernoPutin: 2.0 is a bit more than 2 years old now, and it's quite a different monster from the 1.x series 20:17:25 taylanub, never used it, just saw the benchmarks. 20:17:35 ChernoPutin: You probably saw 1.x benchmarks. 20:17:35 Maybe the benchmarks are outdated though 20:17:50 But they all seem to conclude that Larceny and Ikarus are the only serious candidates for speed if you don't want to count Stalin 20:17:59 ChernoPutin: oh, but those are terrible argument names 20:18:00 are there any talks here about vau 20:18:01 Stalin is the best name ever for what it does. 20:18:11 vraid, well, you have to put something in front of the number 20:18:17 ChernoPutin: are you a perl programmer? 20:18:22 It used to be_ but I figured $ is at least a convention in some environments 20:18:27 It's how bash does command line arguments 20:18:34 I figured that everyone knew bash 20:18:37 ChernoPutin: I don't know what gave you that impression; from what I know Chez and Chicken and Gambit ... also all have quite good speed. 20:18:39 Perl got it from Bash 20:19:12 taylanub, well, they are not as slow as say Racket or Scheme48 but Ikarus and Larceny seem to be well ahead of all the others 20:19:33 http://www.ccs.neu.edu/home/will/Twobit/benchmarksGenuineR6Linux.html 20:19:43 Might be larceny biased though, looking at the link 20:19:49 *taylanub* thought Racket also had good speed ... not aware of any huge differences between any of the "big" implementations actually 20:19:50 twobit is the larceny engine if I recall correctly. 20:20:13 Racket is one of the slower ones I suppose, it also uses a trampline internally I believe and doesn't compile to machine code directly. 20:20:21 Ikarus does, I think Larceny does too. 20:20:30 -!- jxv [~jxv@76-219-78-35.lightspeed.irvnca.sbcglobal.net] has quit [Quit: leaving] 20:20:34 That benchmark calls Racket "PLT" .. how old is it ? 20:20:37 Racket isn't slow these days with its JIT compilation. 20:20:49 ChernoPutin: racket can jit-compile its vm instructions, which makes it faster 20:20:56 taylanub, probably old, it also uses the 0.02 instead of 0.0.3 form of Ikarus 20:21:07 IT's from the R6 era though 20:21:11 isn't Ikarus dead? 20:21:21 I would disregard those benchmarks, it seems like many implementations had big changes in the last couple years. 20:21:47 Yeah, that's the point with Ikarus, it's semi dead 20:21:55 A lot of its links are dead 20:22:10 But iit ran fast in its final moments at the least 20:22:49 taylanub, well, most benchmarks seem to give a comparable result with Ikarus and Larceny more or less a lot ahead of everything else 20:23:36 Last time I looked for recent benchmarks I couldn't find any... 20:24:09 http://www.cs.utah.edu/~mflatt/benchmarks-20100126/log3/Benchmarks.html this one is fairly new and from the racket site 20:24:49 2010 isn't new. 20:25:01 Well,m it's one of the newest 20:25:23 The point is I thik that for any of those impolementations to swtich places they have to overhaul their runtime and overal strategy. 20:25:38 The problem with ikarus is that its error messages are obscenely nondescriptive. 20:25:46 It doesn't give you a line number, it gives you a character number 20:26:00 Well some of them did indeed overhaul their runtime and overall strategy. Well, at the very least Guile did. 20:26:03 For compile time errors that is, runtime errors just give you "error, sometyhinhg went wrong" more or less 20:26:21 Maybe racket did in the meanwhile, I can't say I'm entirely up to date 20:26:30 Let me rephrease then 20:26:43 civodul [~user@reverse-83.fdn.fr] has joined #scheme 20:26:45 around 2008-2011, larceny and ikarus were king as far as speed goes. 20:28:47 But like, PLT/Racket was never meant for that, it does what it does well, it's an excellent teaching environment because its error messages are so descriptive even at runtime 20:29:14 (Re. Guile, 1.x had an interpreter only, 2.0 switched to a byte-code compiler and stack VM which was a huge improvement, the upcoming 2.2 switches to a register VM, and the next goal from there (2.4 or 3.0) will be the ability to do native compilation, which might be done partially AOT and partially JIT ...) 20:29:15 But storing all that information has got to have some effect on performance, it even gives you line numbers of where things went wrong at runtime 20:29:22 Hmm 20:29:27 what are the major advantages for guile? 20:30:08 Last time I read on how it worked it worked with your typical call stack and it had to copy the entire stack for continuations 20:31:17 I believe that i racket (define (values . xs) (call/cc (lambda (cont) (apply cont xs)))) is also inefficient 20:31:23 AFAIK that's what all implementations need to do when they support an FFI, and the cleaner delimited continuations solve that general problem anyway. 20:31:38 Hmm yeah, that's a good point 20:31:41 call/cc in itself will hopefully be abandoned some time in the future. 20:31:47 I don't think Ikarus supports any of that 20:31:49 I hope not. 20:32:01 I like the idea that the language defines a small set of primitives from which you can build all. 20:32:02 Well, delimited continuations can practically implement call/cc. 20:32:17 If you remove call/cc you have to give some support to make break and exists 20:32:18 True 20:32:32 They can't implement amb though, right? 20:32:55 amb ? 20:33:23 -!- arubin [~textual@99-114-192-172.lightspeed.cicril.sbcglobal.net] has quit [Quit: Textual IRC Client: www.textualapp.com] 20:33:58 Ehh, it's an operator that allows you to express non deterministic brute force logic easily. 20:34:12 Defgine constraint programming and stuff, it needs call/cc to be implemented 20:34:22 Well, probably doesn't "need" but it's the to go way 20:34:24 http://paste.lisp.org/display/140712 20:34:36 ^ why am I getting this error? 20:34:49 ChernoPutin: the problem with undelimited continuations is that they aren't composable... so, yes, technically they can implement coroutines and exceptions and such, but they don't behave all that well when you use them all together... with delimited continuations, they do 20:34:56 Like ehh, if you do (define x (amb 1 2 3)) you basically say that x can be any of 1 2 3 20:34:56 I'm trying to continue through my book, but I can't until I solve this error.. 20:35:33 groovy2shoes, composable in the Haskell sense or int he (compose f g) sense? 20:35:57 BTW the advantages of Guile, I would say (as a non-expert), are very good C and systems integration (embeddability, as well as extensibility, i.e. creating new primitive Scheme data types and procedures that are implemented in C, also a good FFI, native pthreads, etc.), and becoming more and more a central part of GNU, being used for GNU Guix, and probably to be merged with Emacs in the next couple years. 20:35:58 ChernoPutin: and while I haven't tried it myself, I read somewhere that you get effectively the same behavior as undelimited continuations by wrapping your whole program in a delimited continuation 20:36:08 ChernoPutin: both, I suppose 20:36:19 zacts, random p 20:36:27 There is a random p in your text, probably a typo 20:36:37 (cons int1 (cons int2 '()))))p 20:36:40 these errors are the worst 20:37:18 groovy2shoes, hmm, I do recall once implementing a pure lisp and continuations gave me a huuuge problem and I eventually just ruled that they aren't actually first class bojects 20:37:36 Specifically that they can leave thieir enrvironment basically turned the entire program into undefined nonsense 20:37:49 d'oh 20:37:51 thanks 20:38:02 from emacs trying to move to the previous line, I guess 20:38:23 ChernoPutin: the problem is that they're kind of like functions, and even the syntax of "calling" a continuation makes them seem like functions, but they're not functions because they never return and therefore cannot be composed 20:38:51 I need to learn how to read error messages 20:38:53 groovy2shoes, yeah 20:39:02 ChernoPutin: best intro I've found is here: http://community.schemewiki.org/?composable-continuations-tutorial (not that it's particularly good, but it's the best unfortunately) 20:39:09 (cond p ... <- I thought that that meant cond 20:39:22 I think calling them 'functions' is a mistake more or less, a function should be a procedure whose continuation is the natural one. 20:39:46 groovy2shoes, I suppose another way to solve that issue is a static type system where the contuation of a procedure is part of its type in some way 20:39:55 ChernoPutin: BTW http://okmij.org/ftp/continuations/against-callcc.html 20:40:00 groovy2shoes: my book, 'Scheme and the Art of Programming' has a nice section on continuations, but I haven't read it yet.. 20:40:30 zacts: are they delimited continuations, though? 20:41:25 I don't know, how can I find out? 20:41:30 taylanub, yeah, I know them 20:41:37 I don't think they should be functions no 20:41:52 rather, maybe a special form (goto kont args ...) should exist 20:42:19 My intuition says the major problem with them is not their unrestricted behaviour but theirunrestricted call site 20:42:27 ijp [~user@host86-184-83-158.range86-184.btcentralplus.com] has joined #scheme 20:42:27 ChernoPutin: I can't prove it, but I suspect that amb would be implementable with delimited continuations... amb is essentially backtracking search, right? so then your limit on the continuation would be the choice point you want to backtrack to, I think 20:43:14 It probably can, but then again, the point of call/cc isn really that you should 'use' it 20:43:20 it; s more that you can marvel at it and don't touch it. 20:43:22 There are implementations of amb using delimited continuations, so it is. Delimited continuations are more expressive than undelimited ones, after all. 20:43:27 And be like 'I could, if I wanted.' 20:43:33 zacts: if it's using call-with-current-continuation, then it's undelimited continuations... delimited continuations have other names (like shift and reset, and a few other confusing names) 20:44:07 I think it describes both 20:44:09 groovy2shoes: not necessarily, in Racket call/cc is delimited. 20:44:18 asumu: ah, good to know 20:44:24 "Such continuations are created by invocations of call-with-current-continuation" 20:44:26 zacts: well then you're in luck! :) 20:44:40 groovy2shoes: in most repls, call/cc is implicitly delimited 20:44:51 it does mention call/cc also 20:45:03 but those are the last few chapters of the book 20:45:07 I'm not quite there yet 20:45:12 The major counter argument to that call/cc isn't needed is that ther argument is right, it isn't strictly needed, just like many things, it's not there because of practical reasons, it's there for theoretical, aesthetical and philosophical reasons 20:45:41 not really aesthetical 20:45:44 zacts, call/cc is just the same thing that hurts your eyes and fingers less 20:45:45 Oleg is arguing that its inclusion is pragmatically harmful. 20:45:46 ChernoPutin: but now delimited continuations give you the best of both worlds ;) 20:46:01 groovy2shoes, they are less aesthetic and phillosophical though 20:46:22 But I wonder what the implications are of taking full continuations but not making them a function and requiring explicit code to call them. 20:46:40 ChernoPutin: I'd argue that they're at least as philosophical... I can't argue against the aesthetic point, though 20:46:50 Say a special form (restore-continuation kont args ...) which returns an unspecified value 20:46:56 it wouldn't return 20:47:08 that's the point of an undelimited continuation 20:47:12 FWIW, in the research literature there are models of continuations that use a special form to install continuations. I don't think it makes any fundamental difference. 20:47:15 groovy2shoes, well with philosophy I mean ius that it's part of the scheme idea of providing a view highly generalized primitives from which everything can be made 20:47:22 It's a sort of UI/API issue. 20:47:47 ChernoPutin: but delimited continuations do a better job of allowing you to make everything 20:47:48 ijp, it wouldn't so the point is that it should be treated as a side effect 20:48:01 alexei [~amgarchin@p4FD6332B.dip0.t-ipconnect.de] has joined #scheme 20:48:10 is concurrency possible with scheme? (I don't mean parallelism, necessarily..) 20:48:46 groovy2shoes, I suppose you can say that a full continuation returns the final value of the program though 20:48:48 zacts: yes 20:48:59 If we allow ourselves to think programs are giant functions which perform a side effect 20:49:44 b80905 [~user@ppp92-100-84-37.pppoe.avangarddsl.ru] has joined #scheme 20:49:49 ChernoPutin: yes, but delimited continuations do the same in a more useful way 20:49:53 Delimited continuations can't really do something like (exit 0) fro anywhere in the program right?, at least not aesthetically 20:50:04 cool. well, I'm back to my reading. maybe in a few weeks I'll know enough to be able to really discuss continuations and concurrency with you guys.. 20:50:52 zacts: continuations are mind-boggling at first... they're one of the toughest parts of scheme to grok, but they're *really cool* once you understand them 20:50:55 how do i approximate a fraction? 20:51:06 b80905, ehh, what do you mean/ 20:51:11 You mean with floats? 20:51:13 groovy2shoes: and then you never ever use them again 20:51:35 Not true, I once made a while loop + break with continuations 20:51:36 zacts: what ijp said ^ it's funny cuz it's true 20:51:47 ChernoPutin: You seem to be still under the illusion that undelimited continuations are more fundamental/general than delimited ones; they're not. Neither mathematically (where you can pick any axioms and define anything in terms of anything anyway), nor practically (at most they're delimited way back at the operating system's process execution/termination interface, but they still are). 20:52:21 One could *maybe* make some philosophical arguments in that direction but that's probably going to be very informal and vague. 20:52:43 Well, an undelimited continuation in effect is a delimited one that goes back to the OS 20:52:44 ChernoPutin: my scheme implementation returns a fraction like 2/3 rather than 1.66666 20:52:53 I think I'm not really a mathematician yet though so perhaps I stand to be corrected ... 20:53:04 b80905, exact->inexact 20:53:10 Which is basically "force float" 20:53:37 how do you say atom? in scheme? 20:53:52 taylanub, well, I suppose undelimited conintuations thesmevles are nothing special, what is special is that the program can transform a part of itself into it 20:53:53 jenia: (not (pair? <>)) 20:53:59 thanks 20:54:05 they're ordinary functions, unlimited continuations are not, and I don't feel they should be treated as such 20:54:08 -!- alexei [~amgarchin@p4FD6332B.dip0.t-ipconnect.de] has quit [Ping timeout: 252 seconds] 20:54:13 jenia: Tip: it's not very useful in practice. 20:54:36 The major problem might also come from that they are not functions but treated as functions 20:54:51 i need it for a function in little schemer 20:54:55 -!- b80905 [~user@ppp92-100-84-37.pppoe.avangarddsl.ru] has quit [Remote host closed the connection] 20:55:01 the little schemer mentions the definition in the intro 20:55:27 okay thanks taylanub and ijp 20:55:39 The original historical significance of atoms was that they couldn't be decomposed because back then only pairs could 20:55:54 Some lisps nowadays also call vectos and strings and all that stuff non atomic 20:56:52 bars0 [~Name@d143-96.icpnet.pl] has joined #scheme 20:59:43 -!- estevocastro [~estevocas@189.Red-79-158-172.staticIP.rima-tde.net] has quit [Ping timeout: 245 seconds] 21:02:02 -!- bars0 [~Name@d143-96.icpnet.pl] has quit [Quit: leaving] 21:02:03 alexei [~amgarchin@p4FD6332B.dip0.t-ipconnect.de] has joined #scheme 21:02:56 es [~estevocas@201.Red-79-155-210.dynamicIP.rima-tde.net] has joined #scheme 21:02:56 -!- es is now known as estevocastro 21:12:31 I don't believe the original idea of ATOM? makes any sense in modern Schemes 21:12:32 jewel [~jewel@41.48.223.230] has joined #scheme 21:13:35 we need a quantum theory of lisp 21:17:21 ecraven, it would make sense if atom? was defined as anything which can be tested in eqv? 21:17:41 Which is also more or less what the name implies, that it can't be decomposed into further meanibngful parts 21:17:59 except you can use eqv? on anything 21:18:23 rudybot: (let ((a (cons #f #f))) (eqv? a a)) 21:18:26 ijp: your sandbox is ready 21:18:26 ijp: ; Value: #t 21:19:48 ijp, well, I mean the things which can be compared with eqv? 21:19:57 eqv? on lists and vectors and strings doesn't always go well 21:20:25 Because it needs to do structural comparison, you don'tneed to for symbols or numbers or characters or the empty list, they can't be decomposed in further meaningful parts 21:21:15 -!- fridim_ [~fridim@bas2-montreal07-2925317577.dsl.bell.ca] has quit [Ping timeout: 246 seconds] 21:21:31 not being decomposable is one criterion, but then what about ports? 21:22:17 Well, ports are atomic I suppose 21:22:27 there isn't much use for an atom? in practice 21:22:29 What they lead to of course isn't. 21:22:42 Well, itt ells you if you can use eqv 21:22:59 you can always use eqv? 21:23:06 it just doesn't always match equal? 21:23:13 [if (atom? x) (eqv? x y) (equal? x y)] 21:23:20 With 'can' I mean with the expectation that your stuff works 21:23:47 floats 21:23:57 Nizumzen [~Nizumzen@81.106.27.252] has joined #scheme 21:24:01 atomic or nonatomic? 21:24:18 atomic 21:24:23 Floats compare with eqv? do they not? 21:24:29 not guaranteed 21:24:35 Really? 21:24:37 yes 21:24:38 Where's the catch? 21:25:04 What is the motivation for that they don't? 21:25:16 -!- Nizumzen [~Nizumzen@81.106.27.252] has quit [Max SendQ exceeded] 21:25:33 well, for instance, in guile, floats are allocated on the heap 21:25:37 maybe boxed floats where eqv? compares the pointers? 21:26:14 Well, why not boxed integers then? 21:26:16 so they can be different objects in memory 21:26:17 Or boxed symbols 21:26:31 ChernoPutin: if they are boxed, you'll run into the same problems as with floats :) 21:26:34 Isn't eq for same object in memory and eqv for ocnstant time? 21:27:15 50 pages and no-one reads them 21:27:22 I ways always under the impression that eq? was for same object in memory, eqv? for constant time and equal? for complex structural equalities. 21:27:34 Then what is eqv? for? 21:27:56 What is the difference between eqv? and eq? 21:28:07 r7rs-draft9.pdf page 30 21:28:11 eqv? return true iff: 21:28:30 rudybot: (eqv? #i1 #e1) 21:28:30 ijp: ; Value: #f 21:29:15 Nizumzen [~Nizumzen@cpc1-reig5-2-0-cust251.6-3.cable.virginm.net] has joined #scheme 21:29:35 a and b are different types, one of them is #t and the other is #f, a and b are both symbols but not SYMBOL=?, one of a and be is exact the other is inexact, both are exact numbers but not =, both are characters but not CHAR=?, both are pairs, vectors, bytevectors records or strings denoting different locations (so not EQ? probably) 21:29:37 mostly :) 21:29:54 anyway eqv? can't be constant time 21:30:02 if you have bignums 21:30:08 "it returns #t if obj_1 and obj_2 are normally regarded as the same object." 21:30:11 whatever that means :) 21:30:23 ijp, r6 defines that eqv should succeed if a and b are both inexact numbers which are identical 21:30:35 Obj1 and obj2 are both inexactnumber objects, are numerically equal (see =, section 11.7), and yield the same results (in the sense of eqv?) when passed as arguments to any other procedure that can be defined as a finite composition of Scheme's standard arithmetic procedures. 21:30:45 Same for exact 21:30:49 seems to me that it has to succeed on floats 21:30:55 clearly atomic 21:31:00 right, but since "r6rs is the devil", I assumed we were playing 1998 rules 21:31:10 and it still isn't constant time 21:31:47 anyway, the original point was, atom? is not worth worrying about 21:31:49 Well, do you have a counter example in r6? 21:31:57 ChernoPutin: bignums 21:32:01 Something which is constant time but fails. 21:32:07 it should also succeed in bignums 21:32:22 but bignums probably can't be compared in constant time 21:32:23 ChernoPutin: such is the folly of async chat 21:32:46 unless you have a bignum table to ensure uniqueness 21:33:09 Logarithmic time then apparently. 21:33:26 That said, bignums still cannot be decompoed into further meaningful parts 21:33:29 They are atomic 21:33:44 well, I disagree with that 21:33:50 I'm just saying that testing the property of 'atomic' may have some uses. 21:33:59 But atom? currently does not test that 21:34:20 what are numbers but vectors of bits? 21:34:33 (not entirely serious) 21:34:56 so ATOM? is essentially (or (eq? x #t) (eq? x #f)) :D 21:36:29 rudybot: (eqv? (eof-object) (eof-object)) 21:36:29 ijp: error: eof-object: undefined; cannot reference an identifier before its definition in module: 'program 21:36:34 blah 21:36:40 -!- weie [~weie@softbank221078042071.bbtec.net] has quit [Quit: Leaving...] 21:36:58 rudybot: (eq? (call-with-input-string "" read) (call-with-input-string "" read)) 21:36:58 civodul: your sandbox is ready 21:36:59 civodul: ; Value: #t 21:37:03 cool 21:37:23 r6rs says yes, but you never know what people will actually do 21:37:32 heh 21:37:40 rudybot: (eqv? "" "") 21:37:40 ijp: ; Value: #t 21:37:46 But r6 gave is portable modules 21:37:49 rudybot: (eqv? (vector) (vector)) 21:37:49 ijp: ; Value: #f 21:37:55 *ChernoPutin* kneels in humility before r6 21:38:04 -!- civodul [~user@reverse-83.fdn.fr] has quit [Quit: ERC Version 5.3 (IRC client for Emacs)] 21:38:25 rudybot: (eqv? '#() '#()) 21:38:25 ijp: ; Value: #f 21:38:51 hm.. why would an implementation allocate more than one '#() literal? 21:39:24 ecraven, r6 satys it can. 21:39:35 empty collections are interesting because they are "atomic" but not atoms 21:39:37 indeed, but why would it? there's no reason to. 21:39:47 rudybot: (eq? values (compose)) 21:39:47 ChernoPutin: your sandbox is ready 21:39:47 ChernoPutin: ; Value: #t 21:40:14 Depends on the collection, with trees and lists I'd say they are atoms 21:40:16 Well, a list is a tree 21:40:25 rudybot: (eqv? (lambda (x) x) (lambda (x) x)) 21:40:25 ijp: ; Value: #f 21:40:33 as you'd expect 21:40:41 that could be #t though, right? 21:40:50 in theory, yes 21:40:51 r6 leaves a lot of room for how eqv? should work 21:40:58 -!- add^_` [~user@m176-70-201-196.cust.tele2.se] has quit [Remote host closed the connection] 21:41:03 ijp: wouldn't be too hard to catch it, would it? 21:41:17 add^_` [~user@m176-70-201-196.cust.tele2.se] has joined #scheme 21:41:22 ecraven: a little harder with alpha renaming, but no 21:41:33 rudybot: [let [[x '#()]] (eqv? x x)) 21:41:33 ChernoPutin: The semantics specify eqv?, but not eq?. 21:41:46 Oh brace 21:41:48 rudybot: [let [[x '#()]] (eqv? x x)] 21:41:48 ChernoPutin: ; Value: #t 21:42:04 I like how it gives you a completely random quote when it can't parse rather than a parse error 21:42:14 it's not randmo 21:42:33 rudybot: (call-with-current-continuation (lambda (x) ... 21:42:35 ijp: This gets you stuff like `c-w-c-c' to expand to `call-with-current-continuation'. 21:43:28 Yeah, I know, it's a chatlog 21:43:32 It searches it, at least 21:44:33 -!- oleo [~oleo@xdsl-78-35-150-149.netcologne.de] has quit [Ping timeout: 252 seconds] 21:44:38 rudybot: teach us about elephants 21:44:39 ijp: eval (define (elephant elephants) (if (= 0 elephants) 1 (* (elephant (- elephants 1)) elephants))) 21:44:43 it's sorta random. 21:45:00 rudybot: que es mas macho: elephant o buffalo? 21:45:01 *offby1: MACHO?? 21:45:16 oleo [~oleo@xdsl-78-35-188-210.netcologne.de] has joined #scheme 21:45:18 rudybot: yeah, you got a problem with that? 21:45:19 *offby1: I never got to read my mail on Emacs (I use IMAP). What is recommended to begin with? 21:45:22 offby1, my old friend, I like what you've done with your beard. 21:45:35 gaaah 21:45:37 *offby1* flees 21:45:49 Is it something that I said? 21:46:32 I bet you say that to all the fellas. 21:59:05 what does the * mean in scheme's convention? 21:59:14 insertR* 21:59:24 rember* 21:59:32 jenia: roughly "variation on a theme" 21:59:43 "the other thing" 21:59:50 aha. thanks 21:59:51 foo* kinda like foo but not quite 21:59:53 foo* is like foo but different 21:59:56 ijp: creepy 22:00:13 ijp: get your own brain; I'm using mine 22:00:14 the real offby1 would say "jinx" in this situation 22:00:23 impostor! 22:00:25 *gasp* 22:08:13 eli [~eli@lambda.ccs.neu.edu] has joined #scheme 22:08:13 -!- eli [~eli@lambda.ccs.neu.edu] has quit [Changing host] 22:08:13 eli [~eli@racket/eli] has joined #scheme 22:14:35 -!- taylanub [~taylanub@78.179.242.127] has quit [Ping timeout: 245 seconds] 22:15:55 -!- jewel [~jewel@41.48.223.230] has quit [Ping timeout: 272 seconds] 22:16:15 -!- ChernoPutin [~nevzets@unaffiliated/nevzets] has left #scheme 22:17:56 taylanub [~taylanub@78.179.242.127] has joined #scheme 22:21:44 -!- yrdz [~p_adams@unaffiliated/p-adams/x-7117614] has quit [Quit: WeeChat 0.4.2] 22:22:01 yrdz [~p_adams@unaffiliated/p-adams/x-7117614] has joined #scheme 22:22:31 Floantstin [~nevzets@unaffiliated/nevzets] has joined #scheme 22:23:02 ecraven, but you think the $ is a bad idea? 22:23:21 Maybe just X Y Z . XX? 22:27:16 Floantstin: no, i think meaningful parameter names are better :) but of course that defeats the purpose of using FN 22:28:39 Meh, I feel that in cases like [lambda (item-to-be-compared) (< item-to-be-compared pivot)] it doesn't take from code readability to use [fn (< $1 pivot)], quite the opposite in fact. 22:28:48 But in bigger things, yeah 22:29:03 But I am intrigued what the aversion for the dollar sign is, because it's a eprl thing and perl is bonkers? 22:29:08 Floantstin: well, if you have an IDE that shows you the parameters for that function, the first is *much* better :) 22:29:25 alexei_ [~amgarchin@p4FD6332B.dip0.t-ipconnect.de] has joined #scheme 22:29:28 What do you mean with 'shows you the paremetres for that function' 22:29:29 did r7rs get rid of those ugly []? 22:29:48 In Haskell one would just do (< pivot) 22:29:59 I don't know, hope not. 22:30:09 I always use [ ... ] for syntax and ( ... ) for functions 22:30:10 did you ever try geiser or slime under emacs? 22:30:12 in haskell, all procedures have fixed arity 22:30:13 alexei___ [~amgarchin@p4FD6332B.dip0.t-ipconnect.de] has joined #scheme 22:30:18 -!- alexei_ [~amgarchin@p4FD6332B.dip0.t-ipconnect.de] has quit [Client Quit] 22:30:25 ecraven, never, don't use macs. 22:30:25 -!- alexei [~amgarchin@p4FD6332B.dip0.t-ipconnect.de] has quit [Quit: Konversation terminated!] 22:30:45 They do, but in scheme (curry-right < pivot) also has its place 22:30:49 Floantstin: any java or c# ide? if you type the name of a function, it shows you the types and names of the parameters 22:31:04 this "showing the name" works well in Scheme too, but if the name is $1 $2 ..., it's not useful at all 22:31:06 robot-beethoven [~user@c-24-118-142-0.hsd1.mn.comcast.net] has joined #scheme 22:31:14 ecraven, well, an anonymous function has no name 22:31:18 and partial evaluation is not currying, but I'm never going to win that argument 22:31:30 But yeah, I know that, ghc also has that 22:31:44 Floantstin: indeed, but what prevents you from doing (define my-function (fn ...)) :) 22:32:08 Well, you shouldn't I guess 22:32:16 But then again, scheme never stops you doing things you shouldn't 22:32:56 (map-tail (lambda (x) (set-cdr! x 4) list) 22:32:57 Come at me 22:33:54 ijp, it isn't technically, but the curry and curry-right functions provide you with a way to make code cleaner in my opinion 22:34:12 Floantstin: I guess my point is just that $1 $2 $3 aren't inherently good and useful names for parameters, but of course there isn't much choice for FN or CUT, so in these cases, they are probably very much ok :) 22:35:00 Well, it's not the number that confuses me, I agree with you that in more complex functions it should be named. But what's with the dollar sign 22:35:04 Why is the dollar sign so bad? 22:35:23 It isn't. Did I say it was? I didn't mean to :) 22:35:30 Maybe it was someone else. 22:36:12 I believe this is how perl normally works though, all functions are n-ary or something and $_ is available in the function body asn array containing the paramatres passed 22:36:25 Not the greatest of ideas in my book 22:41:37 -!- Floantstin [~nevzets@unaffiliated/nevzets] has left #scheme 22:54:30 ecraven: R7RS-small dropped the requirement of [] being equivalent to (). 22:54:58 great :) [in my book] 22:54:58 langmartin [~langmarti@66-191-6-218.dhcp.elbg.wa.charter.com] has joined #scheme 22:55:12 *taylanub* agrees 22:55:14 I find it very hard to read, but that's probably a question of being accustomed to it 22:55:22 personally, I just don't see a need 22:56:38 With paredit, sexpr editing is pretty much as nice as it can be, and eyes easily get accustomed to common patterns of parenthesis-oceans. 22:57:10 ignore the parentheses, look at the indentation :) 22:58:15 -!- estevocastro [~estevocas@201.Red-79-155-210.dynamicIP.rima-tde.net] has quit [Ping timeout: 252 seconds] 22:59:12 amgarchIn9 [~amgarchin@p4FD6332B.dip0.t-ipconnect.de] has joined #scheme 22:59:12 -!- Giomancer [~gio@107.201.206.230] has quit [Quit: Leaving] 22:59:33 Well I think the main problem is in places where there's duplicated parenthesis, where indentation doesn't help much, like (let ((foo bar)) ...), worse (let-values (((foo bar) (blah))) ...), (cond ((blah) (blub))), etc., but in my experience one soon memorizes the "visual" amount of parentheses and it ceases being a problem ... 23:00:18 often you will see (let ([foo bar] ... 23:02:02 that depends on where you put newlines too :) 23:02:11 amgarching [~amgarchin@p4FD6332B.dip0.t-ipconnect.de] has joined #scheme 23:02:13 -!- alexei___ [~amgarchin@p4FD6332B.dip0.t-ipconnect.de] has quit [Ping timeout: 245 seconds] 23:03:28 -!- amgarchIn9 [~amgarchin@p4FD6332B.dip0.t-ipconnect.de] has quit [Ping timeout: 245 seconds] 23:03:40 boycottg00gle: Should it be ([foo bar] ...), or [(foo bar) ...] ? 23:04:06 i more often saw ([foo bar] ... 23:04:11 OK 23:05:07 ChernoPutin seemed to have the idea of using () only for function-calls, which ended in a sea of [], perhaps one could use () for function and special-form calls, but I suppose that wouldn't be much better in some cases. 23:05:11 -!- add^_` [~user@m176-70-201-196.cust.tele2.se] has quit [Quit: ERC Version 5.3 (IRC client for Emacs)] 23:05:29 Well anyway, I'll stick to pure () as long as I don't see the majority of people switching. 23:07:14 -!- amgarching [~amgarchin@p4FD6332B.dip0.t-ipconnect.de] has quit [Quit: Konversation terminated!] 23:08:23 alexei [~amgarchin@p4FD6332B.dip0.t-ipconnect.de] has joined #scheme 23:10:51 -!- alexei [~amgarchin@p4FD6332B.dip0.t-ipconnect.de] has quit [Client Quit] 23:11:21 -!- amirouche1 is now known as amirouche 23:11:33 alexei [~amgarchin@p4FD6332B.dip0.t-ipconnect.de] has joined #scheme 23:12:58 -!- amirouche is now known as amz3 23:13:36 -!- alexei [~amgarchin@p4FD6332B.dip0.t-ipconnect.de] has quit [Read error: Connection reset by peer] 23:13:53 alexei [~amgarchin@p4FD6332B.dip0.t-ipconnect.de] has joined #scheme 23:15:07 -!- alexei [~amgarchin@p4FD6332B.dip0.t-ipconnect.de] has quit [Client Quit] 23:16:43 -!- eMBee [~eMBee@foresight/developer/pike/programmer] has quit [Ping timeout: 260 seconds] 23:19:09 alexei [~amgarchin@p4FD6332B.dip0.t-ipconnect.de] has joined #scheme 23:19:41 -!- groovy2shoes [~guv@unaffiliated/groovebot] has quit [Quit: groovy2shoes] 23:20:56 eMBee [~eMBee@foresight/developer/pike/programmer] has joined #scheme 23:22:45 efanord [~defanor@ppp91-77-172-193.pppoe.mtu-net.ru] has joined #scheme 23:22:55 -!- langmartin [~langmarti@66-191-6-218.dhcp.elbg.wa.charter.com] has quit [Quit: sleep] 23:23:02 defanor [~defanor@ppp91-77-172-193.pppoe.mtu-net.ru] has joined #scheme 23:23:41 alexei_ [~amgarchin@p4FD6332B.dip0.t-ipconnect.de] has joined #scheme 23:24:45 jxv [~jxv@12.145.136.107] has joined #scheme 23:24:58 -!- alexei [~amgarchin@p4FD6332B.dip0.t-ipconnect.de] has quit [Ping timeout: 246 seconds] 23:25:08 -!- defanor_ [~defanor@ppp91-77-171-7.pppoe.mtu-net.ru] has quit [Ping timeout: 245 seconds] 23:25:08 langmartin [~langmarti@66-191-6-218.dhcp.elbg.wa.charter.com] has joined #scheme 23:26:13 -!- defanor__ [~defanor@ppp91-77-171-7.pppoe.mtu-net.ru] has quit [Ping timeout: 272 seconds] 23:27:18 acarrico [~acarrico@hunt-sting-2-164.greenmountainaccess.net] has joined #scheme 23:28:30 DeathByDoubleDip [~DeathByDo@12.145.136.107] has joined #scheme 23:37:31 -!- Khisanth [~Khisanth@50.14.244.111] has quit [Read error: Operation timed out] 23:39:48 groovy2shoes [~guv@unaffiliated/groovebot] has joined #scheme 23:39:59 -!- vraid [50d8e34d@gateway/web/freenode/ip.80.216.227.77] has quit [Ping timeout: 272 seconds] 23:40:15 -!- alexei_ [~amgarchin@p4FD6332B.dip0.t-ipconnect.de] has quit [Quit: Konversation terminated!] 23:40:21 alexei___ [~amgarchin@p4FD6332B.dip0.t-ipconnect.de] has joined #scheme 23:42:32 SrPx [b111729b@gateway/web/freenode/ip.177.17.114.155] has joined #scheme 23:42:42 Is there any scheme compiler that uses arrays instead of lists ? 23:43:12 -!- weinholt [weinholt@debian/emeritus/weinholt] has quit [] 23:43:18 Ie for image processing where a data structure with random access is almost required 23:43:32 all good scheme implementations support vectors 23:45:18 Er... I'd go as far as to say if it doesn't support vectors then /by definition/ it isn't a Scheme implementation :) 23:46:24 LeoNerd: It could be an R2RS implementation! 23:46:35 HEhe 23:46:44 Weeeelll.. OK. I'll accept that 23:46:55 Oh alright. But then I have to make a choice? Why don't it just remove vectors from the specs and let lists->vectors be considered just a compilation optimization? 23:47:07 Because it isn't compiler. It's a real active choice. 23:47:10 LeoNerd: sure, if we want to believe in standards and things, but then we'd need to start worrying about hygienic macros, etc 23:47:22 SrPx: We don't have compilers that smart. 23:47:50 taylanub: how not? I mean just translate all lists into dynamic arrays. It is just a choice of data-structure... 23:48:07 Linked lists vs. vectors have all sorts of tradeoffs. vectors give O(1) random access time, but can't be resized except by an O(n) copy. Linked lists have O(n) random access time, but many other operations are O(1), such as prepend or splice operations. 23:48:29 SrPx: well, scheme code often treats lists and pairs immutably, and shares them wildly 23:48:41 So far we don't have compilers that can guess which operations you want to optimise at the cost of others. 23:48:41 by contrast, we don't do that for vectors 23:49:55 I understand, but vectors and lists are the same semantically so it seems like just something that makes the language specs bigger. Vectors are almost aways faster than lists (even accounting for resizing) and many languages have no list at all (ie python) so I'm certain nobody would even notice if suddenly all lists were implemented as vectors 23:50:26 After all I thought Scheme made a huge point in having a really simple spec. As simple as it can get 23:51:25 Khisanth [~Khisanth@50.14.244.111] has joined #scheme 23:51:26 it is certainly not that 23:51:59 (let* ((x (list 1 2 3)) (y (cons 4 x)) (z (cons 5 x))) (list-set! y 2 'foo) (list-ref z 2)) 23:52:55 Giomancer [~gio@107.201.206.230] has joined #scheme 23:53:02 ijp: ok I get that reasoning 23:53:11 if you wanted to make that work for arrays, you'd need boxes for all the values 23:55:33 tbh I forgot you could mutate things like that 23:56:08 when I was a kid, we were all taught about sharing 23:56:43 rudybot: fp = communism? imperative = objectivist? 23:56:43 ijp: Isn't Jimbo Wales an objectivist? He'd probably tell you off for thinking your morality was anything other than your own self-interest. 23:56:54 is that an argument 23:57:00 SrPx: no 23:57:10 es [~estevocas@249.Red-81-35-221.dynamicIP.rima-tde.net] has joined #scheme 23:57:10 -!- es is now known as estevocastro