00:00:42 shiva8 [n=Administ@c-98-220-107-98.hsd1.in.comcast.net] has joined #scheme 00:01:59 -!- mmc [n=mima@cs27122078.pp.htv.fi] has quit [Read error: 110 (Connection timed out)] 00:02:57 -!- ASau [n=user@ppp85-141-213-217.pppoe.mtu-net.ru] has quit [Read error: 104 (Connection reset by peer)] 00:03:08 ASau [n=user@ppp85-141-213-217.pppoe.mtu-net.ru] has joined #scheme 00:05:14 mejja [n=user@c-49b6e555.023-82-73746f38.cust.bredbandsbolaget.se] has joined #scheme 00:06:23 dmoerner [n=dmr@89-65.res.pomona.edu] has joined #scheme 00:06:52 -!- ASau [n=user@ppp85-141-213-217.pppoe.mtu-net.ru] has quit [Read error: 104 (Connection reset by peer)] 00:09:45 -!- masm [n=masm@bl9-114-83.dsl.telepac.pt] has quit ["Leaving."] 00:11:17 ASau [n=user@ppp85-141-213-217.pppoe.mtu-net.ru] has joined #scheme 00:11:54 Administrator_ [n=Administ@c-98-220-107-98.hsd1.in.comcast.net] has joined #scheme 00:13:00 -!- shiva8 [n=Administ@c-98-220-107-98.hsd1.in.comcast.net] has quit [Remote closed the connection] 00:13:24 jonrafkind [n=jon@204.99.164.203] has joined #scheme 00:13:40 -!- dmoerner [n=dmr@89-65.res.pomona.edu] has quit ["Leaving"] 00:15:06 mbishop_ [n=martin@unaffiliated/mbishop] has joined #scheme 00:17:04 r0bby [n=wakawaka@guifications/user/r0bby] has joined #scheme 00:20:06 -!- MrFahrenheit [n=RageOfTh@users-38-184.vinet.ba] has quit [Read error: 60 (Operation timed out)] 00:21:02 chandler, can you help me with this sorting algorithm? 00:21:42 -!- ASau [n=user@ppp85-141-213-217.pppoe.mtu-net.ru] has quit [Read error: 104 (Connection reset by peer)] 00:21:45 i'm trying to write a helper procedure that takes a number and an ordered list and inserts the number in the correct place in the list 00:21:59 ASau [n=user@ppp85-141-213-217.pppoe.mtu-net.ru] has joined #scheme 00:23:48 cicle through the list until you find the current number is smaller or equal than yours. Plug yours after it. 00:24:23 -!- rdd [n=rdd@c83-250-145-223.bredband.comhem.se] has quit [Read error: 104 (Connection reset by peer)] 00:24:56 -!- mario-goulart [n=user@67.205.85.241] has quit [Remote closed the connection] 00:25:07 yeah, but how do i add the numbers before that spot back in? 00:26:33 ada2358_ [n=ada2358@login-linux.ccs.neu.edu] has joined #scheme 00:26:53 (insert-in-order 3 '(1 2 4 5)) ;=> (1 2 3 4 5) 00:27:01 what i have ;=> (3 4 5) 00:27:20 i'm probably forgetting something trivial 00:28:31 if you do it in a simple recursive manner 00:29:02 (append (1 2) 3 (4 5)) 00:29:10 or something equivalent 00:29:39 see if you can build the (1 2) and (4 5) parts while going through the list 00:29:59 oh, i figured it out. can i show you what i have? there may be a better way. 00:30:31 yeah you can. I don't have my mind mapped on scheme right now but I can take a look 00:30:56 how do i get the paste thingy? 00:31:15 lisppaste 00:31:38 lisppaste: url? 00:31:38 To use the lisppaste bot, visit http://paste.lisp.org/new/scheme and enter your paste. 00:31:38 http://paste.lisp.org/new/ 00:32:22 EleminoP pasted "insert-in-order" at http://paste.lisp.org/display/88362 00:33:21 seanstickle [n=seanstic@c-68-33-221-168.hsd1.dc.comcast.net] has joined #scheme 00:33:30 rather than using nested ifs, a cond could do the job 00:33:57 cond? 00:34:18 i don't think i've learned about those 00:34:43 -!- jonrafkind [n=jon@204.99.164.203] has quit [Read error: 110 (Connection timed out)] 00:34:46 a;so you can have <= instead of (and (< ... ) (= ... )) 00:35:22 otherwise the logic is alright 00:37:16 EleminoP1 [n=EleminoP@iub-vpn-192-51.noc.indiana.edu] has joined #scheme 00:37:16 -!- ada2358 [n=ada2358@login-linux.ccs.neu.edu] has quit [Connection timed out] 00:37:41 dang dorm internet 00:37:56 last two lines: 00:37:57 a;so you can have <= instead of (and (< ... ) (= ... )) 00:37:59 otherwise the logic is alright 00:38:14 ok, thank you 00:38:20 mdg [n=mdg@unaffiliated/mgroman] has joined #scheme 00:40:10 mdg , do you visit the site watmm.com? 00:40:30 EleminoP1: nope 00:40:39 ok, nevermind 00:41:05 emma [n=em@unaffiliated/emma] has joined #scheme 00:42:58 -!- mbishop [n=martin@unaffiliated/mbishop] has quit [Read error: 113 (No route to host)] 00:42:59 -!- ASau [n=user@ppp85-141-213-217.pppoe.mtu-net.ru] has quit [Read error: 104 (Connection reset by peer)] 00:43:05 ASau [n=user@ppp85-141-213-217.pppoe.mtu-net.ru] has joined #scheme 00:43:24 mbishop [n=martin@unaffiliated/mbishop] has joined #scheme 00:44:37 -!- mbishop_ [n=martin@unaffiliated/mbishop] has quit [No route to host] 00:52:24 -!- mrsolo_ [n=mrsolo@nat/yahoo/x-wgfbhnwuycmnpeyl] has left #scheme 00:53:11 -!- EleminoP [n=EleminoP@iub-vpn-193-181.noc.indiana.edu] has quit [Read error: 110 (Connection timed out)] 00:54:17 -!- copumpkin is now known as pumpkin 00:59:33 brweber2 [n=brweber2@ip68-100-65-167.dc.dc.cox.net] has joined #scheme 01:02:28 -!- ASau [n=user@ppp85-141-213-217.pppoe.mtu-net.ru] has quit [Read error: 104 (Connection reset by peer)] 01:02:45 ASau [n=user@ppp85-141-213-217.pppoe.mtu-net.ru] has joined #scheme 01:03:05 jrtayloriv, personally I'd recommend that you read riaxpander, rather than alexpander, after reading Bawden & Rees's 1988 paper on syntactic closures and perhaps Clinger's (very brief) 1991ish paper on explicit renaming macros. 01:05:17 -!- schoppenhauer [n=christop@unaffiliated/schoppenhauer] has quit ["Verlassend"] 01:10:23 arthurmaciel [n=user@189.100.98.10] has joined #scheme 01:10:23 hi 01:10:34 hi 01:11:01 I want to learn artificial intelligence in a broad sense. What do you recommend? Follow PAIP from cover to cover? 01:12:54 -!- schmir [n=schmir@p54A907D6.dip0.t-ipconnect.de] has quit [Read error: 113 (No route to host)] 01:16:29 AIMA? 01:17:02 mabes [n=mabes@bmabey.fttp.xmission.com] has joined #scheme 01:20:20 -!- ASau [n=user@ppp85-141-213-217.pppoe.mtu-net.ru] has quit [Read error: 104 (Connection reset by peer)] 01:20:48 ASau [n=user@ppp85-141-213-217.pppoe.mtu-net.ru] has joined #scheme 01:23:05 MononcQc: oh, thanks. Any recommend bibliography when trying to learn especially neural nets? 01:24:24 Norvig (from AIMA) seemed to like this one, nbut I haven't read anything about neural nets http://www.amazon.com/Neural-Networks-Pattern-Recognition-Christopher/product-reviews/0198538642/ref=sr_1_5_cm_cr_acr_img?ie=UTF8&showViewpoints=1 01:24:26 -rudybot:#scheme- http://tinyurl.com/y8eo7j7 01:25:38 thanks, MononcQc 01:25:45 sounds advanced though 01:28:13 Riastradh, Thanks for the recommendations -- attempting to grok syntactic closures now. 01:28:13 -!- ASau [n=user@ppp85-141-213-217.pppoe.mtu-net.ru] has quit [Read error: 104 (Connection reset by peer)] 01:28:25 ASau [n=user@ppp85-141-213-217.pppoe.mtu-net.ru] has joined #scheme 01:29:08 -!- EleminoP1 [n=EleminoP@iub-vpn-192-51.noc.indiana.edu] has left #scheme 01:33:42 jeapostrophe [n=jay@69.169.141.110.provo.static.broadweavenetworks.net] has joined #scheme 01:35:16 -!- seanstickle [n=seanstic@c-68-33-221-168.hsd1.dc.comcast.net] has quit [] 01:39:01 ski_ [n=slj@c-c110e055.1149-1-64736c10.cust.bredbandsbolaget.se] has joined #scheme 01:39:12 -!- Administrator_ [n=Administ@c-98-220-107-98.hsd1.in.comcast.net] has quit ["Leaving"] 01:40:06 -!- ski [n=slj@c-c110e055.1149-1-64736c10.cust.bredbandsbolaget.se] has quit [Read error: 104 (Connection reset by peer)] 01:48:41 -!- ASau [n=user@ppp85-141-213-217.pppoe.mtu-net.ru] has quit [Read error: 104 (Connection reset by peer)] 01:51:03 ASau [n=user@ppp85-141-213-217.pppoe.mtu-net.ru] has joined #scheme 02:01:14 -!- thesnowdog_ is now known as thesnowdog 02:03:53 copumpkin [n=pumpkin@c-24-63-67-154.hsd1.nh.comcast.net] has joined #scheme 02:05:16 -!- arthurmaciel [n=user@189.100.98.10] has quit [Read error: 113 (No route to host)] 02:08:24 -!- bunz [n=bunz@unaffiliated/bunz] has quit ["bye"] 02:11:07 -!- ASau [n=user@ppp85-141-213-217.pppoe.mtu-net.ru] has quit [Read error: 104 (Connection reset by peer)] 02:11:18 ASau [n=user@ppp85-141-213-217.pppoe.mtu-net.ru] has joined #scheme 02:11:39 _Pb [n=Pb@75.131.194.186] has joined #scheme 02:13:54 -!- dysinger [n=dysinger@cpe-75-85-135-191.hawaii.res.rr.com] has quit [Read error: 113 (No route to host)] 02:15:54 -!- jeapostrophe [n=jay@69.169.141.110.provo.static.broadweavenetworks.net] has quit [] 02:23:52 -!- mejja [n=user@c-49b6e555.023-82-73746f38.cust.bredbandsbolaget.se] has quit [Remote closed the connection] 02:34:09 foof [n=user@FL1-125-199-17-72.osk.mesh.ad.jp] has joined #scheme 02:34:10 -!- ASau [n=user@ppp85-141-213-217.pppoe.mtu-net.ru] has quit [Read error: 104 (Connection reset by peer)] 02:34:24 ASau [n=user@ppp85-141-213-217.pppoe.mtu-net.ru] has joined #scheme 02:34:41 -!- NNshag [i=user@Mix-Orleans-106-2-139.w193-248.abo.wanadoo.fr] has quit ["Quitte"] 02:41:46 -!- underspecified [n=eric@220.43.52.7] has quit [] 02:50:13 -!- mdg [n=mdg@unaffiliated/mgroman] has quit [] 02:54:21 -!- ASau [n=user@ppp85-141-213-217.pppoe.mtu-net.ru] has quit [Read error: 104 (Connection reset by peer)] 02:54:30 ASau [n=user@ppp85-141-213-217.pppoe.mtu-net.ru] has joined #scheme 02:56:22 jeapostrophe [n=jay@69.169.141.110.provo.static.broadweavenetworks.net] has joined #scheme 03:08:59 -!- tjafk1 [n=timj@e176199030.adsl.alicedsl.de] has quit [Read error: 110 (Connection timed out)] 03:09:39 tjafk1 [n=timj@e176212043.adsl.alicedsl.de] has joined #scheme 03:16:02 -!- twobitsprite [n=isaac@li24-165.members.linode.com] has quit [Remote closed the connection] 03:16:44 -!- brweber2 [n=brweber2@ip68-100-65-167.dc.dc.cox.net] has quit [] 03:28:11 brunooo [n=my_temp@115.60.197.39] has joined #scheme 03:29:59 derrida [n=derrida@unaffiliated/deleuze] has joined #scheme 03:32:45 dmoerner [n=dmr@89-65.res.pomona.edu] has joined #scheme 03:33:57 -!- MichaelRaskin [n=MichaelR@195.91.224.225] has quit [Remote closed the connection] 03:40:51 -!- Baconizer [n=baconize@unaffiliated/baconizer] has quit [Read error: 104 (Connection reset by peer)] 03:42:41 -!- ASau [n=user@ppp85-141-213-217.pppoe.mtu-net.ru] has quit [Read error: 104 (Connection reset by peer)] 03:43:24 -!- ebzzry_ [n=ebzzry@115.147.106.228] has quit [Remote closed the connection] 03:44:35 -!- Axioplas1_ is now known as Axioplase 03:45:06 ASau [n=user@ppp85-141-213-217.pppoe.mtu-net.ru] has joined #scheme 03:45:42 underspecified [n=eric@walnut.naist.jp] has joined #scheme 03:47:41 jonrafkind [n=jon@98.202.86.149] has joined #scheme 03:48:29 Baconizer [n=baconize@unaffiliated/baconizer] has joined #scheme 03:54:39 Dawgmatix [n=user@c-76-124-15-45.hsd1.nj.comcast.net] has joined #scheme 03:54:52 midknightstar [n=chatzill@adsl-77-237-70.mia.bellsouth.net] has joined #scheme 03:57:34 saccade [n=saccade@65-78-24-131.c3-0.smr-ubr1.sbo-smr.ma.cable.rcn.com] has joined #scheme 03:58:11 -!- Dawgmatix [n=user@c-76-124-15-45.hsd1.nj.comcast.net] has quit [Remote closed the connection] 04:04:05 -!- ASau [n=user@ppp85-141-213-217.pppoe.mtu-net.ru] has quit [Read error: 104 (Connection reset by peer)] 04:04:14 ASau [n=user@ppp85-141-213-217.pppoe.mtu-net.ru] has joined #scheme 04:05:06 -!- _Pb [n=Pb@75.131.194.186] has quit ["Leaving"] 04:08:13 : /help help 04:08:17 :/help help 04:08:32 :/HELP help 04:08:40 -!- midknightstar [n=chatzill@adsl-77-237-70.mia.bellsouth.net] has left #scheme 04:11:40 I need somebody! 04:12:37 incubot, not just anybody 04:12:41 but it's just execing stuff 04:15:39 -!- eno [n=eno@nslu2-linux/eno] has quit [Read error: 60 (Operation timed out)] 04:15:49 -!- jeapostrophe [n=jay@69.169.141.110.provo.static.broadweavenetworks.net] has quit [] 04:16:42 Not just anybody. 04:16:46 zbigniew: oops. 04:17:09 _I_ never needed anybody's help in any way. 04:18:14 eno [n=eno@nslu2-linux/eno] has joined #scheme 04:20:46 who's bottom? 04:21:32 he's an ass 04:24:46 -!- ASau [n=user@ppp85-141-213-217.pppoe.mtu-net.ru] has quit [Read error: 104 (Connection reset by peer)] 04:25:13 Character from "Midsummer Night's Dream", if I recall correctly. 04:26:32 ldtb [n=ldtb@c-76-116-69-57.hsd1.nj.comcast.net] has joined #scheme 04:26:41 -!- MononcQc [n=mononcqc@modemcable062.225-20-96.mc.videotron.ca] has quit ["DOWNLOADING NEXT VERSION OF INTERNET"] 04:27:18 -!- tarbo [n=me@unaffiliated/tarbo] has quit [Connection timed out] 04:27:23 ASau [n=user@ppp85-141-213-217.pppoe.mtu-net.ru] has joined #scheme 04:28:40 MichaelRaskin [n=MichaelR@213.171.48.239] has joined #scheme 04:28:54 -!- MichaelRaskin [n=MichaelR@213.171.48.239] has quit [Remote closed the connection] 04:29:16 MichaelRaskin [n=MichaelR@213.171.48.239] has joined #scheme 04:30:55 foof: http://groups.google.com/group/ikarus-users/browse_thread/thread/bcbdd10315ca30cb 04:30:57 -rudybot:#scheme- http://tinyurl.com/yeztbdq 04:34:22 leppie: I'm on ikarus-users 04:43:32 -!- Makoryu [n=vt920@pool-71-174-191-10.bstnma.fios.verizon.net] has quit [] 04:44:28 Fare [n=Fare@c-24-218-127-11.hsd1.ma.comcast.net] has joined #scheme 04:46:12 -!- ASau [n=user@ppp85-141-213-217.pppoe.mtu-net.ru] has quit [Read error: 104 (Connection reset by peer)] 04:46:32 ASau [n=user@ppp85-141-213-217.pppoe.mtu-net.ru] has joined #scheme 04:48:11 foof: didnt know :) 04:50:54 -!- ldtb [n=ldtb@c-76-116-69-57.hsd1.nj.comcast.net] has quit [] 04:56:12 -!- brunooo [n=my_temp@115.60.197.39] has left #scheme 05:07:13 -!- ASau [n=user@ppp85-141-213-217.pppoe.mtu-net.ru] has quit [Read error: 104 (Connection reset by peer)] 05:07:42 ASau [n=user@ppp85-141-213-217.pppoe.mtu-net.ru] has joined #scheme 05:10:54 -!- mabes [n=mabes@bmabey.fttp.xmission.com] has quit ["Leaving..."] 05:25:06 -!- foof [n=user@FL1-125-199-17-72.osk.mesh.ad.jp] has quit [Remote closed the connection] 05:25:11 foof [n=user@FL1-125-199-17-72.osk.mesh.ad.jp] has joined #scheme 05:33:15 -!- ASau [n=user@ppp85-141-213-217.pppoe.mtu-net.ru] has quit [Read error: 54 (Connection reset by peer)] 05:33:49 ASau [n=user@ppp85-141-213-217.pppoe.mtu-net.ru] has joined #scheme 05:44:14 -!- underspecified [n=eric@walnut.naist.jp] has quit [] 05:44:40 -!- ASau [n=user@ppp85-141-213-217.pppoe.mtu-net.ru] has quit [Read error: 104 (Connection reset by peer)] 05:44:52 ASau [n=user@ppp85-141-213-217.pppoe.mtu-net.ru] has joined #scheme 05:49:12 tarbo [n=me@unaffiliated/tarbo] has joined #scheme 05:53:27 -!- ski_ is now known as ski 05:54:37 -!- ASau [n=user@ppp85-141-213-217.pppoe.mtu-net.ru] has quit [Read error: 104 (Connection reset by peer)] 05:55:02 ASau [n=user@ppp85-141-213-217.pppoe.mtu-net.ru] has joined #scheme 05:56:29 ski_ [n=md9slj@remote1.student.chalmers.se] has joined #scheme 06:00:36 -!- jonrafkind [n=jon@98.202.86.149] has quit [Read error: 60 (Operation timed out)] 06:04:07 brunooo [n=my_temp@115.60.197.39] has joined #scheme 06:07:19 -!- ASau [n=user@ppp85-141-213-217.pppoe.mtu-net.ru] has quit [Remote closed the connection] 06:07:30 -!- Fare [n=Fare@c-24-218-127-11.hsd1.ma.comcast.net] has quit ["Leaving"] 06:08:58 -!- rcy [n=rcy@d154-20-175-81.bchsia.telus.net] has quit [Remote closed the connection] 06:19:03 -!- brunooo [n=my_temp@115.60.197.39] has left #scheme 06:24:15 -!- jao [n=jao@214.Red-88-6-162.staticIP.rima-tde.net] has quit [Read error: 110 (Connection timed out)] 06:25:57 -!- rmrfchik_ is now known as rmrfchik 06:29:10 -!- kilimanjaro [n=kilimanj@70.116.95.163] has quit [Remote closed the connection] 06:36:30 kenjin [n=kenjin@163.152.180.250] has joined #scheme 06:36:55 -!- kenjin is now known as Guest73841 06:42:15 hotblack23 [n=jh@p5B057245.dip.t-dialin.net] has joined #scheme 06:42:37 -!- hotblack23 [n=jh@p5B057245.dip.t-dialin.net] has quit [Client Quit] 06:44:02 ponzao___ [n=vesam@xdsl-83-150-86-25.nebulazone.fi] has joined #scheme 06:47:24 -!- Guest73841 is now known as kenjin2 06:48:32 thesnowdog_ [i=thesnowd@122.110.63.2] has joined #scheme 06:59:23 -!- thesnowdog [i=thesnowd@122.110.55.35] has quit [Read error: 110 (Connection timed out)] 07:07:05 -!- thesnowdog_ is now known as thesnowdog 07:15:03 -!- dmoerner [n=dmr@89-65.res.pomona.edu] has quit ["Leaving"] 07:30:30 cornucopic [n=r00t@202.3.77.129] has joined #scheme 07:40:44 -!- Fufie [n=innocent@86.80-203-225.nextgentel.com] has quit ["Leaving"] 07:43:07 -!- TR2N [i=email@89-180-202-103.net.novis.pt] has left #scheme 07:43:35 a-s [n=user@nat-240.ro.66.com] has joined #scheme 07:50:53 -!- optimizer [n=x@unaffiliated/lowlycoder] has quit ["leaving"] 07:50:57 bombshelter13__ [n=bombshel@76-10-149-209.dsl.teksavvy.com] has joined #scheme 07:58:58 ASau [n=user@host172-230-msk.microtest.ru] has joined #scheme 08:00:18 -!- m811 [n=user@84-50-207-42-dsl.est.estpak.ee] has quit [Read error: 60 (Operation timed out)] 08:07:52 -!- bombshelter13_ [n=bombshel@76-10-149-209.dsl.teksavvy.com] has quit [Read error: 113 (No route to host)] 08:11:12 -!- ecraven [n=nex@140.78.42.103] has quit ["bbl"] 08:12:52 m811 [n=user@213-35-180-180-dsl.lsn.estpak.ee] has joined #scheme 08:17:59 schmir [n=schmir@mail.brainbot.com] has joined #scheme 08:21:12 jao [n=jao@74.Red-80-24-4.staticIP.rima-tde.net] has joined #scheme 08:25:08 thehcdreamer [n=thehcdre@93.37.245.170] has joined #scheme 08:26:42 mmc [n=mima@esprx01x.nokia.com] has joined #scheme 08:27:54 Fufie [n=poff@Gatekeeper.vizrt.com] has joined #scheme 08:35:05 ecraven [n=nex@140.78.42.103] has joined #scheme 08:40:06 -!- Modius [n=Modius@24.174.112.56] has quit [Read error: 104 (Connection reset by peer)] 08:40:34 Modius [n=Modius@24.174.112.56] has joined #scheme 08:46:47 bombshelter13_ [n=bombshel@76-10-149-209.dsl.teksavvy.com] has joined #scheme 08:49:00 xwl [n=user@123.115.121.251] has joined #scheme 08:53:49 optimizer [n=x@unaffiliated/lowlycoder] has joined #scheme 08:56:56 -!- bombshelter13__ [n=bombshel@76-10-149-209.dsl.teksavvy.com] has quit [No route to host] 09:22:19 -!- bombshelter13_ [n=bombshel@76-10-149-209.dsl.teksavvy.com] has quit [Client Quit] 09:33:18 danlei` [n=user@pD9E2D770.dip.t-dialin.net] has joined #scheme 09:33:26 -!- danlei [n=user@pD9E2C7EB.dip.t-dialin.net] has quit [Nick collision from services.] 09:33:30 -!- danlei` is now known as danlei 09:35:37 HG` [n=HG@xdslak054.osnanet.de] has joined #scheme 09:43:59 -!- Axioplase is now known as Axioplase_ 09:59:22 -!- leppie [n=lolcow@196-210-146-156-tvwt-esr-2.dynamic.isadsl.co.za] has quit [Read error: 131 (Connection reset by peer)] 09:59:55 leppie [n=lolcow@196-210-146-156-tvwt-esr-2.dynamic.isadsl.co.za] has joined #scheme 10:00:57 attila_lendvai [n=ati@adsl-89-132-5-156.monradsl.monornet.hu] has joined #scheme 10:08:03 -!- HG` [n=HG@xdslak054.osnanet.de] has quit [Read error: 104 (Connection reset by peer)] 10:15:54 -!- thehcdreamer [n=thehcdre@93.37.245.170] has quit [] 10:32:08 masm [n=masm@bl7-92-6.dsl.telepac.pt] has joined #scheme 10:41:56 Edico [n=Edico@unaffiliated/edico] has joined #scheme 10:49:34 dansa [i=dbastos@dhcp-077-250-091-080.chello.nl] has joined #scheme 10:57:49 seanstickle [n=seanstic@c-68-33-221-168.hsd1.dc.comcast.net] has joined #scheme 11:09:32 -!- cornucopic [n=r00t@202.3.77.129] has quit ["so long.."] 11:10:59 HG` [n=HG@xdslak054.osnanet.de] has joined #scheme 11:17:22 -!- antoszka [n=antoszka@unaffiliated/antoszka] has quit ["+++ killed by SIGSEGV +++"] 11:20:03 -!- HG` [n=HG@xdslak054.osnanet.de] has quit [Client Quit] 11:20:25 davazp [n=user@56.Red-79-153-148.dynamicIP.rima-tde.net] has joined #scheme 11:29:21 -!- schemer999 [n=tmilford@cpe-76-90-137-46.socal.res.rr.com] has quit [] 11:34:26 schemer999 [n=tmilford@cpe-76-90-137-46.socal.res.rr.com] has joined #scheme 11:36:42 is it possible to discard the contents of the stdout buffer, explicitly? when i call (exit), it gets flushed; i wish i could wipe stdout buffers before it gets flushed; how does one do that? any (discard-buffer-port) or something? 11:37:48 FufieToo [n=poff@Gatekeeper.vizrt.com] has joined #scheme 11:44:29 -!- emma [n=em@unaffiliated/emma] has quit [Read error: 110 (Connection timed out)] 11:54:31 how can you discard which you do not own? 11:55:02 dansa: I suggest writing to a string port, and then only flush it to stdout when needed. 11:58:49 -!- Fufie [n=poff@Gatekeeper.vizrt.com] has quit [Read error: 110 (Connection timed out)] 12:00:49 i own it! :) i own everything in this computer; i guess you're saying you need to handle the flushing yourself if you want to discard it; i'll probably do that 12:13:22 -!- xwl [n=user@123.115.121.251] has quit [Remote closed the connection] 12:17:31 jeapostrophe [n=jay@69.169.141.110.provo.static.broadweavenetworks.net] has joined #scheme 12:18:23 thesnowdog_ [i=thesnowd@114.73.54.90] has joined #scheme 12:20:35 -!- jao [n=jao@74.Red-80-24-4.staticIP.rima-tde.net] has quit [Connection timed out] 12:28:33 mario-goulart [n=user@67.205.85.241] has joined #scheme 12:31:11 Dawgmatix [n=user@c-76-124-15-45.hsd1.nj.comcast.net] has joined #scheme 12:31:46 -!- derrida [n=derrida@unaffiliated/deleuze] has quit ["Lost terminal"] 12:35:12 -!- thesnowdog [i=thesnowd@122.110.63.2] has quit [Read error: 110 (Connection timed out)] 12:39:55 -!- thesnowdog_ is now known as thesnowdog 12:42:26 -!- schemer999 [n=tmilford@cpe-76-90-137-46.socal.res.rr.com] has quit [] 12:50:06 jao [n=jao@214.Red-88-6-162.staticIP.rima-tde.net] has joined #scheme 12:51:54 -!- seanstickle [n=seanstic@c-68-33-221-168.hsd1.dc.comcast.net] has quit [Remote closed the connection] 12:52:03 seanstickle [n=seanstic@c-68-33-221-168.hsd1.dc.comcast.net] has joined #scheme 12:54:57 -!- Summermute [n=scott@68.34.67.216] has quit [] 13:03:30 -!- hiyuh [n=hiyuh@KD124214245222.ppp-bb.dion.ne.jp] has quit ["|_ e /\ \/ i |/| G"] 13:06:51 hiyuh [n=hiyuh@KD124214245222.ppp-bb.dion.ne.jp] has joined #scheme 13:16:51 luz [n=davids@139.82.89.70] has joined #scheme 13:21:49 -!- dansa [i=dbastos@dhcp-077-250-091-080.chello.nl] has quit ["leaving"] 13:30:02 ecyrb [i=bamoore@SDF.LONESTAR.ORG] has joined #scheme 13:32:12 Just read up on records in R6RS. Is there a standard way of defining generic methods in R6RS? 13:32:40 Ah, generic functions 13:32:59 (not that I'm aware of, but I'm no R6RS expert, to non-answer your question) 13:33:03 I like generic functions, though 13:33:27 Kinda seems like they would go hand-in-hand with the new DEFINE-RECORD facility 13:33:47 (new-to-me that is) 13:34:26 so new in fact, that it's DEFINE-RECORD-TYPE and not DEFINE-RECORD 13:34:41 ;-) 13:44:57 hkBst [n=hkBst@gentoo/developer/hkbst] has joined #scheme 13:47:56 blackened` [n=blackene@ip-89-102-28-224.karneval.cz] has joined #scheme 13:49:51 -!- hkBst [n=hkBst@gentoo/developer/hkbst] has quit [Remote closed the connection] 14:02:26 xwl [n=user@123.115.121.251] has joined #scheme 14:03:27 edwardk [i=c72ec6e8@gateway/web/freenode/x-wqnsnyixcuacruzh] has joined #scheme 14:09:29 rdd [n=rdd@c83-250-145-223.bredband.comhem.se] has joined #scheme 14:11:33 langmartin [n=user@exeuntcha.tva.gov] has joined #scheme 14:11:57 -!- sstrickl [n=sstrickl@pool-129-44-182-54.bos.east.verizon.net] has quit [] 14:21:35 bweaver [n=user@75-148-111-133-Chattanooga.hfc.comcastbusiness.net] has joined #scheme 14:22:02 How do I EVAL a DEFINE statement for a local context only? 14:22:55 I mean, if I EVAL a DEFINE inside a LET, the variable defined is visible outside the LET - which I don't want to happen. 14:23:16 What are you actually trying to do? 14:23:40 It sounds like you are working against Scheme, rather than with it :-) 14:24:00 If you really need to eval some code in a custom environment with your own generated bindings, do something like this: 14:24:34 I have a set of variables that I need to define at run time, so that I can evaluate expression trees against them. 14:24:35 (eval `(let ((foo ',foo-val) (bar ',bar-val)) ,code)) 14:24:56 So in effect you want to create a little REPL within your app, that you can feed some defines to, and then evaluate some stuff? 14:25:06 Exactly 14:25:07 Yeah, eval-ing a let will probably do what you want, I think? 14:25:49 hkBst [n=hkBst@gentoo/developer/hkbst] has joined #scheme 14:33:36 Fare [n=Fare@c-24-218-127-11.hsd1.ma.comcast.net] has joined #scheme 14:36:17 Good so far. IIn place of "code" I put (lambda (fun) (fun foo bar)) and it seemed to do what I want. Seems like I'm sort of duplicating continuations though. 14:56:06 -!- kenjin2 [n=kenjin@163.152.180.250] has quit [Remote closed the connection] 14:58:49 sstrickl [n=sstrickl@nomad.ccs.neu.edu] has joined #scheme 15:04:10 -!- jeapostrophe [n=jay@69.169.141.110.provo.static.broadweavenetworks.net] has quit [] 15:13:12 -!- schmir [n=schmir@mail.brainbot.com] has quit [Remote closed the connection] 15:16:35 -!- FufieToo [n=poff@Gatekeeper.vizrt.com] has quit ["Leaving"] 15:17:17 -!- ASau [n=user@host172-230-msk.microtest.ru] has quit ["off"] 15:17:48 -!- copumpkin [n=pumpkin@c-24-63-67-154.hsd1.nh.comcast.net] has quit [Read error: 110 (Connection timed out)] 15:18:42 ecyrb, `I have a set of variables that I need to define at run time.' What led you to that sentence? 15:19:00 ...oh, sorry, I should read the rest of the sentence... 15:21:50 ejs [n=eugen@154-237-124-91.pool.ukrtel.net] has joined #scheme 15:22:48 Does the LET approach above seem like the correct way to do this? 15:22:53 -!- Dawgmatix [n=user@c-76-124-15-45.hsd1.nj.comcast.net] has quit [Read error: 104 (Connection reset by peer)] 15:27:58 Almost. What alaricsp suggested works only if the values that you want to bind variables to have are lists, symbols, strings, numbers, &c. It is better to write ((eval `(lambda (,variable1 ,variable2) ,body) environment) value1 value2), or if you have a list of variables and values, (apply (eval `(lambda ,variables ,body) environment) values). 15:28:13 (Whether what alaricsp suggested works with other values is implementation-dependent.) 15:28:20 I've always wondered about that 15:28:48 I'd secretly hoped that anything not a symbol or list should self-evaluate, TBH, but I fear this is not the case 15:29:08 I wonder if R7RS should be clearer on that issue 15:29:52 Self-evaluation is not the issue; whether such values are allowed literally at all (inside or outside of quotations) is the issue. 15:30:34 -!- masm [n=masm@bl7-92-6.dsl.telepac.pt] has quit [Read error: 110 (Connection timed out)] 15:31:27 Yeah, but self-evaluation would be 'the ultimate'. THings that are legal to self-evaluate but *don't* work inside quote would be quite surprising and hard to justify, IMHO... 15:31:45 masm [n=masm@bl7-197-242.dsl.telepac.pt] has joined #scheme 15:33:20 Putting such data in quotations is easily a mistake. For instance, what happens if a macro expands to an expression in which a procedure occurs inside a quotation? 15:33:42 That might prevent the compiled form of the program in which the macro occurs from being writable to disk. 15:34:00 Interesting point 15:34:38 In this case it's safe, but the system might still prohibit such data in quotations, so evaluating a lambda expression and applying the resulting procedure is better. 15:34:59 (This case being what ecyrb described: extending an environment for a single evaluation.) 15:35:25 That's true 15:35:43 I didn't think of eval-ing a lambda and then applying it 'outside of eval, with real values 15:35:57 But you're right, that would be the best way 15:38:03 Alright so far... I want to perform multiple evaluations using this new environment. 15:40:42 -!- samth_away is now known as samth 15:40:54 So do I bind the current continuation in body, and return a LAMBDA that applies it? 15:41:18 -!- xwl [n=user@123.115.121.251] has quit [Read error: 110 (Connection timed out)] 15:41:24 (Then I don't have to re-bind my variables for every evaluation) 15:41:26 -!- saccade [n=saccade@65-78-24-131.c3-0.smr-ubr1.sbo-smr.ma.cable.rcn.com] has quit ["This computer has gone to sleep"] 15:42:17 Sorry if I keep saying stupid things.... If you haven't already guessed I'm quite a bit of a scheme noob 15:42:21 saccade [n=saccade@65-78-24-131.c3-0.smr-ubr1.sbo-smr.ma.cable.rcn.com] has joined #scheme 15:42:55 No, ecyrb. 15:43:18 We were all noobs once ;-) 15:43:52 Continuations don't remember the names, or the associations of variables to names, in a lexical environment. They remember only the locations of the variables to which those names are bound. 15:44:46 You must repeatedly evaluate a lambda expression and apply the result, or put all of the expressions you want to evaluate into the same lambda expression. 15:45:09 (Be careful, though, about doing something like `(LAMBDA (,v1 ,v2 ,v3) (LIST ,e1 ,e2 ,e3)), because v1, v2, or v3 might be the symbol LIST.) 15:45:58 alaricsp, I wasn't. The word noob didn't exist when I would have been one. 15:46:13 That's cheating! 15:46:21 yay! 15:46:32 Although I hear that newbies have since misheard the word "newbie" and corrupted it to "new bee". 15:46:44 (Perhaps someone can explain what's wrong with the word `novice', and what merit constructions such as `noob' add to the language?) 15:46:44 beside, English slang didn't apply where I lived. 15:46:53 All of that made sense. I already did that with alaricsp's earlier approach. 15:48:10 http://www.google.com/search?q="i'm+a+new+bee" 15:48:45 Riastradh: Beats me. Ask CL people, not Scheme people ;-) 15:51:11 -!- edwardk [i=c72ec6e8@gateway/web/freenode/x-wqnsnyixcuacruzh] has quit [Ping timeout: 180 seconds] 15:51:23 Instead of doing all of this, should I just generate the code I want to run, and run it in another instance of scheme? 15:52:04 -!- ski_ [n=md9slj@remote1.student.chalmers.se] has quit ["Lost terminal"] 15:53:06 That might be a bit heavyweight 15:53:18 What scheme are you using? Many have a sandboxing system to help with this kind of thing 15:58:24 If an environment is what I think it is, then can I just perform my EVALs in a separate environment? 15:59:46 alaricsp: At the moment I'm using chez, but I'm not picky. 16:01:27 I don't know Chez, but take a look at http://www.scheme.com/csug8/system.html#./system:h3 16:06:06 Perfect. 16:06:11 jonrafkind [n=jon@crystalis.cs.utah.edu] has joined #scheme 16:06:19 -!- mmc [n=mima@esprx01x.nokia.com] has quit [Remote closed the connection] 16:06:24 Now I don't need to do all of that crazy EVAL / LET stuff. 16:07:12 Well, at least I learned a bunch about how scheme works in the process. 16:07:33 yay :-) 16:08:28 As much as I'm fighting with the language while I'm learning, I'm really taking a fancy to scheme. 16:09:47 Yeah, it is good fun 16:10:16 The fighting comes from just not knowing the idiomatic ways of doing things, and thus the language hinders rather than helps as you're cutting across the grain, but once you get the hang, it's lovely 16:10:38 I've found that closures are becoming more and more useful as I get better at recognising things that can be done with them :-) 16:11:30 eg, rather than worrying about whether data is in a tree, or a list, or a vector, or a file, or a lazily-generated stream, and how to abstract over that, you can just provide a fold operator for your data source, and then use that 16:11:41 Realising that made me feel all warm inside. 16:11:57 thehcdreamer [n=thehcdre@93.37.246.192] has joined #scheme 16:12:07 My instinct had previously been to break out the object-orientation. 16:12:12 ecyrb, there are no standard operations on environments except for EVAL, and what happens when you pass definitions to EVAL is not standardized. Chez may define such behaviour -- but it won't necessarily be reflected in other Scheme systems. 16:12:54 alaricsp, better to provide a stream than a fold, if you must choose one. What happens when you want to process two of your things in parallel? You can go from a fold to a stream, but the other direction is easier. 16:13:37 Riastradh: Why, then I'd break out the coroutines... is that wrong? 16:14:18 I suppose it's messy if you want to do zip-type operations, actually, I see what you mean. 16:14:19 As I said: you can go from a fold to a stream, but the other direction is easier. 16:16:01 Out of curiousity, what are the prefered scheme implementations in here? (and why?) 16:16:08 See, I want to collect all of this anecdotal wisdom, and write a BOOK with it all in. 16:16:26 ecyrb: There is no preferred Scheme, TBH. THere's probably a most popular one, though? 16:16:26 s/prefered/preferred/ 16:16:33 It's OK, I can't spel either 16:17:30 Every implementation has its own strengths and weaknesses 16:18:19 This is a good thing; my only complaint is that there's often unnecessary differences between them, that hamper portability of libraries, so each has their own cluster of libs, and you can't just mix and match the libs you want for your app then run on the best implementation for your target platform, etc. 16:19:02 I'd love to be able to develop in DrScheme with its famed GUI REPL, then roll my code out onto Chicken to compile to fast and compact C to run on the live servers etc. But no! 16:19:45 I haven't done any benchmarking recently; is Chicken's generated code really that much faster than MzScheme with the JITter? 16:20:16 Dunno, but the results of benchmark races change with time, so my point may hold at some points in time ;-) 16:21:51 Python and Ruby both have multiple implementations, that don't seem to be unnecessarily incompatible 16:22:08 Really? Gee, I never knew I could run a Python program on a Ruby implementation. 16:22:22 alaricsp: I think you can probably figure out why that is. 16:22:29 Riastradh: Not what I meant ;-) 16:23:09 alaricsp, don't try to argue with the devil. 16:23:17 chandler: Yes, they all try and copy one 'main' implementation... 16:23:21 Fare: :-) 16:24:09 Right. Python *is* CPython. Other "implementations" are Python inasmuch as they follow the leader, and generally tend to share quite a lot of code with CPython too. 16:24:54 By that measure, you could say that Larceny, Petite Larceny, and Common Larceny are different "implementations" of one Larceny language. 16:25:21 I guess my core point is that there's good reasons for different impls to do things differently, such as when there's real interest in exploring alternative APIs to find which is best (and then every impl can support all the APIs, as wrappers around their library, if there's no clear winner); but having different spellings for open-tcp-port or whatever is just pointless 16:26:06 -!- thehcdreamer [n=thehcdre@93.37.246.192] has quit [] 16:26:07 alaricsp, yes: OPEN-TCP-PORT is generally the wrong notion to begin with. 16:26:24 Well, I agree, but that's a side-issue ;-) 16:26:38 No, it's not. 16:27:10 Riastradh, is it? Not always. 16:27:12 Part of the problem is that people keep wanting to put `nice' interfaces specializing what is a reasonably good abstraction. 16:27:28 I can imagine valid reasons to open a tcp port. 16:27:29 alaricsp: If you want unity, pick a winner and encourage others to follow. If that winner becomes popular enough, others may construct alternative implementations that follow the choices made by the winner. 16:27:47 (like, reserving a capability, and passing it to another process) 16:27:57 Why not? If implementations agreed to provide, say, the low-level BSD sockets library because that's what platforms generally provide them, then people could write portable without-output-to-tcp / with-input-from-tcp-listener libraries on top 16:28:02 And such libraries could compete etc. 16:28:17 But the libraries would be portable 16:28:22 So they could ACTUALLY compete 16:28:24 And then they end up causing problems, such as the recent one on the Gambit mailing list where both GNU Emacs and Gambit behaved badly in different ways, causing a program that used OPEN-TCP-PORT as was intended to fail. 16:28:27 alaricsp, that's why a standard FFI would go a long way towards solving problems. 16:28:49 OK. I'm going to step out of this discussion until it turns into code rather than talk. 16:29:03 (or a set of FFIs: one for C, one for Java, one for .NET, one of JS, etc.) 16:29:04 Well, standard FFI opens awkward questions: some impls run on JVMs, some on the CLR, some are interpreters, some are compilers to C, some are on embedded platforms, some are shell scripts, ... 16:29:35 alaricsp: I think that rather than looking at a situation that is obviously very different than Scheme (Python or Ruby), you should look at the concrete reasons why writing a portable program that does is difficult or impossible for varying values of . 16:29:38 And even for C, some systems are POSIX, some systems aren't, and what's in what library varies enormously 16:29:38 at least you'll have to implement things once per underlying platform, not once per implementation per platform. 16:30:34 and specialize further platforms into OS (Linux, BSD, MacOS, Windows) 16:30:48 FFI is a red herring. I can't meaningfully use an FFI only for e.g. sockets as that approach may interact badly with the rest of the implementation. For instance, some thread models may react very poorly to a long-running select(2) call. 16:31:19 chandler, first you standardize the FFI 16:31:29 chandler: Yes. Often I want to write programs that talk to POSIX APIs such as stat; sometimes I want to write an IRC client so need to open TCP sockets, etc. But I can run afoul even on such simple things as declaring I want the facilities of srfi-1 :-) 16:31:33 Whoops - I'm sorry I asked. 16:31:37 second you standardize the event loop 16:31:45 ecyrb: LOOK WHAT YOU DID!!! :-) 16:31:52 Well, I think I started this, really ;-) 16:31:55 OK, chandler. Let's standardize , and then standardize operations on Unix file descriptors, particularly mapping file descriptors to rendezvous that are implemented in terms of whatever the local Scheme system wants (select, poll, epoll, kqueue, /dev/poll, &c.). 16:32:12 Let's not and say we did, hm? 16:38:41 Riastradh, so what you call a "rendez-vous" is the visible state of a future? 16:39:11 Dealing with file descriptors is tricky, because they aren't nicely collectible as garbage, and responsibility for their release readily shifts about (e.g., passing one to stdio's fdopen, OpenSSL's BIO_new_fd with the close flag set, &c.). This is very easy to make mistakes with, so it's worth trying to standardize an interface that is easy to use without errors. 16:39:24 Fare, no. Don't think of it in terms of futures: futures are about computations that will complete at some point. 16:39:31 Fufie [n=innocent@86.80-203-225.nextgentel.com] has joined #scheme 16:39:32 (well, that we expect to complete at some point) 16:40:26 dysinger [n=tim@cpe-75-85-135-191.hawaii.res.rr.com] has joined #scheme 16:40:27 is that the same thing that ADA calls "rendez-vous"? 16:40:30 No. 16:41:15 ok, so if only one person were ever modifying your "rendez-vous", it would be a future? 16:41:32 ...no. Rendezvous are not modified. Give me a moment. 16:41:55 Not directly, anyway. 16:42:06 First, an /event/ is something that happens. E.g., a user hits the `k' key at 2009-10-08T15:37:26, a process writes `foo' to a pipe at some time, the sun goes supernova, &c. 16:42:30 ok 16:43:03 something you read from /dev/input/event0 16:43:05 A rendezvous is an object that does not describe a particular event, but often has something to do with a set of related events. 16:43:28 is there a simple description somewhere? 16:43:50 your sentence is too vague. 16:43:54 I'm still writing. 16:43:55 Is it related to CSP rendez-vous? 16:43:56 Please be patient. 16:45:09 *chandler* confidently predicts that whatever Riastradh is writing will be cut off by the IRC server. 16:45:45 -!- davazp [n=user@56.Red-79-153-148.dynamicIP.rima-tde.net] has quit [Remote closed the connection] 16:46:07 A rendezvous is in one of two states at any given time: blocked, or enabled with some value. For example, you might have a rendezvous associated with reading an octet from a pipe. If someone has written an octet to the other end of the pipe, then the rendezvous is enabled, and its value is the octet; otherwise, the rendezvous is blocked. 16:46:18 /Synchronizing/ is 16:46:20 ...er. 16:46:25 ^U is too close to ^J. 16:47:04 can it go from enabled back to blocked? 16:47:15 Yes, some can. 16:47:46 so it's kind of like an I/O port, but with a one-object buffer? 16:48:47 Processes can coordinate by /synchronizing/ rendezvous. Synchronizing an enabled rendezvous yields its value, and may communicate information to other processes, and may change the state of the rendezvous. For example, synchronizing the rendezvous associated with reading an octet from a pipe will consume the octet from the pipe, and if another process were waiting because the pipe was full, synchronizing it would resume that pr 16:51:00 Synchronizing a blocked rendezvous has the effect of waiting until an event happens to change the rendezvous's state. For example, if no octet were ready on the pipe, then synchronizing the rendezvous would cause the synchronizing process to wait until another process writes an octet to the pipe. 16:52:47 So you can think of a rendezvous in several different ways: as a set of related events (e.g., the events of processes' writing octets to some pipe), as a first-class object describing a blocking operation, or simply as an object by which processes coordinate their otherwise independent states with one another. 16:53:16 can you poll a rendez-vous to see whether it's blocked, only only try to grab it and be blocked if it's not there? 16:54:44 so it's a unix pipe with a one-object buffer. 16:54:45 I think the second half of your sentence got garbled somewhere in the interaction between fingers and keyboard, but if you meant `Can you poll a rendezvous to see whether it is blocked, and to grab its value if it's enabled but *not* be blocked if it's not enabled?', then the answer is yes. 16:55:16 Now, rendezvous can be composed. 16:55:37 If I have two rendezvous, then I can make a third rendezvous that is enabled whenever either of the two is enabled. 16:55:47 a unix pipe transmitting objects instead of bytes 16:56:33 two pipes both redirected to the input of another pipe 16:57:13 For example, I might have a rendezvous that is blocked before 2009-10-08T17:00:00 and enabled afterward, and I might also have a rendezvous associated with reading an octet from a pipe as above. In that case, I can make a choosing rendezvous of those two, and synchronize that; it chooses whichever is enabled first. So if three minutes go by and nobody has written an octet to the pipe, I'll proceed anyway. 16:57:17 -!- seanstickle [n=seanstic@c-68-33-221-168.hsd1.dc.comcast.net] has left #scheme 16:57:21 -!- ejs [n=eugen@154-237-124-91.pool.ukrtel.net] has quit [Read error: 110 (Connection timed out)] 16:58:41 Given a rendezvous R, I can also make a rendezvous R' that is enabled whenever R is enabled, and whose value when R is enabled is the value of some procedure applied to the value with which R is enabled. 16:58:49 that's how you unify timers and fds in a select: you have a timer signal handler that writes to a pipe so your select works. 16:59:01 ejs [n=eugen@154-237-124-91.pool.ukrtel.net] has joined #scheme 16:59:24 (assuming your time event comes from a different clock than the select timeout) 17:00:09 (Actually, select will return EINTR when a signal is delivered, unless you have specified SA_RESTART. So you don't really need to do that -- unless you need to count the number of times a signal was delivered, but there is still a bound on the number you can count before they get processed, which is the size of the pipe's buffer.) 17:00:28 ok, so you're generalizing unix pipes from bytes to objects. 17:00:35 No. 17:00:59 By combining these mapped rendezvous with choosing rendezvous, I can take different actions depending on which rendezvous is enabled first. (When multiple ones are enabled first, they are ordered by some internal priority that is fixed up for some notion of fairness.) 17:01:09 (and signals get lost, anyway) 17:01:19 s/lost/merged/ 17:03:18 so internally, you must you epoll indeed, if some of the rendez-vous are fd things. Probably need some semaphorefd or something, too, if some of your events are the releasing of a lock 17:03:19 Rendering rendezvous as pipes, and implementing choosing rendezvous by forking processes to read from different pipes and write to a common one, doesn't quite work as is. 17:04:00 it doesn't? because you don't trust the kernel to be fair? 17:04:15 1. If the forked process immediately begins reading from one of the pipes, that's wrong: merely making a choosing rendezvous doesn't cause its choices to be synchronized; only synchronizing a choosing rendezvous can cause any of its choices to be synchronized. 17:05:15 2. If the forked processes wait for a message indicating that you are trying to synchronize a choosing rendezvous, and then begin reading from their respective pipes, more than one of them might consume input from their pipes simultaneously. 17:05:41 This does not happen with synchronizing choosing rendezvous: doing so has the effect of synchronizing precisely one of the choices. 17:06:28 I don't understand the difference between "waiting for a message" and "reading from the pipe". 17:06:57 You mean that there's an atomicity problem between select and read when there are many readers? 17:07:22 Let's consider three processes, P, Q, and R. Q and R will write to pipes f and g, which P wants to read from one of. 17:07:29 and/or that when you poll, you may have false positives that are gone by the time you actually read? 17:07:31 P forks off a couple of processes, Pf and Pg to read from f and g, respectively. 17:07:55 (because another process read it faster than you did) 17:08:22 -!- saccade [n=saccade@65-78-24-131.c3-0.smr-ubr1.sbo-smr.ma.cable.rcn.com] has quit ["This computer has gone to sleep"] 17:08:36 If, when P synchronizes the rendezvous for reading from f or reading from g, Pf and Pg both try to read octets from f and g, and if furthermore Q and R both write octets simultaneously to f and g, then both Pf and Pg may consume octets and report success back to P. 17:09:23 mrsolo [n=mrsolo@nat/yahoo/x-coloetbmpvjbsfxn] has joined #scheme 17:09:31 Now there is a problem: two of the choices in the choosing rendezvous have become enabled, but P is equipped only to handle one. So either something will crash, or P will simply discard one of the octets, and one of Q or R may believe that its octet was delivered when in fact it was not. 17:09:47 so instead you have P select() on both f and g rather than fork 17:09:50 (Assume these pipes have no buffers, so that writing to them requires waiting until someone reads from them.) 17:10:15 -!- optimizer [n=x@unaffiliated/lowlycoder] has quit ["leaving"] 17:10:17 That's how it will usually work internally, yes. 17:11:12 will be quite painful if my objects are bytes and I have to synchronize byte-by-byte 17:12:10 Yes, of course: that's why you will have a Scheme process to repeatedly synchronize a rendezvous that reads input from the pipe when you want to read an aggregate input. 17:13:53 -!- hkBst [n=hkBst@gentoo/developer/hkbst] has quit [Connection reset by peer] 17:14:09 uh, I don't get that 17:14:23 Since this is Scheme, processes/threads can automatically be lightweight, because continuations can have a compact representation, unlike in C, where the language implementation just reserves a block of memory for continuations, and if the application wants a compact representation, it must store that itself in event loops. 17:14:43 Don't get what? 17:15:08 saccade [n=saccade@65-78-24-131.c3-0.smr-ubr1.sbo-smr.ma.cable.rcn.com] has joined #scheme 17:16:01 choas [n=lars@p5B0DE6AA.dip.t-dialin.net] has joined #scheme 17:16:23 -!- saccade [n=saccade@65-78-24-131.c3-0.smr-ubr1.sbo-smr.ma.cable.rcn.com] has quit [Client Quit] 17:17:33 oh, THAT part I get 17:17:51 I wrote a server with call/cc in CL, for just that reason 17:18:15 using IOlib's event loop and arnesi's call/cc 17:18:29 annodomini [n=lambda@wikipedia/lambda] has joined #scheme 17:18:34 communicating through sockets. 17:20:55 -!- MichaelRaskin [n=MichaelR@213.171.48.239] has quit [Remote closed the connection] 17:22:43 REPLeffect [n=REPLeffe@69.54.115.254] has joined #scheme 17:27:06 By the way, it's not really that rendezvous are buffered. When I said that a rendezvous in an enabled state has an associated value, I didn't mean that the rendezvous *stores* the value; in fact, you can't get at the value without potentially communicating information to other processes. 17:27:54 So another way to think about it is that another process makes a rendezvous enabled by offering a value; if one process synchronizes that rendezvous, then it accepts the value from the other process. 17:29:08 And while a rendezvous may be enabled with some value at some time t, it may cease to be enabled at some later time t', even if in the interval [t, t'], no process ever synchronized it. 17:30:24 so how can you poll? once a process has agreed to reply, it HAS to? 17:30:26 This can happen, for example, if the rendezvous in question were that associated with reading an octet from a pipe, and another process synchronized a choice of two rendezvous: one to write to that pipe, and one to write to another pipe. While the writing process is waiting, rendezvous for reading from both pipes are enabled, but if another process reads from one of the pipes, the rendezvous for reading from the other one may ce 17:30:46 You can't poll without communicating with another process. 17:30:50 so if one process makes a promise to post something and fail on the promise, the listener is a victim? 17:31:09 In other words, `polling' is really just synchronizing with a zero timeout. 17:31:58 in the P listening to f and g scenario, I poll, f makes a promise that turns out to be no good, g delivers on the promise, but too late, I've started synchronizing on f and I'll never return? 17:32:15 What do you mean `f makes a promise that turns out to be no good'? 17:32:35 you said that there's no buffer - it's computed on the fly 17:32:48 if the computation fails -- bumme 17:32:49 r 17:32:51 I still don't know what you mean by `f makes a promise that turns out to be no good'. 17:33:21 tessier [n=treed@mail.copilotco.com] has joined #scheme 17:34:26 When P synchronizes on a choice between reading from f and reading from g, if f is enabled, then P proceeds with the value with which f is enabled. If these pipes do not have buffers, and some process were waiting to write an octet o to f, then P would proceed with o. 17:34:33 f is one of your computed r-v instead of a buffered r-v 17:34:54 Don't think of it as `computed rendezvous' versus `buffered rendezvous'; they're all about communicating with other processes, not about computations or buffers. 17:35:03 if that's the case, then shall the computation not terminate, you're hosed 17:35:49 IOW, does a r-v contractually provide you a VALUE, or a ~~VALUE 17:36:04 If you synchronize (map-rendezvous (pipe-read-rendezvous f) (lambda (octet) ...a non-terminating computation...)), then sure: P won't terminate. But rendezvous has nothing to do with this; if P enters a non-terminating computation, whether or not rendezvous are involved, it won't terminate. 17:36:16 (where ~A is the type for a continuation for A) 17:36:26 I don't understand. 17:36:40 do you understand A vs ~A vs ~~A ? 17:36:49 No. 17:36:57 ~A is the type of a continuation that takes an A 17:37:12 ~~A is a continuation that takes a continuation that takes an A 17:38:09 OK... I don't see what continuations have to do with this, though, except inasmuch as MAP-RENDEZVOUS takes something that can be seen as acting like a continuation. 17:38:33 does an enabled r-v contain an actual value, so synchronizing on it always calls your continuation, once, or does synchronizing on it take your continuation and maybe invokes it or maybe loses it along the way 17:38:41 Nothing gets lost! 17:38:59 "nothing is lost, all is transformed" 17:39:14 but if my continuation is transformed to /dev/null I'll be sad 17:39:21 A rendezvous does not itself store a value. 17:40:11 If you synchronize a rendezvous, though, and it is enabled with some value (e.g., if you synchronize on a rendezvous for reading from a (currently empty) pipe f, and then another process writes o to f), then you will proceed with the value (o). 17:41:45 so if I have a map-rendezvous that maps (lambda (x) (bottom)) and I select on it, will I fall in the bottom or avoid it? 17:42:08 TR2N [i=email@89-180-182-123.net.novis.pt] has joined #scheme 17:42:16 There's no difference between (f (synchronize rv)) and (synchronize (map-rendezvous rv f)). 17:42:32 If f does not terminate, then the process won't terminate either way. 17:42:45 then I fall in the bottom -- I lose 17:42:45 there's a BIG difference 17:42:50 if I can select 17:42:51 But this has nothing to do with rendezvous. 17:42:56 yes it does 17:42:59 This has to do with non-terminating computations. 17:43:14 Rendezvous aren't about process-local computations -- they're about communication between processes. 17:43:19 if I can select and I don't fall in the bottom, I'll always get results from my other event sources 17:43:30 if I can select but am sucked into the bottom, I die 17:43:34 BIG difference 17:43:36 If you're concerned about that, don't use MAP-RENDEZVOUS with a non-terminating procedure. 17:44:04 Again: this isn't about process-local computations. 17:44:21 it's still about the difference between A and ~~A 17:44:28 ~~A is weaker than A 17:44:53 so some r-v actually provide A, some only provide ~~A -- use at your own risk 17:45:11 -!- Modius [n=Modius@24.174.112.56] has quit [Read error: 60 (Operation timed out)] 17:46:40 ASau [n=user@ppp91-76-58-16.pppoe.mtu-net.ru] has joined #scheme 17:46:47 whichever it is, it should be made clear in the documentation 17:46:49 There are many ways to make a process fail to terminate. The rendevzous abstraction adds to this set only (synchronize (choosing-rendezvous)), or (synchronize (channel-receive-rendezvous (make-channel))), &c.; it was always possible to write non-terminating procedures without rendezvous, though. 17:47:52 of course, you can make something halt. The question is whether the contract of "enabled" means that you may be sucked into the bottomless pit or not. 17:47:54 I think it is fairly clear that (synchronize (map-rendezvous rv a-non-terminating-procedure)) will not terminate, whether or not rv is ever enabled. What do you think was unclear? 17:48:50 not fair -- it could just stay in a blocked state. 17:49:19 once again, both specs are coherent -- just document it. 17:49:49 Sorry, what do you mean by `not fair -- it could just stay in a blocked state'? I think I'm missing the referent of `it'. 17:50:48 Aha! I think I get it: you are concerned about whether (synchronize (choosing-rendezvous rv-a (map-rendezvous rv-b infinite-loop))) will yield the value of rv-a if it is ever enabled. 17:50:59 albacker [n=eni@unaffiliated/enyx] has joined #scheme 17:51:36 Is that right? 17:51:36 -!- ASau [n=user@ppp91-76-58-16.pppoe.mtu-net.ru] has quit [Read error: 54 (Connection reset by peer)] 17:52:05 ASau [n=user@ppp91-76-58-16.pppoe.mtu-net.ru] has joined #scheme 17:55:29 yes 17:55:29 -!- ASau [n=user@ppp91-76-58-16.pppoe.mtu-net.ru] has quit [Read error: 104 (Connection reset by peer)] 17:55:44 is select bottom-avoiding, or bottom-sucked? 17:55:44 ASau [n=user@ppp91-76-58-16.pppoe.mtu-net.ru] has joined #scheme 17:55:45 In order to make synchronization work, that expression cannot terminate if rv-b becomes enabled before rv-a is enabled, for a very particular reason. 17:56:33 I like a bottom-avoiding select 17:56:56 incwolf [n=phil@cpe-76-172-228-179.socal.res.rr.com] has joined #scheme 17:57:00 what reason is that? 17:57:19 Suppose rv-b is a rendezvous for reading from a pipe without a buffer, so that whoever wants to write to it must block; this means that if you write to it, as soon as you proceed, you are guaranteed that someone received what you wrote to it. 17:58:00 This is a crucial property of CML, which is about synchronizing the states of processes. 17:58:46 -!- ASau [n=user@ppp91-76-58-16.pppoe.mtu-net.ru] has quit [Read error: 104 (Connection reset by peer)] 17:59:00 ASau [n=user@ppp91-76-58-16.pppoe.mtu-net.ru] has joined #scheme 17:59:59 So, if process P runs (synchronize (choosing-rendezvous rv-a (map-rendezvous rv-b (lambda (x) ...nonterminating...)))), and then someone writes to the pipe from which rv-b is a rendezvous for reading, the value written to the pipe is passed to the procedure (lambda (x) ...nonterminating...) in P, and the writer goes along its merry way confident that someone has received what it wrote. 18:00:31 Now process P cannot back out of its choice of rv-b and choose rv-a instead, because it has already told the writer that it has accepted the value sent on the pipe. 18:01:06 then map-rendezvous shouldn't return a rendez-vous -- it's a false promise 18:01:21 or it should spawn a new process 18:01:36 that will get stuck 18:01:45 but save P 18:01:57 If you are concerned about that, you can always spawn a new process yourself. 18:02:33 I don't know where you get the idea of a `false promise', though. 18:02:34 -!- ASau [n=user@ppp91-76-58-16.pppoe.mtu-net.ru] has quit [Read error: 104 (Connection reset by peer)] 18:02:53 whatever - the contract of a rendez-vous should clearly explain that. 18:03:06 ASau [n=user@ppp91-76-58-16.pppoe.mtu-net.ru] has joined #scheme 18:03:18 Dawgmatix [n=user@c-76-124-15-45.hsd1.nj.comcast.net] has joined #scheme 18:03:38 If some basic rendezvous rv is chosen in a choice that involves (map-rendezvous (map-rendezvous ... (map-rendezvous rv fN) ... f2) f1), then (synchronize (choosing-rendezvous ...)) reduces to (f1 (f2 ... (fN ) ...)). 18:04:18 -!- pumpkin [n=pumpkin@pumpkinpro.cs.dartmouth.edu] has quit [] 18:04:53 are map-rendezvous the only ones that can suck you into the pit, or are there others? 18:05:14 You can also make a rendezvous that, upon synchronization, performs some action, such as sending a request to a server. 18:05:32 The action of sending the request to the server might not terminate. 18:06:05 If it does terminate, then the synchronization reduces to the synchronization of another rendezvous, such as one for receiving a reply from the server. 18:06:37 when handed a rv, can I query if it's one of the guaranteed-terminating rvs? 18:07:16 No. If I hand you a Turing machine, can you tell me whether or not it's one of those guaranteed-terminating ones? 18:07:38 yes 18:07:44 Well, golly. 18:07:48 I pass it through one of my typecheckers 18:07:55 if it fails the test, I refuse to run it 18:08:53 -!- ejs [n=eugen@154-237-124-91.pool.ukrtel.net] has quit [Read error: 110 (Connection timed out)] 18:08:54 Anyway, consider (channel-receive-rendezvous (make-channel)). Nobody will ever send a message on that channel. How can I tell? 18:09:47 but if I am bottom avoiding, I don't care, that's THEIR problem, they won't suck me into it. 18:10:46 so there, if I'm given a rv of the wrong kind, I spawn a ten-foot-pole subprocess to handle it 18:11:06 Riastradh: what do rendezvous' correspond to in other CML implementations? 18:11:35 -!- langmartin [n=user@exeuntcha.tva.gov] has quit [Read error: 104 (Connection reset by peer)] 18:12:05 samth, they're called `events' in Reppy's nomenclature (which is wrong -- the objects are not events, and do not each describe an event). 18:12:29 -!- ASau [n=user@ppp91-76-58-16.pppoe.mtu-net.ru] has quit [Read error: 104 (Connection reset by peer)] 18:12:43 ASau [n=user@ppp91-76-58-16.pppoe.mtu-net.ru] has joined #scheme 18:13:25 and what is `map-rendezvous'? 18:13:50 wrap 18:14:13 ok 18:16:17 -!- ASau [n=user@ppp91-76-58-16.pppoe.mtu-net.ru] has quit [Read error: 104 (Connection reset by peer)] 18:16:28 Narrenschiff [n=ritchie@xolotl.plus.com] has joined #scheme 18:16:49 ASau [n=user@ppp91-76-58-16.pppoe.mtu-net.ru] has joined #scheme 18:18:53 -!- ASau [n=user@ppp91-76-58-16.pppoe.mtu-net.ru] has quit [Read error: 104 (Connection reset by peer)] 18:19:28 ASau [n=user@ppp91-76-58-16.pppoe.mtu-net.ru] has joined #scheme 18:21:36 -!- ASau [n=user@ppp91-76-58-16.pppoe.mtu-net.ru] has quit [Read error: 104 (Connection reset by peer)] 18:22:04 ASau [n=user@ppp91-76-58-16.pppoe.mtu-net.ru] has joined #scheme 18:25:41 langmartin [n=user@exeuntcha.tva.gov] has joined #scheme 18:26:38 -!- ASau [n=user@ppp91-76-58-16.pppoe.mtu-net.ru] has quit [Read error: 104 (Connection reset by peer)] 18:27:08 ASau [n=user@ppp91-76-58-16.pppoe.mtu-net.ru] has joined #scheme 18:32:23 -!- ASau [n=user@ppp91-76-58-16.pppoe.mtu-net.ru] has quit [Read error: 104 (Connection reset by peer)] 18:32:48 ASau [n=user@ppp91-76-58-16.pppoe.mtu-net.ru] has joined #scheme 18:35:44 -!- bweaver [n=user@75-148-111-133-Chattanooga.hfc.comcastbusiness.net] has quit [Remote closed the connection] 18:35:49 bweaver [n=user@75-148-111-133-Chattanooga.hfc.comcastbusiness.net] has joined #scheme 18:37:51 -!- ASau [n=user@ppp91-76-58-16.pppoe.mtu-net.ru] has quit [Read error: 54 (Connection reset by peer)] 18:38:25 ASau [n=user@ppp91-76-58-16.pppoe.mtu-net.ru] has joined #scheme 18:39:34 hezy_ [n=hezy@62.56.254.219] has joined #scheme 18:40:15 -!- ASau [n=user@ppp91-76-58-16.pppoe.mtu-net.ru] has quit [Read error: 54 (Connection reset by peer)] 18:40:37 -!- hezy_ [n=hezy@62.56.254.219] has quit [Read error: 104 (Connection reset by peer)] 18:41:23 -!- Dawgmatix [n=user@c-76-124-15-45.hsd1.nj.comcast.net] has quit [Read error: 104 (Connection reset by peer)] 18:42:31 -!- jao [n=jao@214.Red-88-6-162.staticIP.rima-tde.net] has quit [Read error: 104 (Connection reset by peer)] 18:42:52 ASau [n=user@ppp91-76-58-16.pppoe.mtu-net.ru] has joined #scheme 18:43:42 -!- ASau [n=user@ppp91-76-58-16.pppoe.mtu-net.ru] has quit [Read error: 104 (Connection reset by peer)] 18:43:55 ASau [n=user@ppp91-76-58-16.pppoe.mtu-net.ru] has joined #scheme 18:46:19 can i do a func that gets AAABB in input and returns 3A2B in scheme? 18:46:35 yes 18:47:01 are there string functions or i'll have to convert everything in a list? 18:47:09 (define (foo x) (if (string=? x "AAABB") "3A2B" (error "unknown input"))) 18:47:14 :P 18:47:23 sjamaan, that was not the point -_- 18:47:26 haha 18:47:45 Sure there are string functions 18:48:11 specbot: r5rs string-ref 18:48:11 http://www.schemers.org/Documents/Standards/R5RS/HTML/r5rs-Z-H-9.html#%_idx_498 18:48:15 Start there :) 18:48:15 -rudybot:#scheme- http://tinyurl.com/cd7mm2 18:48:57 thanks 18:49:06 they never taught me this stuff in school 18:49:11 albacker: for more string things, check SRFI-13 http://srfi.schemers.org/srfi-13/srfi-13.html 18:49:24 all they taught me was car,cdr and some tree library they had written.. :( 18:49:27 Most implementations provide srfi-13 as a library. 18:49:32 yeah, srfi-13 owns 18:49:50 albacker: They were focusing on teaching you concepts, not on getting something done 18:50:11 sjamaan, probably. 18:50:15 concepts allow you to get something done later on 18:50:18 such a pitty i didnt have more time to learn itt myself :) 18:50:34 Well, that's what you're doing now, isn't it? :) 18:50:37 albacker: it's a good investment when you have time. 18:51:00 are there apps written in scheme btw? 18:51:05 or is it just a scripting language? 18:51:13 both 18:51:17 There are several scheme compilers 18:51:33 Some compile down to machine code, some compile to C and some are bytecode compilers 18:51:50 some interpret data-structures 18:51:53 some compile to JS 18:52:05 -!- ASau [n=user@ppp91-76-58-16.pppoe.mtu-net.ru] has quit [Read error: 104 (Connection reset by peer)] 18:52:31 ASau [n=user@ppp91-76-58-16.pppoe.mtu-net.ru] has joined #scheme 18:52:35 i love scheme, it's a nice language but i can't see its usage as a must-have in a field for example. 18:52:42 some rewrite source code strings dynamically 18:52:45 i'd like to know it better though and i will :D 18:53:06 not in a field, but what about in a non-commutative algebra? 18:53:17 or a sobolev space? 18:53:30 dunno what that is :S 18:53:31 albacker: For practical use, you might want to check out PLT Scheme or Chicken Scheme. They both have a large amount of available libraries 18:53:58 sjamaan, i got a book from scheme.org 18:54:10 before i had worked with mit lectures i think.. 18:54:13 which book? 18:54:44 TSPL probably 18:54:55 yeah 18:54:58 A nice one. 18:55:00 tspl3 (or 4) 18:55:07 I never really read that 18:56:26 there are different dialects of scheme too ? that use different libraries and stuff. 18:56:37 why dont they mess everything one in one book :D 18:56:47 s/one/up 18:57:06 yeah, most schemes have their own unique libraries 18:57:21 But most schemes implement many of the srfi's 18:57:26 Like the one mario-goulart showed you 18:57:28 -!- ASau [n=user@ppp91-76-58-16.pppoe.mtu-net.ru] has quit [Read error: 54 (Connection reset by peer)] 18:57:38 ASau [n=user@ppp91-76-58-16.pppoe.mtu-net.ru] has joined #scheme 18:58:57 i'll read tspl on the weekend. 18:59:06 o_O 18:59:12 Isn't that a really big book? 18:59:21 i got an exam tomorrow in Data Management systems. 18:59:29 sjamaan, hehe, i wont read it ALL in the weekend. 18:59:33 ah 18:59:44 i'll read some concepts and write code to practice :) 18:59:52 Great 18:59:59 since i already know some recursion and th basics about lists.. and trees. 19:00:12 -!- ASau [n=user@ppp91-76-58-16.pppoe.mtu-net.ru] has quit [Read error: 104 (Connection reset by peer)] 19:00:14 i'll have to read about lambda concept.. since they never managed to explain it to us. 19:00:37 offby1` [n=user@q-static-138-125.avvanta.com] has joined #scheme 19:00:46 ASau [n=user@ppp91-76-58-16.pppoe.mtu-net.ru] has joined #scheme 19:00:53 thanks for the help Fare sjamaan mario-goulart 19:00:57 yw 19:01:56 albacker: you're welcome. 19:02:47 rudybot_ [n=luser@q-static-138-125.avvanta.com] has joined #scheme 19:02:57 -!- ASau [n=user@ppp91-76-58-16.pppoe.mtu-net.ru] has quit [Read error: 104 (Connection reset by peer)] 19:03:24 ASau [n=user@ppp91-76-58-16.pppoe.mtu-net.ru] has joined #scheme 19:07:11 -!- offby1 [n=user@pdpc/supporter/monthlybyte/offby1] has quit [Read error: 145 (Connection timed out)] 19:09:25 jao [n=jao@195.Red-83-33-226.dynamicIP.rima-tde.net] has joined #scheme 19:11:30 -!- ASau [n=user@ppp91-76-58-16.pppoe.mtu-net.ru] has quit [Read error: 104 (Connection reset by peer)] 19:12:13 ASau [n=user@ppp91-76-58-16.pppoe.mtu-net.ru] has joined #scheme 19:12:59 Nshag [i=user@Mix-Orleans-106-3-178.w193-248.abo.wanadoo.fr] has joined #scheme 19:15:17 -!- rudybot [n=luser@q-static-138-125.avvanta.com] has quit [Read error: 113 (No route to host)] 19:17:36 -!- ASau [n=user@ppp91-76-58-16.pppoe.mtu-net.ru] has quit [Read error: 54 (Connection reset by peer)] 19:17:51 ASau [n=user@ppp91-76-58-16.pppoe.mtu-net.ru] has joined #scheme 19:19:49 -!- rdd [n=rdd@c83-250-145-223.bredband.comhem.se] has quit [Remote closed the connection] 19:21:07 schmir [n=schmir@p54A90F5D.dip0.t-ipconnect.de] has joined #scheme 19:22:40 davazp [n=user@56.Red-79-153-148.dynamicIP.rima-tde.net] has joined #scheme 19:22:40 -!- ASau [n=user@ppp91-76-58-16.pppoe.mtu-net.ru] has quit [Read error: 54 (Connection reset by peer)] 19:23:47 ASau [n=user@ppp91-76-58-16.pppoe.mtu-net.ru] has joined #scheme 19:27:17 -!- ASau [n=user@ppp91-76-58-16.pppoe.mtu-net.ru] has quit [Read error: 104 (Connection reset by peer)] 19:27:57 ASau [n=user@ppp91-76-58-16.pppoe.mtu-net.ru] has joined #scheme 19:29:43 -!- ASau [n=user@ppp91-76-58-16.pppoe.mtu-net.ru] has quit [Read error: 104 (Connection reset by peer)] 19:29:58 how does let work ? 19:30:05 ASau [n=user@ppp91-76-58-16.pppoe.mtu-net.ru] has joined #scheme 19:30:18 You can think of it as a macro that gets rewritten to lambda 19:30:20 (let (len (string->list str)) this gives me an error 19:30:26 let: bad syntax (not an identifier and expression for a binding) in: (len) 19:30:38 (let ((len (string->list str)))) 19:30:41 (let ((x 1) (y 2)) (do-something x y)) => ((lambda (x y) (do-something x y)) 1 2) 19:30:53 the first argument is a list of declerations 19:30:58 not a single decleration 19:32:47 i just wrote the uggliest string-length recursive function 19:32:59 jeapostrophe [n=jay@69.169.141.110.provo.static.broadweavenetworks.net] has joined #scheme 19:32:59 -!- ASau [n=user@ppp91-76-58-16.pppoe.mtu-net.ru] has quit [Read error: 104 (Connection reset by peer)] 19:33:15 albacker: grats 19:33:32 string-length is in the standard, btw 19:33:37 specbot: r5rs string-length 19:33:38 http://www.schemers.org/Documents/Standards/R5RS/HTML/r5rs-Z-H-9.html#%_idx_496 19:33:47 -rudybot_:#scheme- http://tinyurl.com/5gt5v8 19:34:02 i just saw it :( i was going to write it. 19:34:14 Arelius, is this wrong-written http://pastebin.com/m48010bb2 ? 19:34:22 ASau [n=user@ppp91-76-58-16.pppoe.mtu-net.ru] has joined #scheme 19:34:25 It's a good exercise 19:34:27 i can't even test it with "aaa" cos it will freeze.. 19:34:38 i should pass cdr as argument. 19:34:47 MichaelRaskin [n=MichaelR@195.91.224.225] has joined #scheme 19:34:58 (+ 1 (len (list->string (cdr l)))) 19:35:12 is there a function that sees the time of the function that it takes? 19:35:23 just to compare it with string-length 19:35:39 -!- Fare [n=Fare@c-24-218-127-11.hsd1.ma.comcast.net] has quit ["Leaving"] 19:37:04 I don't think in the standard 19:37:14 but you're method is going to be *much* slower 19:37:42 with all those strin to list conversions :) 19:37:48 you could use unix 'time' on the whole program 19:37:59 i'm using drscheme. 19:38:04 is there a terminal interpreter? 19:38:05 and lst to str 19:38:16 mzscheme I think it is called 19:38:17 Arelius, yeah i suck at logics :P 19:38:24 albacker: What implementation are you using? 19:38:39 Essentials of Program.. 19:38:41 Arelius: Using 'time' on the whole program may just end up measuring implementation start up time. 19:38:48 albacker: No, what implementation of Scheme are you using? 19:39:00 chandler, i'm afraid i don't understand your question. 19:39:43 How are you running Scheme programs? 19:39:48 chandler: Sure, you'd have to run the actual test many many times 19:40:02 chandler, drscheme 19:40:15 i'm using drscheme. 19:40:23 I missed that. 19:40:32 -!- Narrenschiff [n=ritchie@xolotl.plus.com] has quit [] 19:40:40 Try something like (time expression) 19:40:50 This might also help: http://planet.plt-scheme.org/package-source/schematics/benchmark.plt/2/0/planet-docs/benchmark/api.html 19:40:51 abbyz [n=adkulkar@unaffiliated/abbyz] has joined #scheme 19:40:58 -rudybot_:#scheme- http://tinyurl.com/yfdhj5a 19:41:22 I don't think he needs to install anything from PLaneT just to measure time. 19:41:29 *shrugs* 19:41:32 I don't use PLT 19:41:40 in a 3 char len string mine is 1 second slower :P 19:41:41 It does look like a nice package though 19:41:49 let's try with a 10 char string. 19:41:56 that's a lot slower 19:41:57 Arelius: I do. 19:42:20 rdd [n=user@c83-250-145-223.bredband.comhem.se] has joined #scheme 19:42:29 -!- ASau [n=user@ppp91-76-58-16.pppoe.mtu-net.ru] has quit [Read error: 104 (Connection reset by peer)] 19:42:56 cpu time: 0 real time: 1 gc time: 0 19:42:56 30 19:42:56 cpu time: 0 real time: 0 gc time: 0 19:42:56 30 19:43:02 even with 30 char length.. it says 1 19:43:09 albacker: So, first I'd suggest modfying it to only do this string->list conversion once, and not do any list->string conversions 19:43:19 Arelius, i could improve it by .. yeah.. what you said :D 19:43:31 i could work on lists all the time.. and convert it back at the 0 case :) 19:43:51 Do you ever need to convert it back? 19:44:52 it just returns the length, it shouldn't ever need to make it back into a string 19:44:59 ASau [n=user@ppp91-76-58-16.pppoe.mtu-net.ru] has joined #scheme 19:45:10 true 19:45:22 can i (define () inside a (define ? 19:45:28 Fare [n=Fare@c-24-218-127-11.hsd1.ma.comcast.net] has joined #scheme 19:45:51 It'd probally be better to letrec 19:46:19 let's read about it 19:46:32 (letrec ((innerfunc (lambda (strlst) ...))) (innerfunc (string->list str))) 19:47:04 i should have a look at lambda too 19:47:17 letrec works just like let except the variable declerations are avaliable during the defination 19:47:26 It is no different from using LETREC. Whether to use LETREC or internal definitions is a matter of style. 19:47:29 lambda creates an nameless function and returns it 19:47:42 Riastradh: Fair enough. 19:47:55 lambda is like (fun x -> do something with x) in ocaml (for someone who know ocaml?) 19:48:02 Yes, albacker. 19:48:10 i see 19:53:06 give me a hint .. what am i doing wrong : http://pastebin.com/m2fe79700 19:54:01 When you pass at least one argument to LEN2, the list of its arguments, LI, will always be nonempty, and hence a pair. 19:54:15 (lamda (li) ...) 19:54:19 is probally what you want 19:54:24 Most likely you wanted LEN2 to be a procedure that accepts one argument, rather than a procedure that accepts any number of arguments. 19:55:05 i don't see how the ( and ) would change anything in this case, well they did but i still dont see the usage. 19:55:12 (func (a)) is same as (func a) 19:55:14 no? 19:55:19 no 19:55:43 plus 19:55:43 No, albacker. (FUNC (A)) applies FUNC to one argument, the value of applying A to zero arguments. 19:55:50 (FUNC A) applies FUNC to one argument, A. 19:55:50 lambda is a special form 19:56:04 Every pair of parentheses is significant in Scheme, albacker. It is not like ML. 19:56:39 okay i see 19:56:52 (define (func y) ...) -> (define func (lambda (y) ...)) 19:57:12 (define (func . y) ...) (define func (lambda y ...)) 19:57:25 -> in the middle of the last two 19:57:38 faster now though :D \o/ 19:57:48 As it should be 19:58:18 anyways, in order to get any resonable timing information on that sort of benchmark you should run it like 100 or so times inside of the (time ...) call 19:58:40 yeah i'll make a loop func. 20:00:08 but i know i just wrote smth useless 20:00:12 that already exists :9 20:00:12 :(* 20:03:12 the second one is mine 20:03:13 cpu time: 4 real time: 9 gc time: 0 20:03:13 0 20:03:13 cpu time: 20 real time: 33 gc time: 0 20:03:13 0 20:03:27 1000 calls in a "EEEEE" string :S 20:04:48 -!- davazp [n=user@56.Red-79-153-148.dynamicIP.rima-tde.net] has quit ["ERC Version 5.3 (IRC client for Emacs)"] 20:06:27 -!- ASau [n=user@ppp91-76-58-16.pppoe.mtu-net.ru] has quit [Read error: 104 (Connection reset by peer)] 20:06:43 ASau [n=user@ppp91-76-58-16.pppoe.mtu-net.ru] has joined #scheme 20:12:26 dilfridge [n=quassel@gateway.maximilianeum.mhn.de] has joined #scheme 20:16:14 -!- schmir [n=schmir@p54A90F5D.dip0.t-ipconnect.de] has quit [Read error: 113 (No route to host)] 20:19:50 Just be glad that these core functions are well optimized 20:21:33 Arelius, just in case this isn't already on your to-read list: http://zedshaw.com/essays/programmer_stats.html 20:25:40 -!- albacker [n=eni@unaffiliated/enyx] has quit ["Leaving"] 20:27:05 That's an interesting essay. 20:27:42 mmc [n=mima@cs27122078.pp.htv.fi] has joined #scheme 20:30:57 -!- ASau [n=user@ppp91-76-58-16.pppoe.mtu-net.ru] has quit [Read error: 104 (Connection reset by peer)] 20:31:42 kilimanjaro [n=kilimanj@70.116.95.163] has joined #scheme 20:33:23 ASau [n=user@ppp91-76-58-16.pppoe.mtu-net.ru] has joined #scheme 20:33:43 zanes [n=zane@nomad.ccs.neu.edu] has joined #scheme 20:36:31 Indeed 20:40:42 hotblack23 [n=jh@p5B057245.dip.t-dialin.net] has joined #scheme 20:43:26 schemer999 [n=tmilford@cpe-76-90-137-46.socal.res.rr.com] has joined #scheme 20:43:26 -!- ASau [n=user@ppp91-76-58-16.pppoe.mtu-net.ru] has quit [Read error: 104 (Connection reset by peer)] 20:44:01 ASau [n=user@ppp91-76-58-16.pppoe.mtu-net.ru] has joined #scheme 20:44:55 -!- luz [n=davids@139.82.89.70] has quit ["Client exiting"] 20:47:56 -!- ASau [n=user@ppp91-76-58-16.pppoe.mtu-net.ru] has quit [Read error: 104 (Connection reset by peer)] 20:48:08 ASau [n=user@ppp91-76-58-16.pppoe.mtu-net.ru] has joined #scheme 20:50:41 Overcyn [n=Overcyn@c-24-18-236-227.hsd1.wa.comcast.net] has joined #scheme 20:51:19 hello 20:54:12 -!- Nshag [i=user@Mix-Orleans-106-3-178.w193-248.abo.wanadoo.fr] has quit [Remote closed the connection] 20:56:34 -!- ASau [n=user@ppp91-76-58-16.pppoe.mtu-net.ru] has quit [Read error: 104 (Connection reset by peer)] 20:56:47 ASau [n=user@ppp91-76-58-16.pppoe.mtu-net.ru] has joined #scheme 20:57:48 -!- langmartin [n=user@exeuntcha.tva.gov] has quit ["ERC Version 5.3 (IRC client for Emacs)"] 21:03:03 -!- ecyrb [i=bamoore@SDF.LONESTAR.ORG] has quit ["Eject! Eject! Eject!"] 21:06:24 rouslan [n=admin@pool-70-109-151-129.cncdnh.east.myfairpoint.net] has joined #scheme 21:08:25 -!- ASau [n=user@ppp91-76-58-16.pppoe.mtu-net.ru] has quit [Read error: 54 (Connection reset by peer)] 21:09:11 ASau [n=user@ppp91-76-58-16.pppoe.mtu-net.ru] has joined #scheme 21:11:08 What a steaming pile of heap the x86(-64) ISA is. Urgh! 21:12:08 -!- Edico [n=Edico@unaffiliated/edico] has quit ["Ex-Chat"] 21:12:50 schmir [n=schmir@p54A90F5D.dip0.t-ipconnect.de] has joined #scheme 21:15:37 "pile of heap"? 21:17:40 That is a euphemism for whatever steams your boat in the phrase. 21:17:57 -!- ASau [n=user@ppp91-76-58-16.pppoe.mtu-net.ru] has quit [Read error: 104 (Connection reset by peer)] 21:18:22 ASau [n=user@ppp91-76-58-16.pppoe.mtu-net.ru] has joined #scheme 21:22:11 pile of heap? 21:22:21 you mean stack of heap? 21:23:22 -!- ASau [n=user@ppp91-76-58-16.pppoe.mtu-net.ru] has quit [Read error: 131 (Connection reset by peer)] 21:24:11 A steaming stack of stuff, sure. 21:25:30 ASau [n=user@ppp91-76-58-16.pppoe.mtu-net.ru] has joined #scheme 21:32:42 -!- ASau [n=user@ppp91-76-58-16.pppoe.mtu-net.ru] has quit [Read error: 104 (Connection reset by peer)] 21:33:22 a stack of kludgy extensions to the previous architecture 21:33:35 rcy [n=rcy@96.49.69.62] has joined #scheme 21:35:10 ASau [n=user@ppp91-76-58-16.pppoe.mtu-net.ru] has joined #scheme 21:36:17 `Kludgey' hardly does justice to its gross injustice to sanity. 21:37:36 -!- choas [n=lars@p5B0DE6AA.dip.t-dialin.net] has quit [Read error: 113 (No route to host)] 21:41:21 antoszka [n=antoszka@unaffiliated/antoszka] has joined #scheme 21:44:33 -!- attila_lendvai [n=ati@adsl-89-132-5-156.monradsl.monornet.hu] has quit [Read error: 113 (No route to host)] 21:48:33 EleminoP [n=EleminoP@iub-vpn-192-239.noc.indiana.edu] has joined #scheme 21:50:43 -!- ASau [n=user@ppp91-76-58-16.pppoe.mtu-net.ru] has quit [Read error: 104 (Connection reset by peer)] 21:51:17 ASau [n=user@ppp91-76-58-16.pppoe.mtu-net.ru] has joined #scheme 21:51:18 i need help writing a procedure which merges 2 lists that are already sorted in numerical order 21:52:50 are you here, chandler ? 21:56:18 jesus christ, i just guessed the code 21:56:19 -!- ASau [n=user@ppp91-76-58-16.pppoe.mtu-net.ru] has quit [Read error: 104 (Connection reset by peer)] 21:56:29 ASau [n=user@ppp91-76-58-16.pppoe.mtu-net.ru] has joined #scheme 21:58:06 -!- ASau [n=user@ppp91-76-58-16.pppoe.mtu-net.ru] has quit [Read error: 104 (Connection reset by peer)] 21:58:35 ASau [n=user@ppp91-76-58-16.pppoe.mtu-net.ru] has joined #scheme 22:02:24 -!- hotblack23 [n=jh@p5B057245.dip.t-dialin.net] has quit ["Leaving."] 22:02:24 -!- ASau [n=user@ppp91-76-58-16.pppoe.mtu-net.ru] has quit [Read error: 104 (Connection reset by peer)] 22:02:41 ASau [n=user@ppp91-76-58-16.pppoe.mtu-net.ru] has joined #scheme 22:03:49 ecyrb [i=bamoore@SDF.LONESTAR.ORG] has joined #scheme 22:06:30 -!- rouslan [n=admin@unaffiliated/rouslan] has quit [Remote closed the connection] 22:06:57 -!- samth is now known as samth_away 22:06:58 insertion sort? 22:08:52 -!- dysinger [n=tim@cpe-75-85-135-191.hawaii.res.rr.com] has quit [] 22:08:52 -!- ASau [n=user@ppp91-76-58-16.pppoe.mtu-net.ru] has quit [Read error: 131 (Connection reset by peer)] 22:09:00 merge 22:09:08 i made an insertion sort though 22:09:19 ASau [n=user@ppp91-76-58-16.pppoe.mtu-net.ru] has joined #scheme 22:18:55 So you have 2 sorted lists of numbers you want to merge, right? 22:19:41 i figured it out 22:20:13 do you want to see the code? maybe point out improvements i could make. 22:20:45 Sure. 22:20:46 -!- ASau [n=user@ppp91-76-58-16.pppoe.mtu-net.ru] has quit [Read error: 104 (Connection reset by peer)] 22:21:00 ASau [n=user@ppp91-76-58-16.pppoe.mtu-net.ru] has joined #scheme 22:21:09 http://paste.lisp.org/new/scheme 22:21:27 EleminoP pasted "merge" at http://paste.lisp.org/display/88409 22:21:37 i know i could probably use cond 22:21:41 but i haven't learned what that is yet 22:23:34 You should try using COND; the code would look much cleaner. 22:24:06 otherwise, it looks fine to me. But I'm a novice scheme programmer too. 22:24:50 dmoerner [n=dmr@134.173.14.107] has joined #scheme 22:29:01 dysinger [n=tim@cpe-75-85-135-191.hawaii.res.rr.com] has joined #scheme 22:29:41 alright, thanks 22:30:06 http://www.scheme.com/tspl4/start.html#./start:h7 22:30:30 If you scroll down there are some simple COND examples 22:33:33 -!- rdd [n=user@c83-250-145-223.bredband.comhem.se] has quit [Remote closed the connection] 22:34:43 ah 22:36:54 -!- ASau [n=user@ppp91-76-58-16.pppoe.mtu-net.ru] has quit [Read error: 104 (Connection reset by peer)] 22:37:08 ASau [n=user@ppp91-76-58-16.pppoe.mtu-net.ru] has joined #scheme 22:42:15 -!- ASau [n=user@ppp91-76-58-16.pppoe.mtu-net.ru] has quit [Read error: 104 (Connection reset by peer)] 22:42:17 ASau [n=user@ppp91-76-58-16.pppoe.mtu-net.ru] has joined #scheme 22:46:42 -!- ASau [n=user@ppp91-76-58-16.pppoe.mtu-net.ru] has quit [Read error: 104 (Connection reset by peer)] 22:46:52 ASau [n=user@ppp91-76-58-16.pppoe.mtu-net.ru] has joined #scheme 22:48:04 mdg [n=mdg@unaffiliated/mgroman] has joined #scheme 22:49:45 -!- mario-goulart [n=user@67.205.85.241] has quit [Remote closed the connection] 22:50:45 -!- jonrafkind [n=jon@crystalis.cs.utah.edu] has quit [Read error: 113 (No route to host)] 22:51:00 -!- Fare [n=Fare@c-24-218-127-11.hsd1.ma.comcast.net] has quit ["Leaving"] 22:52:01 -!- ASau [n=user@ppp91-76-58-16.pppoe.mtu-net.ru] has quit [Read error: 104 (Connection reset by peer)] 22:52:29 ASau [n=user@ppp91-76-58-16.pppoe.mtu-net.ru] has joined #scheme 22:55:21 -!- bweaver [n=user@75-148-111-133-Chattanooga.hfc.comcastbusiness.net] has quit [Read error: 113 (No route to host)] 23:04:22 -!- ASau [n=user@ppp91-76-58-16.pppoe.mtu-net.ru] has quit [Read error: 104 (Connection reset by peer)] 23:04:36 ASau [n=user@ppp91-76-58-16.pppoe.mtu-net.ru] has joined #scheme 23:06:35 -!- ASau [n=user@ppp91-76-58-16.pppoe.mtu-net.ru] has quit [Read error: 104 (Connection reset by peer)] 23:06:43 ASau [n=user@ppp91-76-58-16.pppoe.mtu-net.ru] has joined #scheme 23:10:14 -!- dmoerner [n=dmr@134.173.14.107] has quit [Read error: 145 (Connection timed out)] 23:10:30 -!- ASau [n=user@ppp91-76-58-16.pppoe.mtu-net.ru] has quit [Read error: 54 (Connection reset by peer)] 23:10:48 ASau [n=user@ppp91-76-58-16.pppoe.mtu-net.ru] has joined #scheme 23:15:50 dmoerner [n=dmr@89-65.res.pomona.edu] has joined #scheme 23:16:18 -!- Overcyn [n=Overcyn@c-24-18-236-227.hsd1.wa.comcast.net] has quit [] 23:24:14 alright, i think i finished this merge sort, it was easier than i expected 23:25:52 -!- ASau [n=user@ppp91-76-58-16.pppoe.mtu-net.ru] has quit [Read error: 104 (Connection reset by peer)] 23:26:07 ASau [n=user@ppp91-76-58-16.pppoe.mtu-net.ru] has joined #scheme 23:29:12 -!- ASau [n=user@ppp91-76-58-16.pppoe.mtu-net.ru] has quit [Read error: 104 (Connection reset by peer)] 23:29:51 ASau [n=user@ppp91-76-58-16.pppoe.mtu-net.ru] has joined #scheme 23:32:48 rudybot_: later tell EleminoP QuearrS was looking for you 23:32:48 minion: memo for EleminoP: klutometis told me to tell you: QuearrS was looking for you 23:32:48 Remembered. I'll tell EleminoP when he/she/it next speaks. 23:35:22 yes? 23:35:22 EleminoP, memo from rudybot_: klutometis told me to tell you: QuearrS was looking for you 23:36:40 QuearrS 23:39:35 karme [n=user@io.karme.de] has joined #scheme 23:44:42 -!- dysinger [n=tim@cpe-75-85-135-191.hawaii.res.rr.com] has quit [] 23:51:29 -!- ASau [n=user@ppp91-76-58-16.pppoe.mtu-net.ru] has quit [Read error: 104 (Connection reset by peer)] 23:52:04 ASau [n=user@ppp91-76-58-16.pppoe.mtu-net.ru] has joined #scheme 23:52:43 -!- mrsolo [n=mrsolo@nat/yahoo/x-coloetbmpvjbsfxn] has quit ["Leaving"] 23:54:24 -!- schemer999 [n=tmilford@cpe-76-90-137-46.socal.res.rr.com] has quit [] 23:57:58 -!- schmir [n=schmir@p54A90F5D.dip0.t-ipconnect.de] has quit [Remote closed the connection] 23:57:58 emma [n=em@unaffiliated/emma] has joined #scheme 23:58:37 -!- zanes [n=zane@nomad.ccs.neu.edu] has quit []