00:00:41 MrFahrenheit [~RageOfTho@users-33-252.vinet.ba] has joined #scheme
00:13:52 MononcQc [~Ferd@modemcable062.225-20-96.mc.videotron.ca] has joined #scheme
00:34:18 -!- Checkie [7436@unaffiliated/checkie] has quit [Ping timeout: 252 seconds]
00:42:53 -!- jonrafkind [~jon@c-67-172-254-235.hsd1.ut.comcast.net] has quit [Ping timeout: 246 seconds]
00:48:12 eli, Mailman sent me a welcome message upon my subscription to the users list. This message gave the URI , which gives a 404.
00:49:04 -!- karlw [~karl@75-149-50-209-SFBA.hfc.comcastbusiness.net] has quit [Quit: Computer has gone to sleep]
00:50:16 -!- hadronzoo [~hadronzoo@64.134.146.106] has quit [Quit: hadronzoo]
00:56:45 jonrafkind [~jon@c-67-172-254-235.hsd1.ut.comcast.net] has joined #scheme
01:04:32 sjamaan [~sjamaan@frohike.xs4all.nl] has joined #scheme
01:04:32 -!- sjamaan [~sjamaan@frohike.xs4all.nl] has quit [Changing host]
01:04:32 sjamaan [~sjamaan@netbsd/developer/sjamaan] has joined #scheme
01:08:22 soupdragon [~quantum@unaffiliated/fax] has joined #scheme
01:10:00 hadronzoo [~hadronzoo@ppp-70-251-131-55.dsl.rcsntx.swbell.net] has joined #scheme
01:32:13 -!- MrZen [~dsc@89.211.189.121] has quit [Quit: Don't Panic.]
01:32:13 11111111111111111111111111111111111111111111111111111____
01:34:18 Checkie [15336@unaffiliated/checkie] has joined #scheme
01:34:48 asarch [~asarch@189.188.149.200] has joined #scheme
01:35:18 Michael_Mohamed [~Mohamdu@CPE00222d53fe20-CM00222d53fe1d.cpe.net.cable.rogers.com] has joined #scheme
01:38:25 -!- Mohamdu [~Mohamdu@CPE00222d53fe20-CM00222d53fe1d.cpe.net.cable.rogers.com] has quit [Ping timeout: 264 seconds]
01:39:12 -!- asarch [~asarch@189.188.149.200] has quit [Client Quit]
01:40:52 asarch [~asarch@189.188.149.200] has joined #scheme
01:41:19 -!- hohoho [~hohoho@ntkngw227224.kngw.nt.ftth.ppp.infoweb.ne.jp] has quit [Remote host closed the connection]
01:43:21 homie [~user@xdsl-87-79-49-215.netcologne.de] has joined #scheme
02:01:21 karlw [~karl@75-149-50-209-SFBA.hfc.comcastbusiness.net] has joined #scheme
02:01:45 -!- Checkie [15336@unaffiliated/checkie] has quit [Ping timeout: 252 seconds]
02:03:01 -!- asarch [~asarch@189.188.149.200] has quit [Remote host closed the connection]
02:08:13 where is that visual comparison for languages?
02:08:28 you can't see it?
02:08:34 "how php coders see..."
02:08:53 *karlw* sighs
02:09:54 I know you know what I knew you knew I ment
02:18:36 -!- tessier [~treed@mail.copilotco.com] has quit [Changing host]
02:18:36 tessier [~treed@kernel-panic/copilotco] has joined #scheme
02:27:32 RageOfThou [~RageOfTho@users-55-104.vinet.ba] has joined #scheme
02:31:20 -!- MrFahrenheit [~RageOfTho@users-33-252.vinet.ba] has quit [Ping timeout: 265 seconds]
02:45:03 davazp [~user@83.55.180.105] has joined #scheme
02:58:19 -!- bgs100 [~ian@unaffiliated/bgs100] has quit [Quit: Leaving]
03:11:10 toast` [~toast`@c-71-231-102-232.hsd1.wa.comcast.net] has joined #scheme
03:11:14 -!- toast` [~toast`@c-71-231-102-232.hsd1.wa.comcast.net] has left #scheme
03:11:27 -!- hadronzoo [~hadronzoo@ppp-70-251-131-55.dsl.rcsntx.swbell.net] has quit [Ping timeout: 265 seconds]
03:15:52 hadronzoo [~hadronzoo@ppp-70-251-75-4.dsl.rcsntx.swbell.net] has joined #scheme
03:20:55 -!- RageOfThou [~RageOfTho@users-55-104.vinet.ba] has quit [Ping timeout: 252 seconds]
03:32:27 kilimanjaro [~kilimanja@unaffiliated/kilimanjaro] has joined #scheme
03:34:58 -!- soupdragon [~quantum@unaffiliated/fax] has quit [Quit: soupdragon]
03:39:04 sunnyps [~sunny@45.snat-111-91-110.hns.net.in] has joined #scheme
03:39:45 -!- sunnyps [~sunny@45.snat-111-91-110.hns.net.in] has quit [Client Quit]
03:40:02 sunnyps [~sunny@45.snat-111-91-110.hns.net.in] has joined #scheme
04:10:48 asarch [~asarch@189.188.149.200] has joined #scheme
04:18:35 -!- luz [~davids@189.60.69.82] has quit [Quit: Client exiting]
04:21:23 -!- asarch [~asarch@189.188.149.200] has quit [Quit: Leaving]
04:39:51 jcowan [~John@cpe-98-14-172-204.nyc.res.rr.com] has joined #scheme
04:42:09 Boo.
04:45:21 katesmith [~katesmith@unaffiliated/costume] has joined #scheme
04:48:53 Boo^U2
04:50:45 Boo^(pi*i)
04:55:20 -!- sladegen [~nemo@unaffiliated/sladegen] has quit [Ping timeout: 248 seconds]
04:55:29 sladegen [~nemo@unaffiliated/sladegen] has joined #scheme
04:57:27 Hmm. I don't really know why you'd want to be able to invoke the current condition handler as an ordinary procedure.
04:57:44 But it might be useful as a building-block for some different kind of condition system.
05:00:58 malcolmci [~malcolmci@203.171.96.17.static.rev.aanet.com.au] has joined #scheme
05:03:48 Consider the following use of condition handlers:
05:04:33 (with-handler general-foo-handler (lambda () (with-handler particular-foo-handler procedure)))
05:06:11 Inside the dynamic extent of the call to PROCEDURE, the current condition handler is not useful for handling foo conditions. Only the stack of condition handlers as a whole is useful for it.
05:06:46 Checkie [14348@unaffiliated/checkie] has joined #scheme
05:06:58 Even worse, suppose the inner handler signals a condition that it expects the outer handler to handle.
05:07:36 Well, how about exposing the whole stack as a list, then? That would allow you to modify their behavior arbitrarily.
05:07:51 How about showing examples of real programs that use this?
05:22:58 KevinDHaX0r [439f2c33@gateway/web/freenode/ip.67.159.44.51] has joined #scheme
05:25:21 -!- davazp [~user@83.55.180.105] has quit [Read error: Connection reset by peer]
05:27:04 By the way, Google Groups bounced my reply to you, with message-id <20100710232044.3992498284@pluto.mumble.net>.
05:28:59 ...er.
05:28:59 is their is lisp bot here that will allow me to evaluate code?
05:29:00 Not that one..
05:29:12 This one: <20100710224515.7259F98284@pluto.mumble.net>.
05:30:57 rat_ [~quassel@c-24-22-21-120.hsd1.or.comcast.net] has joined #scheme
05:42:01 -!- Riastradh [~riastradh@fsf/member/riastradh] has quit [Quit: leaving]
05:43:07 -!- hadronzoo [~hadronzoo@ppp-70-251-75-4.dsl.rcsntx.swbell.net] has quit [Quit: hadronzoo]
05:48:12 How many people here use the Y-Combinator.
05:58:21 gravicappa [~gravicapp@91.78.228.203] has joined #scheme
06:00:58 Jafet [~Jafet@unaffiliated/jafet] has joined #scheme
06:04:20 KevinDHaX0r, the y combinator is not really a practical tool that people use in daily life
06:08:53 I need it because I am using a lisp bot that does not allow me to define functions. I am using it to allow me to write recursive functions in that limited bot.
06:16:24 -!- KevinDHaX0r [439f2c33@gateway/web/freenode/ip.67.159.44.51] has left #scheme
06:28:31 -!- MononcQc [~Ferd@modemcable062.225-20-96.mc.videotron.ca] has quit [Quit: Leaving]
06:30:13 let there be let.
06:30:37 cpr420 [~cpr@unaffiliated/cpr420] has joined #scheme
06:30:54 -!- karlw [~karl@75-149-50-209-SFBA.hfc.comcastbusiness.net] has left #scheme
06:43:35 -!- jcowan [~John@cpe-98-14-172-204.nyc.res.rr.com] has quit [Quit: Leaving]
06:51:48 -!- jonrafkind [~jon@c-67-172-254-235.hsd1.ut.comcast.net] has quit [Ping timeout: 260 seconds]
07:22:51 -!- malcolmci [~malcolmci@203.171.96.17.static.rev.aanet.com.au] has quit [Quit: Leaving]
07:29:18 hadronzoo [~hadronzoo@ppp-70-251-75-4.dsl.rcsntx.swbell.net] has joined #scheme
07:31:24 -!- hadronzoo [~hadronzoo@ppp-70-251-75-4.dsl.rcsntx.swbell.net] has quit [Client Quit]
07:33:25 -!- homie [~user@xdsl-87-79-49-215.netcologne.de] has quit [Quit: ERC Version 5.3 (IRC client for Emacs)]
07:38:26 homie [~user@xdsl-87-79-49-215.netcologne.de] has joined #scheme
07:52:31 masm [~masm@2.80.151.206] has joined #scheme
08:01:06 -!- rat_ [~quassel@c-24-22-21-120.hsd1.or.comcast.net] has quit [Remote host closed the connection]
08:11:20 wingo [~wingo@83.32.65.144] has joined #scheme
08:18:45 -!- drwho [~drwho@c-76-124-164-157.hsd1.pa.comcast.net] has quit [Remote host closed the connection]
08:42:52 fradgers- [~fradgers-@5adb10a1.bb.sky.com] has joined #scheme
08:47:19 -!- kilimanjaro [~kilimanja@unaffiliated/kilimanjaro] has quit [Remote host closed the connection]
09:07:46 jewel [~jewel@196-210-134-12.dynamic.isadsl.co.za] has joined #scheme
09:41:54 -!- leppie [~lolcow@196-215-36-144.dynamic.isadsl.co.za] has quit [Ping timeout: 240 seconds]
09:46:04 hotblack23 [~jh@p4FC598F4.dip.t-dialin.net] has joined #scheme
09:50:27 Blkt [~user@dynamic-adsl-94-37-236-62.clienti.tiscali.it] has joined #scheme
09:51:28 hhomar [~hhomar@92.26.153.167] has joined #scheme
09:52:51 good day everyone
10:10:01 -!- jmcphers [~jmcphers@218.185.108.156] has quit [Remote host closed the connection]
10:11:53 -!- Nshag [user@lns-bzn-36-82-251-61-22.adsl.proxad.net] has quit [Read error: Operation timed out]
10:22:42 -!- homie [~user@xdsl-87-79-49-215.netcologne.de] has quit [Read error: Connection reset by peer]
10:38:06 Nshag [user@lns-bzn-44-82-249-193-94.adsl.proxad.net] has joined #scheme
10:49:57 slom [~slom@pD9EB5099.dip.t-dialin.net] has joined #scheme
10:51:55 good day
11:04:41 -!- xwl [~user@125.34.169.83] has quit [Remote host closed the connection]
11:10:40 xwl [~user@125.34.169.83] has joined #scheme
11:31:54 homie [~user@xdsl-87-79-191-120.netcologne.de] has joined #scheme
11:46:30 -!- sunnyps [~sunny@45.snat-111-91-110.hns.net.in] has quit [Remote host closed the connection]
11:49:09 -!- homie [~user@xdsl-87-79-191-120.netcologne.de] has quit [Quit: ERC Version 5.3 (IRC client for Emacs)]
11:50:09 -!- slom [~slom@pD9EB5099.dip.t-dialin.net] has quit [Remote host closed the connection]
11:50:59 slom [~slom@pD9EB5099.dip.t-dialin.net] has joined #scheme
11:55:40 MrFahrenheit [~RageOfTho@users-55-92.vinet.ba] has joined #scheme
11:55:57 -!- ASau [~user@83.69.227.32] has quit [Read error: Connection reset by peer]
12:02:11 homie [~user@xdsl-87-79-191-120.netcologne.de] has joined #scheme
12:13:00 -!- slom [~slom@pD9EB5099.dip.t-dialin.net] has quit [Remote host closed the connection]
12:14:48 -!- Jafet [~Jafet@unaffiliated/jafet] has quit [Remote host closed the connection]
12:24:59 Jafet [~Jafet@unaffiliated/jafet] has joined #scheme
12:29:16 ASau [~user@83.69.227.32] has joined #scheme
12:36:20 kingping_ [~kp@95.70.85.123] has joined #scheme
12:36:24 Hello
12:45:15 -!- Jafet [~Jafet@unaffiliated/jafet] has quit [Ping timeout: 240 seconds]
12:47:37 schmir [~schmir@p54A91858.dip0.t-ipconnect.de] has joined #scheme
12:48:12 Jafet [~Jafet@unaffiliated/jafet] has joined #scheme
12:51:18 hi all. i just wrote my first scheme program, and wanted to get some opinions : http://codepad.org/6IMMaM2Z
12:57:08 -!- ASau [~user@83.69.227.32] has quit [Remote host closed the connection]
12:59:21 -!- schmir [~schmir@p54A91858.dip0.t-ipconnect.de] has quit [Ping timeout: 240 seconds]
13:00:44 -!- kingping_ [~kp@95.70.85.123] has quit [Quit: x]
13:01:15 ASau [~user@83.69.227.32] has joined #scheme
13:04:30 -!- ASau [~user@83.69.227.32] has quit [Remote host closed the connection]
13:06:25 ASau [~user@83.69.227.32] has joined #scheme
13:09:16 -!- ASau [~user@83.69.227.32] has quit [Remote host closed the connection]
13:09:39 leppie [~lolcow@196-215-36-144.dynamic.isadsl.co.za] has joined #scheme
13:11:09 angstrom: looks just fine to me! If you want an exercise you could try making both functions tail recursive
13:13:12 ASau [~user@83.69.227.32] has joined #scheme
13:14:39 -!- Jafet [~Jafet@unaffiliated/jafet] has quit [Read error: Connection reset by peer]
13:14:59 andreer: looks complicated. but i'll give it a try.
13:15:17 Jafet [~Jafet@unaffiliated/jafet] has joined #scheme
13:16:51 -!- ASau [~user@83.69.227.32] has quit [Remote host closed the connection]
13:17:59 ASau [~user@83.69.227.32] has joined #scheme
13:19:31 MononcQc [~Ferd@modemcable062.225-20-96.mc.videotron.ca] has joined #scheme
13:20:29 chittoor [~chittoor@117.204.53.46] has joined #scheme
13:22:52 kenpp [~kenpp@188-222-117-86.zone13.bethere.co.uk] has joined #scheme
13:23:32 -!- Blkt [~user@dynamic-adsl-94-37-236-62.clienti.tiscali.it] has quit [Read error: Connection reset by peer]
13:23:58 bgs100 [~ian@h106.238.22.98.dynamic.ip.windstream.net] has joined #scheme
13:24:01 -!- bgs100 [~ian@h106.238.22.98.dynamic.ip.windstream.net] has quit [Changing host]
13:24:01 bgs100 [~ian@unaffiliated/bgs100] has joined #scheme
13:30:00 -!- katesmith [~katesmith@unaffiliated/costume] has quit [Quit: Leaving]
13:36:28 alvatar [~alvatar@95.127.222.87.dynamic.jazztel.es] has joined #scheme
13:36:32 sunnyps [~sunny@225.snat-111-91-106.hns.net.in] has joined #scheme
13:37:42 lvillani [~lvillani@fedora/lvillani] has joined #scheme
13:43:31 slom_ [~slom@pD9EB5099.dip.t-dialin.net] has joined #scheme
13:45:45 -!- acarrico [~acarrico@pppoe-68-142-61-242.gmavt.net] has quit [Ping timeout: 240 seconds]
13:57:10 -!- chittoor [~chittoor@117.204.53.46] has quit [Ping timeout: 265 seconds]
14:22:36 dzhus [~sphinx@95-26-7-206.broadband.corbina.ru] has joined #scheme
14:27:13 tone12345 [bc52292f@gateway/web/freenode/ip.188.82.41.47] has joined #scheme
14:29:17 hohoho [~hohoho@ntkngw227224.kngw.nt.ftth.ppp.infoweb.ne.jp] has joined #scheme
14:34:23 -!- jewel [~jewel@196-210-134-12.dynamic.isadsl.co.za] has quit [Ping timeout: 265 seconds]
14:36:12 -!- slom_ [~slom@pD9EB5099.dip.t-dialin.net] has quit [Remote host closed the connection]
14:40:01 Blkt [~user@dynamic-adsl-94-37-236-62.clienti.tiscali.it] has joined #scheme
14:44:22 I know C and i want to learn a functional language, SICP is a good book?
14:44:28 -!- xwl [~user@125.34.169.83] has quit [Ping timeout: 258 seconds]
14:45:57 It is a good book, but whether you can learn a functional language is another thing
14:47:08 Jafet: ??
14:47:35 If you find it inscrutable, there is htdp.
14:49:46 but SICP is better than htdp?
14:58:29 Better for what?
14:59:23 for getting the concepts
15:00:02 ...the concepts of scheme? Either is fine
15:03:37 -!- tone12345 [bc52292f@gateway/web/freenode/ip.188.82.41.47] has quit [Quit: Page closed]
15:08:10 chittoor [~chittoor@117.204.52.34] has joined #scheme
15:16:18 Blkt` [~user@dynamic-adsl-78-13-243-213.clienti.tiscali.it] has joined #scheme
15:19:52 -!- Blkt [~user@dynamic-adsl-94-37-236-62.clienti.tiscali.it] has quit [Ping timeout: 248 seconds]
15:28:27 luz [~davids@189.60.69.82] has joined #scheme
15:29:33 -!- Blkt` is now known as Blkt
15:40:59 rtra [~rtra@unaffiliated/rtra] has joined #scheme
15:48:04 Endiannes [~Endi@cdma-92-36-94-2.msk.skylink.ru] has joined #scheme
15:48:26 katesmith [~katesmith@unaffiliated/costume] has joined #scheme
16:08:14 -!- hotblack23 [~jh@p4FC598F4.dip.t-dialin.net] has quit [Quit: Leaving.]
16:16:48 soupdragon [~quantum@unaffiliated/fax] has joined #scheme
16:28:43 -!- dzhus [~sphinx@95-26-7-206.broadband.corbina.ru] has quit [Ping timeout: 260 seconds]
16:33:23 -!- Endiannes [~Endi@cdma-92-36-94-2.msk.skylink.ru] has quit [Ping timeout: 260 seconds]
16:37:13 -!- gravicappa [~gravicapp@91.78.228.203] has quit [Ping timeout: 264 seconds]
16:38:53 jonrafkind [~jon@c-67-172-254-235.hsd1.ut.comcast.net] has joined #scheme
16:39:55 Endiannes [~Endi@cdma-92-36-94-2.msk.skylink.ru] has joined #scheme
16:40:37 -!- Jafet [~Jafet@unaffiliated/jafet] has quit [Ping timeout: 258 seconds]
16:43:18 gravicappa [~gravicapp@ppp85-140-116-152.pppoe.mtu-net.ru] has joined #scheme
16:44:38 -!- hohoho [~hohoho@ntkngw227224.kngw.nt.ftth.ppp.infoweb.ne.jp] has quit [Remote host closed the connection]
16:50:19 Riastradh [~riastradh@fsf/member/riastradh] has joined #scheme
16:51:11 Should DYNAMIC-WIND allow multiple simultaneous entrances in different threads, or should it prohibit that, and should there be a separate operation that can be used to explicitly allow it, when it is known that the state modified by the winding and unwinding procedures is thread-local?
16:55:13 -!- e-future [~e-future@unaffiliated/sergio/x-8197433] has quit [Ping timeout: 264 seconds]
16:58:46 -!- sunnyps [~sunny@225.snat-111-91-106.hns.net.in] has quit [Quit: Ex-Chat]
17:20:17 -!- dfeuer [~dfeuer@wikimedia/Dfeuer] has quit [Ping timeout: 245 seconds]
17:43:13 *rtra* wonders how's TDD looked upon by the scheme/lisp community, in general
17:43:18 So I don't know most of the folks I see in this channel, most of whom just lurk, as far as I've observed. What do you all do with Scheme?
17:43:33 Oh, hi!
17:43:41 i learn it
17:43:49 currently building a website with the sceme webserver.
17:43:50 scheme
17:43:53 for simulation
17:43:56 rtra, there is no more general consensus in `the Scheme/Lisp community' than there is in the `programming community' in general.
17:44:28 BDD
17:45:09 rtra, that said, many Lisp programmers use perhaps not test-driven development, but something like it: exploratory programming, where you build up programs out of little pieces that you run at the REPL immediately.
17:46:02 This is especially so in cases where it is not clear a priori what the program is going to look like, or even what the sublanguage you will use to write the program will look like, rendering it impossible to write tests a priori.
17:46:16 ive actually written my own test frameword
17:46:18 *k
17:46:23 I use scheme to compute answers to things
17:46:54 Riastradh: well how you actually build the code and testing are two diff components imo
17:47:01 csmrfx, what sort of simulations? What's BDD?
17:48:05 Social simulations, how cash flows in a community.. BDD is behaviour driven developement
17:48:27 would do AI with it too, but I am not smart enough!!
17:50:41 maybe if I just define the right parameters in the simulation, ai will emerge...
17:54:37 How come you folks always seem to lurk when I'm around?
17:54:40 as for the lurking, i'm a noob who has done some lovely scheming on univ, then dropped out after burning out with my delayed sleep syndrome and got as far from computers as i could for a few years. I'm now coming back to programming. I'm currently focusing on ruby because it seems to be the least painful way of making some bucks in the near-future. My interest in scheme and PLs in general is something I want to deepen after I secure
17:54:40 some financial security, so... nothing to say for now, but i sure drop in the occasional knowledge bit on my ~/.notes from this channel
17:55:30 -!- MrFahrenheit [~RageOfTho@users-55-92.vinet.ba] has quit [Read error: No route to host]
17:55:49 MrFahrenheit [~RageOfTho@users-55-92.vinet.ba] has joined #scheme
17:55:52 What are some interesting things you've put in your notes, rtra? Do you have any questions about them?
17:58:49 hi
17:59:07 Hi, soupdragon. What sort of things do you use Scheme to compute answers to?
17:59:23 Riastradh Sussmans & Wisdoms book
17:59:47 Riastradh: did you ever teach at a university?
17:59:50 That's a nice book.
18:00:19 In a sense, perhaps, but I am not a professor or anything.
18:00:28 if you allow me, i have been wondering if something like rvm is not missed by lisp people
18:00:41 What's rvm, rtra?
18:00:42 rvm seems really powerful and useful
18:00:42 I was just wondering if all the kids are very complacenent and act like they don't want to understand anything
18:01:04 Royal Victorian Medals?
18:01:14 rvm takes care of installing and using different versions of ruby interpreters
18:01:19 "RVM is a command line tool which allows us to easily install, manage and work with multiple ruby environments from interpreters to sets of gems"
18:01:23 I don't miss it because I never heard of it
18:01:44 -!- wingo [~wingo@83.32.65.144] has quit [Ping timeout: 265 seconds]
18:02:16 Riastradh: so what you do wit it?
18:02:34 give or take a few 'do's
18:03:37 Well, these days, I am not doing very much with Scheme, although apparently I have gotten roped into contributing to the Scheme working groups, at least on minor matters.
18:04:34 I dont really program in any language anymore
18:04:36 I use Scheme for various personal purposes -- for example, my editor and mail client is written in Scheme.
18:07:09 When I need to crunch numbers, I typically use Scheme to do so, because it is the nice language with the fastest usable implementation of which I am aware for numerical purposes. This may sound strange, and you may suggest Matlab or similar, but (1) although Matlab is reasonably high-level, it is not a very nice language, and (2) the implementation of Matlab is terrible.
18:07:09 ok
18:08:02 I hate matlab lol
18:08:10 I had to use it in classes
18:08:12 well if you can use it for 'stuff' it must be working
18:08:25 (I mean scheme)
18:08:43 (The only reason that some programs in Matlab run fast is that the real meat of those programs is really written in Fortran or C. If you wrote it in Matlab, it would be unusably slow.)
18:09:11 Riastradh: do you implement your own math routines or are you using a lib, or?
18:09:13 (The same is true of other environments, such as, say, Python with NumPy/SciPy, too.)
18:09:23 I would like to write my own CAS but my struggle is that the more code I wrote the more worry there is about errors
18:09:33 rtra, sometimes I implement my own; sometimes I steal code from sources such as scmutils.
18:09:57 for example if you implement a new type of number, the algorithms do not know whether this number system has associativity or not
18:10:32 schmir [~schmir@p54A90B4E.dip0.t-ipconnect.de] has joined #scheme
18:10:39 I don't really understand how people can write such a large program which works well
18:11:36 hohoho [~hohoho@ntkngw227224.kngw.nt.ftth.ppp.infoweb.ne.jp] has joined #scheme
18:12:40 So what do you folks think about DYNAMIC-WIND and threads?
18:13:38 I need to write an engine with proper threading
18:13:53 and it is slightly mind boggling
18:16:44 -!- hhomar [~hhomar@92.26.153.167] has quit [Quit: WeeChat 0.3.2]
18:17:25 -!- schmir [~schmir@p54A90B4E.dip0.t-ipconnect.de] has quit [Ping timeout: 264 seconds]
18:20:53 Blkt` [~user@dynamic-adsl-78-13-243-213.clienti.tiscali.it] has joined #scheme
18:23:36 Riastradh: do you have an opinion on R, btw?
18:23:51 No. I have never used it.
18:24:27 -!- Blkt [~user@dynamic-adsl-78-13-243-213.clienti.tiscali.it] has quit [Ping timeout: 245 seconds]
18:24:42 Blkt`` [~user@dynamic-adsl-78-13-243-213.clienti.tiscali.it] has joined #scheme
18:27:05 Riastradh: it might be an interesting alternative to number-crunching in scheme; it actually was implemented in scheme (originally), and still has some nice functional artifacts.
18:27:30 beyond that, the libraries are supposedly unequaled.
18:27:37 Does it have a native-code compiler capable of open-coding floating-point arithmetic without boxing?
18:28:05 nope; one has to descend into C (much like matlab).
18:28:22 stis [~stis@1-1-1-39a.veo.vs.bostream.se] has joined #scheme
18:28:32 And does it have a compiler that does a good job at closure analysis?
18:28:43 -!- Blkt` [~user@dynamic-adsl-78-13-243-213.clienti.tiscali.it] has quit [Ping timeout: 258 seconds]
18:29:42 MIT Scheme has both. The unboxing part is not as nice as I'd like, and perhaps some day I'll adapt the compiler to make it much nicer, but it's still decent enough for many purposes.
18:31:20 What MIT Scheme doesn't have is generic arithmetic for which floating-point numbers are still unboxed, but neither does anyone else (yet).
18:33:12 drwho [~drwho@c-76-124-164-157.hsd1.pa.comcast.net] has joined #scheme
18:33:44 no compiler, of course. R's main virtues are that it 1) prevents you from reimplementing e.g. polynomial regression fitting for the nth time, 2) has reasonable functional semantics, 3) has a Lisp-like C interface (greenspun's 10th).
18:33:49 karlw [~karl@75-149-50-209-SFBA.hfc.comcastbusiness.net] has joined #scheme
18:34:00 as long as you don't mind reimplemting the core algorithms, though, scheme wins on all accounts.
18:34:53 SLIB seems to have done some of that work, anyway.
18:34:59 Is there a Scheme that natively supports Active Directory?
18:35:46 karlw: "native", as in: not over FFI?
18:36:32 Or, I don't have to worry about FFI.
18:36:33 What's Active Directory?
18:36:47 karlw: http://www.bowron.us/?p=348
18:36:49 FFI, though.
18:37:07 -!- ToxicFrog [~ToxicFrog@2607:f2c0:f00e:500:222:15ff:fe91:b24c] has quit [Ping timeout: 276 seconds]
18:37:12 Microsoft's implementation of LDAP.
18:38:56 I could use IronScheme and bind it to the C# libraries.
18:40:58 Apparently, MS said it would officially support a Lisp dialect in .NET but never got around to it.
18:44:30 *sjamaan* chuckles
18:47:14 Like the Kin
18:47:32 -!- lvillani [~lvillani@fedora/lvillani] has quit [Quit: Leaving]
18:48:02 Komi [Komi@83.231.89.76] has joined #scheme
18:48:09 hi
18:48:16 Hi.
18:48:24 Riastradh: hello
18:49:06 Komi: Do you have a question?
18:50:05 karlw: there is a discount if i have many?
18:50:07 :)
18:50:14 alexsura1i [~alex@pool-71-188-133-67.aubnin.fios.verizon.net] has joined #scheme
18:51:17 Yes, but it doesn't matter since I charge a flat rate of 0 USD per question.
18:52:15 Oh, but it's all eur here!
18:53:23 According to current conversion rates 0 USD is 0 EUR.
18:53:35 :)
18:53:57 Well, here is one question anyway:
18:54:30 is there some way to capture the lexical environment of a given closure for debugging purposes?
18:54:40 in particular, i would like to do this:
18:55:04 (define (some-closure args) (if (something) (start-repl-in-this-environment) ...)
18:55:21 so i can examine the bindings
18:56:06 Which implementation do you use?
18:56:16 PLT Racket and SISC mostly
18:56:37 kilimanjaro [~kilimanja@unaffiliated/kilimanjaro] has joined #scheme
18:58:56 Komi, it may be possible to write a macro that examines the lexical environment and generates an expression to reify it.
18:59:39 I'm guessing you should use an implementation with first-class environments, like MIT Scheme.
19:01:04 Riastradh: how would the macro work?
19:01:54 Almost every Scheme system has first-class environments, karlw.
19:02:43 -!- kilimanjaro [~kilimanja@unaffiliated/kilimanjaro] has quit [Remote host closed the connection]
19:03:18 Komi, first, find whether there is an operation to map a syntax object to a list of names bound or a list of bindings in that syntax object's lexical environment.
19:05:16 (In MIT Scheme, incidentally, there is no operation to go from a syntactic environment (or a syntactic closure, which is approximately the analogue of a syntax object) to such a list of names or bindings.)
19:12:09 the concept of syntactic closures seems interesting
19:17:34 I found using syntactic closures painful
19:20:19 hadronzoo [~hadronzoo@adsl-209-30-46-234.dsl.rcsntx.sbcglobal.net] has joined #scheme
19:23:50 -!- alvatar [~alvatar@95.127.222.87.dynamic.jazztel.es] has quit [Quit: leaving]
19:25:02 i think there are a lot of interesting applications to first-class environments besides debugging
19:25:25 but not the ones provided by R5RS
19:25:58 Remember: `first-class environment' just means a first-class object representing a lexical environment, not necessarily an operation in a program that reifies the lexical environment surrounding the use of the operation. Such an operation yields a first-class environment, but is not the only way to obtain one.
19:26:36 Every Scheme system usually has some first-class representation of environments inside it, and usually this is exposed in some capacity to users of the system.
19:26:56 let's consider a Scheme that exposes all possible operations in environments
19:27:27 creating them, defining new variables in them, mutate them and so on
19:28:01 For example, in MIT Scheme, I can run a REPL in a fresh environment that has only the exposed bindings of MIT Scheme, and in which definitions do not affect any other environments: (repl/start (push-repl (extend-top-level-environment system-global-environment))).
19:28:31 that's more close to what i want
19:28:41 Sure. Most Scheme systems provide this. In MIT Scheme, there's an ENVIRONMENT-DEFINE procedure, an ENVIRONMENT-LOOKUP procedure, and so on. In Scheme48, there's an ENVIRONMENT-DEFINE!, an ENVIRONMENT-REF, and so on.
19:30:01 Gödel was an asshole, for the record
19:30:30 are there any Scheme's that provide both lexical and dynamic scope and that first-class environments?
19:32:36 some applications i can think of that would be:
19:33:06 In most Scheme systems, dynamically scoped bindings are expressed through first-class objects, which might be found as the values of lexical variables. For example, Scheme48 provides objects called fluids, a procedure (FLUID ) which returns 's current value, and a procedure (LET-FLUID ) which lets the value of be for the dynamic extent of a call to .
19:33:43 debugging, shared networked repls (each user on his own environment, global is shared), lexically-scoped modules/namespaces, etc
19:34:10 but there is one particular thing i'm interested the most
19:34:35 an OO system based on both dynamic/lexical scopes and first-class environments
19:34:36 Sure. For example, SLIME48 could do something like that.
19:34:51 (networked and shared REPLs)
19:35:06 (or rather, networked REPLs on a common Scheme system)
19:35:07 Slime48 is like Slime but for Scheme48?
19:35:35 Yes. It doesn't work any more -- I stopped maintaining it several years ago when upstream SLIME changed in ways I wasn't happy with.
19:36:13 about the OO thing...
19:36:33 As for building data abstractions with first-class environments, MIT Scheme did that a long time ago. For example, one might define pairs as follows:
19:36:44 (define (cons car cdr) (the-environment))
19:36:51 (define (car pair) (access car pair))
19:36:57 (define (cdr pair) (access cdr pair))
19:37:04 (define (set-car! pair a) (set! (access car pair) a))
19:37:11 Here THE-ENVIRONMENT and ACCESS are primitive syntax.
19:37:57 may not be the most efficient representation but it's interesting
19:38:09 The problem with building programs this way is that it makes programs very, very hard to reason about, and impossible to compile in order to run them efficiently.
19:38:42 mmm, consider R5RS augmented with the following forms:
19:38:58 So around the latter half of the eighties, when the second iteration of LIAR, the compiler, was under development, they decided to drop THE-ENVIRONMENT and build programs differently.
19:39:12 (new [optional parent]) : creates a new environment with parent as well, it's parent or the current environment if none specified
19:39:47 (in environment) : evaluates all the following forms in the environment specified
19:40:01 (not different to eval with second parameter though)
19:40:09 and:
19:40:32 (dynamic! (lambda ...)) : makes the closure use dynamic scope instead of lexical scope
19:41:10 it's often been said that closures are poor man objects or objects are poor man closures and so on
19:41:18 i think environments are the most similar thing to objects
19:41:31 because they not only have state but also inheritance
19:41:53 consider:
19:42:08 (define point (in (new)
19:42:12 (define x ...)
19:42:16 (define y ...)
19:42:56 (In MIT Scheme, your IN was called IN-PACKAGE.)
19:43:07 (define method (dynamic! (lambda () (* x y)))))
19:43:11 and now:
19:43:29 (define my-point (in (new point)
19:43:33 (define x 20)
19:43:36 (define y 30))
19:44:02 (in my-point (method)) would return 600 because the closure uses dynamic scope
19:44:12 and resolves the variables in the current "object"
19:44:17 Objects are a useful abstraction, it doesn't matter how they're implemented (as long as it's done well).
19:44:30 Before you go on, first let me note that there is no general definition of `object-oriented programming' that everyone agrees on -- the situation is nowhere close to that. See . (When I say `object', all I mean is something that can be stored in a variable, passed to or returned from a procedure, and so on.)
19:45:12 well, the point here is: without any notion of OO in the language itself
19:45:33 and just mechanisms to provide first-class environments and both lexical/dynamic scope
19:45:53 Okay, point taken.
19:45:57 you can easily model and OO system like that of C# or Java (not that i think those models are the best in the world)
19:45:57 but it's interesting
19:46:59 I'm going to skip ahead over a discussion of the meaning of `object-oriented' for a moment, but don't forget that. I don't think dynamic scope is really what you want here. Example: I want to write a method that iterates over a list, doing something with some instance variable.
19:47:52 (in (new) (define proc (spawn-me-up-a-process)) (define kill-it (dynamic! (lambda (signals) (for-each (lambda (signal) (kill proc signal)) signals]
19:48:05 Problem: Here's how we defined FOR-EACH: (define (for-each proc list) ...)
19:49:04 why is this a problem?
19:49:17 (sorry i'm re-reading trying to understand)
19:49:51 I wanted to refer to the instance variable called PROC, to send a signal to the process, but inside the procedure I passed to FOR-EACH, I passed *that*procedure* to the kill system call, because FOR-EACH also had a local variable called PROC.
19:50:20 Really, dynamic scope in the literal sense -- where the *meaning* of a name (in the case of a variable, the location where you find its value) depends on the time at which you use the name -- is a mistake.
19:51:20 The problem is that the implementations of abstractions leak left and right all over the place. The mere names that you use for local variables affect the use of the abstraction.
19:51:23 but for-each would be lexical
19:51:23 not dynamic
19:51:31 so no worries here
19:52:20 Can you be more specific about what function DYNAMIC! serves?
19:53:10 Here is a trivial implementation of a method-dispatching object constructor that uses a macro called DISPATCHER. I'll give the definition of DISPATCHER in a moment, but here's an example of its use:
19:53:53 (define (make-point x-pos y-pos) (define (x) x-pos) (define (y) y-pos) (define (move dx dy) (set! x-pos (+ x-pos dx)) (set! y-pos (+ y-pos dy))) (dispatcher x y move))
19:53:54 abusead [~abusead@CPE001cf068222b-CM0014e825df0e.cpe.net.cable.rogers.com] has joined #scheme
19:54:24 Here's how I might use this: (let ((p (make-point 0 0))) ((p 'move) 1 2) (list ((p 'x)) ((p 'y)))) ;Value: (1 2)
19:54:38 dynamic! makes a closure use dynamic scope for it's bindings
19:54:56 for example:
19:55:06 Now, DISPATCHER is very mundane. All that it does is to expand into this: (lambda (name) (case name ((x) x) ((y) y) ((move) move) (else (error "Unknown method:" name]
19:55:23 There is no need for dynamic scope, first-class environments, or anything of the sort, in order to make this work.
19:55:37 (define square-some-free-variable (lambda () (* x x)))
19:55:47 (dynamic! square-some...)
19:56:05 This is a common idiom in Scheme. Can you explain what makes the idiom you're looking for different?
19:56:15 square-some... would resolve 'x' in the current environment, not in the one it was defined
19:58:00 it's the combination of both dynamic/lexical scope that would give you control to define "static" methods and "overriden" ones and how their bindings are resolved in the child or the parent "object"
19:58:23 the dispatcher way to do it it's also interesting
19:58:31 but how would i express inheritance with it?
19:58:49 ToxicFrog [~ToxicFrog@2607:f2c0:f00e:500:222:15ff:fe91:b24c] has joined #scheme
19:59:33 ouch, i have to go take dinner
19:59:53 Riastradh: this conversation has been very interesting, thank you a lot :)
19:59:53 Instead of calling ERROR in the ELSE clause of the CASE, call another dispatcher.
20:00:25 oh, i would never thought of doing that
20:00:32 i may try and play with it
20:00:42 thanks again, have to go
20:00:44 Before you go, look for, or remember to look for, a paper by Jonathan Rees and Norman Adams called something rather bland like `OOP in Scheme', from about 1988.
20:01:00 i'll look for it in the readscheme website
20:01:02 :)
20:01:08 -!- Komi [Komi@83.231.89.76] has left #scheme
20:01:41 Mkman [~tiago@bl17-41-47.dsl.telepac.pt] has joined #scheme
20:07:13 -!- karlw [~karl@75-149-50-209-SFBA.hfc.comcastbusiness.net] has quit [Quit: Computer has gone to sleep]
20:27:36 -!- hohoho [~hohoho@ntkngw227224.kngw.nt.ftth.ppp.infoweb.ne.jp] has quit [Remote host closed the connection]
20:32:09 hohoho [~hohoho@ntkngw227224.kngw.nt.ftth.ppp.infoweb.ne.jp] has joined #scheme
20:39:17 -!- Endiannes [~Endi@cdma-92-36-94-2.msk.skylink.ru] has quit [Quit: C++4ever.]
20:42:26 -!- rtra [~rtra@unaffiliated/rtra] has quit [Read error: Operation timed out]
20:53:38 -!- chittoor [~chittoor@117.204.52.34] has quit [Quit: Leaving]
20:53:44 -!- Blkt`` [~user@dynamic-adsl-78-13-243-213.clienti.tiscali.it] has quit [Ping timeout: 260 seconds]
20:58:27 -!- hohoho [~hohoho@ntkngw227224.kngw.nt.ftth.ppp.infoweb.ne.jp] has quit [Remote host closed the connection]
21:00:43 jmcphers [~jmcphers@218.185.108.156] has joined #scheme
21:02:33 -!- kniu [~kniu@pool-71-106-7-247.lsanca.dsl-w.verizon.net] has quit [Read error: Connection reset by peer]
21:03:23 kniu [~kniu@pool-71-106-7-247.lsanca.dsl-w.verizon.net] has joined #scheme
21:07:54 -!- TR2N [email@89-180-179-16.net.novis.pt] has quit [Quit: Time left until the Epochalypse: 27yrs 27wks 2days 12hrs 5mins 58secs]
21:09:03 Blkt`` [~user@dynamic-adsl-78-13-243-213.clienti.tiscali.it] has joined #scheme
21:09:44 -!- alexsura1i [~alex@pool-71-188-133-67.aubnin.fios.verizon.net] has quit [Quit: Lost terminal]
21:09:45 TR2N [email@89.180.179.16] has joined #scheme
21:10:40 -!- Blkt`` is now known as Blkt
21:14:27 Komi [Komi@83.231.89.76] has joined #scheme
21:14:31 hello
21:14:56 -!- elly [~elly@unaffiliated/elly] has quit [Changing host]
21:14:56 elly [~elly@atheme/member/elly] has joined #scheme
21:18:16 What happens in pthreads if thread T locks a mutex M, T terminates, and then T' tries to lock M?
21:21:08 jeapostrophe_ [~jay@pool-173-76-209-217.bstnma.fios.verizon.net] has joined #scheme
21:21:10 -!- jeapostrophe_ is now known as jeapostrophe
21:21:12 *Komi* never used pthreads
21:22:41 In MIT Scheme, T's termination causes M to become unlocked. In Gambit and SRFI 18, if T' tries to lock M, MUTEX-LOCK! first locks M and then signals an error, which can be ignored in order for T' to proceed with a lock on M. In Scheme48, T' blocks until some kind soul releases M, but there's no reliable way to know whether M is owned by a terminated thread.
21:23:23 asarch [~asarch@187.132.134.145] has joined #scheme
21:26:14 It seems to me the MIT Scheme approach is better, isn't it?
21:26:14 -!- jeapostrophe [~jay@pool-173-76-209-217.bstnma.fios.verizon.net] has quit [Read error: Connection reset by peer]
21:26:15 jeapostrophe_ [~jay@pool-173-76-209-217.bstnma.fios.verizon.net] has joined #scheme
21:26:57 It is more error-prone.
21:27:03 ...than the Gambit approach.
21:27:18 -!- jeapostrophe_ [~jay@pool-173-76-209-217.bstnma.fios.verizon.net] has quit [Client Quit]
21:27:34