00:00:59 doomrobo [~Michael@unaffiliated/doomrobo] has joined #scheme 00:04:21 can someone please explain to me how in the world this works? I understand continuations but I don't understand what the call/cc is returning that is being set! http://ideone.com/0jisFF 00:05:14 -!- Khisanth [~Khisanth@50.14.244.111] has quit [Ping timeout: 256 seconds] 00:07:57 drewc: and how do you get access to internet? 00:08:02 satelite? 00:12:28 PuercoPop: many many ways. Right now, cell phone. There is satelite and HAM radio networking as well, and 10 nautical miles away from most marina you can pick up WiFi via BBX (http://beaconwifi.com) 00:12:57 http://www.sailmail.com/ 00:13:26 anybody? 00:13:54 -!- amgarchIn9 [~amgarchin@p4FD605AF.dip0.t-ipconnect.de] has quit [Quit: Konversation terminated!] 00:15:38 PuercoPop: www.getunpluggednow.com ... a whole bunch 00:17:19 doomrobo: what exactly do you want to know? 00:18:02 doomrobo: it returns another continuation 00:18:18 drewc, when it says (set! do-other (call/cc do-other)) what is the (call/cc do-other) returning? It looks like that call/cc just calls another function that call/cc's right back 00:18:27 ijp, I just can't see how it returns a continuations 00:19:09 (call/cc e) evaluates to e 00:19:30 but it passes the current continuation to e so that you have ethe chance of getting the current continuation 00:19:56 Khisanth [~Khisanth@50.14.244.111] has joined #scheme 00:19:59 Just understood it 00:19:59 I hate call/cc, it needs set! to be useful, so you rarely get to give a simple answer 00:20:00 *PuercoPop* nods 00:20:07 -!- scoofy [~scoofy@catv-89-135-71-167.catv.broadband.hu] has left #scheme 00:20:14 So here's how I understand it: 00:20:39 ijp: I like call/cc if it is really shift/reset and delim rather then first class conts :) 00:20:45 drewc: agreed 00:21:05 well, delimted are still first class, but I know what you mean 00:21:13 I pass my state to function b which then does some shit then calls the function to get back to my state and passes its state as an argument. Its state is then interpreted as a return value and is set to the running state I'm keeping of function b. 00:21:18 god that was a mouthful 00:21:28 http://drewc.org/interface/monads.html#sec-6 <--- I know a wee bit about things :) 00:23:54 doomrobo: whenever you call do-other-stuff in superfluous-computation, you do it with call/cc. Passing in the continuation of the loop in superflous-continuation. 00:24:22 I understand that, that wasn't the part that had confused me 00:24:25 but I got it now 00:24:35 now, that do-other-stuff argument is always the continuation of hefty-continuation 00:25:24 so, the result of the (call/cc do-other-stuff) in hefty-computation is always a continuation. 00:25:36 doomrobo: yes, I just wanted to clarify why I said the result was always a continuation 00:25:56 now that you know how to use call/cc, read up on delimited control, and never use it again :) 00:26:05 :p 00:32:05 ijp: have to agree with you there :) 00:35:29 -!- mmc1 [~michal@178-85-64-28.dynamic.upc.nl] has quit [Ping timeout: 252 seconds] 00:40:27 -!- jrajav [~jrajav@66-188-176-243.dhcp.roch.mn.charter.com] has quit [Quit: I tend to be neutral about apples] 00:45:12 -!- pjb [~t@AMontsouris-651-1-253-40.w92-163.abo.wanadoo.fr] has quit [Read error: Connection reset by peer] 00:46:03 pjb [~t@AMontsouris-651-1-253-40.w92-163.abo.wanadoo.fr] has joined #scheme 00:46:49 bokr [~edka@109.110.32.39] has joined #scheme 00:49:45 -!- jonrafkind [~jon@racket/jonrafkind] has quit [Ping timeout: 276 seconds] 00:54:47 -!- acarrico [~acarrico@pppoe-68-142-36-178.gmavt.net] has quit [Ping timeout: 255 seconds] 01:08:52 robot-beethoven [~user@c-24-118-142-0.hsd1.mn.comcast.net] has joined #scheme 01:09:10 -!- robot-beethoven [~user@c-24-118-142-0.hsd1.mn.comcast.net] has quit [Remote host closed the connection] 01:09:30 robot-beethoven [~user@c-24-118-142-0.hsd1.mn.comcast.net] has joined #scheme 01:10:27 acarrico [~acarrico@pppoe-68-142-36-178.gmavt.net] has joined #scheme 01:24:42 b4283 [~b4283@60-249-196-111.HINET-IP.hinet.net] has joined #scheme 01:30:47 -!- pjb-v [~t@voyager.informatimago.com] has quit [Write error: Connection reset by peer] 01:32:51 pjb-v [~t@voyager.informatimago.com] has joined #scheme 01:33:18 -!- PuercoPop [~user@190.222.252.106] has quit [Ping timeout: 276 seconds] 01:34:19 -!- pjb-v [~t@voyager.informatimago.com] has quit [Write error: Connection reset by peer] 01:36:03 -!- rotty [rotty@de.xx.vu] has quit [Ping timeout: 260 seconds] 01:36:12 rotty [rotty@de.xx.vu] has joined #scheme 01:38:39 -!- toekutr [~user@50-0-51-11.dsl.static.sonic.net] has quit [Quit: ERC Version 5.3 (IRC client for Emacs)] 01:40:04 pjb-v [~t@voyager.informatimago.com] has joined #scheme 01:51:33 safekeeping [~safekeepi@c-68-36-167-104.hsd1.nj.comcast.net] has joined #scheme 01:59:45 -!- b1rkh0ff [~b1rkh0ff@178.77.7.250] has quit [Ping timeout: 244 seconds] 02:02:30 -!- peterhil [~peterhil@91-157-48-10.elisa-laajakaista.fi] has quit [Ping timeout: 264 seconds] 02:04:35 tps_ [~tps_@hoasb-50dd08-36.dhcp.inet.fi] has joined #scheme 02:08:42 dgee519 [~dgee519@news.univ.kiev.ua] has joined #scheme 02:11:12 zacts [d03626e6@gateway/web/freenode/ip.208.54.38.230] has joined #scheme 02:19:22 -!- jaimef [jaimef@dns.mauthesis.com] has quit [Quit: Emacs must have died] 02:19:31 jaimef [jaimef@dns.mauthesis.com] has joined #scheme 02:30:48 -!- adiii [~adityavit@static-71-250-238-242.nwrknj.east.verizon.net] has quit [Ping timeout: 264 seconds] 02:37:35 -!- ijp [~user@host86-177-155-70.range86-177.btcentralplus.com] has quit [Ping timeout: 260 seconds] 02:38:19 -!- bokr [~edka@109.110.32.39] has quit [Quit: Leaving.] 02:45:27 -!- zacts [d03626e6@gateway/web/freenode/ip.208.54.38.230] has quit [Ping timeout: 245 seconds] 02:48:30 -!- dgee519 [~dgee519@news.univ.kiev.ua] has left #scheme 02:49:56 toekutr [~user@50-0-51-11.dsl.static.sonic.net] has joined #scheme 02:54:56 peterhil [~peterhil@91-157-48-10.elisa-laajakaista.fi] has joined #scheme 03:10:10 bokr [~edka@109.110.32.39] has joined #scheme 03:14:56 jrslepak [~jrslepak@c-71-233-149-127.hsd1.ma.comcast.net] has joined #scheme 03:20:36 -!- acarrico [~acarrico@pppoe-68-142-36-178.gmavt.net] has quit [Ping timeout: 264 seconds] 03:28:24 kilimanjaro [~kilimanja@unaffiliated/kilimanjaro] has joined #scheme 03:32:53 -!- doomrobo [~Michael@unaffiliated/doomrobo] has quit [Quit: Leaving] 03:34:20 adiii [~adityavit@c-76-117-52-187.hsd1.nj.comcast.net] has joined #scheme 03:35:58 Ah, call/cc. For a fun call/cc puzzle, figure out how same-fringe? works in this paper: http://www.ccs.neu.edu/racket/pubs/pldi93-sitaram.pdf 03:41:30 yacks [~yacks@180.151.36.169] has joined #scheme 03:41:52 francisl [~flavoie@bas6-montreal45-1176365113.dsl.bell.ca] has joined #scheme 03:50:51 -!- bokr [~edka@109.110.32.39] has quit [Quit: Leaving.] 04:03:40 acarrico [~acarrico@pppoe-68-142-36-178.gmavt.net] has joined #scheme 04:04:15 -!- muep [twingo@otitsun.oulu.fi] has quit [Read error: Operation timed out] 04:10:39 jonrafkind [~jon@racket/jonrafkind] has joined #scheme 04:10:58 -!- jao [~user@pdpc/supporter/professional/jao] has quit [Ping timeout: 245 seconds] 04:13:25 muep [twingo@otitsun.oulu.fi] has joined #scheme 04:23:29 MichaelRaskin [~MichaelRa@195.178.216.22] has joined #scheme 04:26:29 preflex_ [~preflex@unaffiliated/mauke/bot/preflex] has joined #scheme 04:27:13 -!- preflex [~preflex@unaffiliated/mauke/bot/preflex] has quit [Ping timeout: 245 seconds] 04:27:16 -!- preflex_ is now known as preflex 04:38:17 -!- snits [~snits@inet-hqmc08-o.oracle.com] has quit [Remote host closed the connection] 04:38:39 wigs [~user@101.119.16.36] has joined #scheme 04:44:25 snits [~snits@174-17-112-107.phnx.qwest.net] has joined #scheme 04:46:18 -!- francisl [~flavoie@bas6-montreal45-1176365113.dsl.bell.ca] has quit [Quit: francisl] 04:46:21 -!- arrdem [~arrdem@resnet-45-187.dorm.utexas.edu] has quit [Quit: leaving] 04:58:45 wigs` [~user@101.119.16.36] has joined #scheme 04:58:46 -!- wigs [~user@101.119.16.36] has quit [Read error: Connection reset by peer] 05:03:16 arrdem [~arrdem@resnet-45-187.dorm.utexas.edu] has joined #scheme 05:06:34 wigs`` [~user@101.119.16.36] has joined #scheme 05:06:34 -!- wigs` [~user@101.119.16.36] has quit [Read error: Connection reset by peer] 05:06:52 jcowan [~John@mail.digitalkingdom.org] has joined #scheme 05:08:39 dnolen [~user@ppp-70-242-115-9.dsl.rcsntx.swbell.net] has joined #scheme 05:10:17 hoi 05:10:59 -!- b4283 [~b4283@60-249-196-111.HINET-IP.hinet.net] has quit [Ping timeout: 248 seconds] 05:18:47 -!- jcowan [~John@mail.digitalkingdom.org] has quit [Remote host closed the connection] 05:21:08 eigenmeister [ad16607f@gateway/web/freenode/ip.173.22.96.127] has joined #scheme 05:30:25 I've scarcely started reading SICP when I am distracted by the change counting example in 1.2 05:30:46 -!- yacks [~yacks@180.151.36.169] has quit [Ping timeout: 246 seconds] 05:31:00 Specifically, the challenge to create an iterative implementation. 05:32:09 I suspect this is equivalent to a knapsack problem, but am not sure how to verify that 05:33:00 doubt that it's particularly topical here 05:36:47 b4283 [~b4283@60-249-196-111.HINET-IP.hinet.net] has joined #scheme 05:46:31 -!- tps_ [~tps_@hoasb-50dd08-36.dhcp.inet.fi] has quit [Read error: Connection reset by peer] 05:46:36 tps__ [~tps_@hoasb-50dd08-36.dhcp.inet.fi] has joined #scheme 05:46:37 yacks [~yacks@180.151.36.169] has joined #scheme 05:50:01 jcowan [~John@mail.digitalkingdom.org] has joined #scheme 06:09:28 -!- jcowan [~John@mail.digitalkingdom.org] has quit [Remote host closed the connection] 06:10:13 jcowan [~John@mail.digitalkingdom.org] has joined #scheme 06:19:14 -!- copumpkin [~copumpkin@unaffiliated/copumpkin] has quit [Ping timeout: 256 seconds] 06:19:43 copumpkin [~copumpkin@unaffiliated/copumpkin] has joined #scheme 06:27:06 -!- snits [~snits@174-17-112-107.phnx.qwest.net] has quit [Ping timeout: 276 seconds] 06:28:08 snits [~snits@inet-hqmc08-o.oracle.com] has joined #scheme 06:38:47 bniels [~niels@p4FD6D576.dip.t-dialin.net] has joined #scheme 06:53:53 -!- copumpkin [~copumpkin@unaffiliated/copumpkin] has quit [Ping timeout: 252 seconds] 06:54:12 -!- eigenmeister [ad16607f@gateway/web/freenode/ip.173.22.96.127] has quit [Ping timeout: 245 seconds] 06:54:21 copumpkin [~copumpkin@unaffiliated/copumpkin] has joined #scheme 07:00:12 safekeeping_ [~safekeepi@c-68-36-167-104.hsd1.nj.comcast.net] has joined #scheme 07:02:44 -!- tps__ [~tps_@hoasb-50dd08-36.dhcp.inet.fi] has quit [Quit: tps__] 07:03:46 -!- safekeeping [~safekeepi@c-68-36-167-104.hsd1.nj.comcast.net] has quit [Ping timeout: 256 seconds] 07:04:21 snowylike [~sn@91-67-171-156-dynip.superkabel.de] has joined #scheme 07:13:42 -!- pjb [~t@AMontsouris-651-1-253-40.w92-163.abo.wanadoo.fr] has quit [Read error: Connection reset by peer] 07:14:06 pjb [~t@AMontsouris-651-1-253-40.w92-163.abo.wanadoo.fr] has joined #scheme 07:17:28 -!- bniels [~niels@p4FD6D576.dip.t-dialin.net] has quit [Remote host closed the connection] 07:19:06 bniels [~niels@p4FD6D576.dip.t-dialin.net] has joined #scheme 07:22:18 -!- safekeeping_ [~safekeepi@c-68-36-167-104.hsd1.nj.comcast.net] has quit [Read error: Connection reset by peer] 07:22:56 -!- hiroakip [~hiroaki@77-20-78-82-dynip.superkabel.de] has quit [Read error: Connection reset by peer] 07:23:54 hiroakip [~hiroaki@77-20-78-82-dynip.superkabel.de] has joined #scheme 07:33:13 -!- snits [~snits@inet-hqmc08-o.oracle.com] has quit [Quit: leaving] 07:46:10 -!- wigs`` [~user@101.119.16.36] has quit [Quit: ERC Version 5.3 (IRC client for Emacs)] 07:53:38 -!- dnolen [~user@ppp-70-242-115-9.dsl.rcsntx.swbell.net] has quit [Ping timeout: 255 seconds] 07:56:01 hkBst [~marijn@79.170.210.172] has joined #scheme 07:56:02 -!- hkBst [~marijn@79.170.210.172] has quit [Changing host] 07:56:02 hkBst [~marijn@gentoo/developer/hkbst] has joined #scheme 07:59:01 -!- robot-beethoven [~user@c-24-118-142-0.hsd1.mn.comcast.net] has quit [Quit: ERC Version 5.3 (IRC client for Emacs)] 08:03:13 mmc1 [~michal@178-85-64-28.dynamic.upc.nl] has joined #scheme 08:06:14 -!- jcowan [~John@mail.digitalkingdom.org] has quit [Remote host closed the connection] 08:06:29 civodul [~user@193.50.110.87] has joined #scheme 08:07:45 girenas [~girenas@87.239.84.161] has joined #scheme 08:08:08 -!- girenas [~girenas@87.239.84.161] has left #scheme 08:27:52 -!- mmc1 [~michal@178-85-64-28.dynamic.upc.nl] has quit [Ping timeout: 246 seconds] 08:32:38 Tanami [~carnage@9ch.in] has joined #scheme 08:33:59 -!- Tanami [~carnage@9ch.in] has quit [Read error: Connection reset by peer] 08:34:28 Tanami [~carnage@9ch.in] has joined #scheme 08:37:23 -!- ASau [~user@46.115.98.84] has quit [Ping timeout: 248 seconds] 08:39:34 wingo [~wingo@cha74-2-88-160-190-192.fbx.proxad.net] has joined #scheme 08:50:21 pessoa [~pessoa@188-195-211-39-dynip.superkabel.de] has joined #scheme 08:54:51 is r7rs really a double standard? there seem to be a big and a small set. 08:55:15 -!- pjb-v [~t@voyager.informatimago.com] has quit [Read error: Connection reset by peer] 08:56:27 pessoa: yes, the r7rs small is being finished, r7rs big will then begin to be worked on. 08:57:30 pjb-v [~t@voyager.informatimago.com] has joined #scheme 08:57:55 -!- kilimanjaro [~kilimanja@unaffiliated/kilimanjaro] has quit [Ping timeout: 260 seconds] 08:58:14 Is there an Scheme equivalent to: http://www.lispworks.com/documentation/HyperSpec/Front/ 08:58:46 -!- toekutr [~user@50-0-51-11.dsl.static.sonic.net] has quit [Read error: Connection reset by peer] 09:00:17 hyperspec for scheme would not make much sense 09:02:55 Well, I mean, a reference for all primitive procedures. 09:08:00 primitives are too implementation dependent 09:14:08 -!- jonrafkind [~jon@racket/jonrafkind] has quit [Ping timeout: 252 seconds] 09:16:59 -!- pessoa [~pessoa@188-195-211-39-dynip.superkabel.de] has quit [Quit: Started wasting time elsewhere] 09:25:56 -!- mark_weaver [~user@209-6-92-20.c3-0.smr-ubr1.sbo-smr.ma.cable.rcn.com] has quit [Ping timeout: 252 seconds] 09:47:42 -!- teiresias [~teiresias@archlinux/trusteduser/teiresias] has quit [Read error: Operation timed out] 09:55:00 -!- Tanami [~carnage@9ch.in] has quit [Ping timeout: 248 seconds] 09:57:02 Tanami [~carnage@9ch.in] has joined #scheme 10:00:22 -!- pjb-v [~t@voyager.informatimago.com] has quit [Read error: Connection reset by peer] 10:01:24 -!- bipt [~bpt@cpe-071-070-253-241.nc.res.rr.com] has quit [Ping timeout: 248 seconds] 10:02:26 pjb-v [~t@voyager.informatimago.com] has joined #scheme 10:04:09 jrapdx [~jra@c-76-115-235-187.hsd1.wa.comcast.net] has joined #scheme 10:04:36 -!- yacks [~yacks@180.151.36.169] has quit [Ping timeout: 248 seconds] 10:08:28 -!- MichaelRaskin [~MichaelRa@195.178.216.22] has quit [Read error: Connection reset by peer] 10:23:29 What is this? http://mumble.net/~jar/pseudoscheme/ 10:24:13 impaktor: Scheme for CL. 10:24:40 It even says so on the page.. Oh well 10:25:07 yeah, so I can write scheme and run it on Common lisp? 10:25:18 Something like that yes 10:25:31 I've never really used it, but I think pjb might know more about it. 10:25:34 So Scheme on SBCL for instance? 10:25:40 Sure 10:26:22 Sounds pretty much what I've been looking for, beautiful code in spite of using CL. 10:26:34 heh 10:31:36 yacks [~yacks@180.151.36.169] has joined #scheme 10:46:20 -!- b4283 [~b4283@60-249-196-111.HINET-IP.hinet.net] has quit [Remote host closed the connection] 10:48:34 lizzin [~lizzin@unaffiliated/lizzin] has joined #scheme 10:48:40 -!- lizzin [~lizzin@unaffiliated/lizzin] has left #scheme 10:48:49 b1rkh0ff [~b1rkh0ff@178.77.7.250] has joined #scheme 11:01:15 -!- bniels [~niels@p4FD6D576.dip.t-dialin.net] has quit [Remote host closed the connection] 11:12:46 tupi [~user@186.205.46.201] has joined #scheme 11:34:53 -!- b1rkh0ff [~b1rkh0ff@178.77.7.250] has quit [Quit: Leaving] 11:38:05 bniels [~niels@p4FD6D576.dip.t-dialin.net] has joined #scheme 11:38:27 mutley89 [~mutley89@cpc1-swin14-2-0-cust274.3-1.cable.virginmedia.com] has joined #scheme 11:44:45 -!- jaaso_afk is now known as jaaso_ 12:19:28 mmc1 [~michal@sams-office-nat.tomtomgroup.com] has joined #scheme 12:31:36 b4283 [~b4283@1-172-80-51.dynamic.hinet.net] has joined #scheme 12:52:58 gravicappa [~gravicapp@h178-129-84-99.dyn.bashtel.ru] has joined #scheme 12:58:04 dgee519 [~dgee519@news.univ.kiev.ua] has joined #scheme 12:59:14 teiresias [~teiresias@archlinux/trusteduser/teiresias] has joined #scheme 13:19:11 dort [~ni@c-66-30-141-98.hsd1.ct.comcast.net] has joined #scheme 13:28:35 -!- dort [~ni@c-66-30-141-98.hsd1.ct.comcast.net] has quit [Ping timeout: 248 seconds] 13:46:38 -!- teiresias [~teiresias@archlinux/trusteduser/teiresias] has quit [Ping timeout: 252 seconds] 13:53:40 teiresias [~teiresias@archlinux/trusteduser/teiresias] has joined #scheme 13:54:23 graememcc [~chatzilla@host86-171-11-36.range86-171.btcentralplus.com] has joined #scheme 13:57:47 -!- peterhil [~peterhil@91-157-48-10.elisa-laajakaista.fi] has quit [Quit: Must not waste too much time here...] 13:58:02 peterhil [~peterhil@91-157-48-10.elisa-laajakaista.fi] has joined #scheme 13:59:06 -!- noam [~noam@213.57.201.130] has quit [Ping timeout: 252 seconds] 14:09:36 dort [~ni@208.81.89.71] has joined #scheme 14:10:22 tps_ [~tps_@hoasb-50dd08-36.dhcp.inet.fi] has joined #scheme 14:10:51 -!- jrslepak [~jrslepak@c-71-233-149-127.hsd1.ma.comcast.net] has quit [Quit: What happened to Systems A through E?] 14:11:48 sambio [~sambio@190.57.227.109] has joined #scheme 14:13:38 -!- taylanub [tub@p4FD94E22.dip.t-dialin.net] has quit [Ping timeout: 272 seconds] 14:18:07 taylanub [tub@p4FD92CAF.dip.t-dialin.net] has joined #scheme 14:18:45 Saturn_ [~rose@111.58.49.132] has joined #scheme 14:19:03 hash_table [~quassel@70-138-246-219.lightspeed.hstntx.sbcglobal.net] has joined #scheme 14:19:52 -!- `fogus|gone [~fogus@freedom.d-a-s.com] has quit [Quit: Leaving] 14:21:40 -!- acarrico [~acarrico@pppoe-68-142-36-178.gmavt.net] has quit [Ping timeout: 244 seconds] 14:25:37 -!- hkBst [~marijn@gentoo/developer/hkbst] has quit [Read error: Connection reset by peer] 14:26:01 hkBst [~marijn@gentoo/developer/hkbst] has joined #scheme 14:26:32 -!- hash_table [~quassel@70-138-246-219.lightspeed.hstntx.sbcglobal.net] has quit [Ping timeout: 240 seconds] 14:30:13 -!- Nshag [user@chl45-1-88-123-84-8.fbx.proxad.net] has quit [Read error: Operation timed out] 14:34:49 dnolen [~user@ppp-70-242-115-9.dsl.rcsntx.swbell.net] has joined #scheme 14:37:49 acarrico [~acarrico@pppoe-68-142-36-178.gmavt.net] has joined #scheme 14:39:34 Nshag [user@chl45-1-88-123-84-8.fbx.proxad.net] has joined #scheme 14:45:44 francisl [~flavoie@199.84.164.114] has joined #scheme 14:46:23 wbooze [~wbooze@xdsl-78-35-141-40.netcologne.de] has joined #scheme 14:46:59 -!- tupi [~user@186.205.46.201] has quit [Ping timeout: 244 seconds] 15:00:21 -!- covi [~covi@wasp.dreamhost.com] has left #scheme 15:01:23 -!- Nshag [user@chl45-1-88-123-84-8.fbx.proxad.net] has quit [Ping timeout: 248 seconds] 15:01:38 jrslepak [~jrslepak@pool-72-93-41-29.bstnma.east.verizon.net] has joined #scheme 15:02:31 Nshag [user@chl45-1-88-123-84-8.fbx.proxad.net] has joined #scheme 15:02:51 sad0ur_ [~sad0ur@ip-78-102-146-61.net.upcbroadband.cz] has joined #scheme 15:03:07 stephe- [~stephe@quux.ca] has joined #scheme 15:03:25 antoszka_ [~antoszka@unaffiliated/antoszka] has joined #scheme 15:03:41 Kooda_ [~the_game@2a01:e35:2f0c:a980:2e0:4cff:fe68:999] has joined #scheme 15:07:48 -!- gravicappa [~gravicapp@h178-129-84-99.dyn.bashtel.ru] has quit [*.net *.split] 15:07:48 -!- cdidd [~cdidd@93-80-71-9.broadband.corbina.ru] has quit [*.net *.split] 15:07:48 -!- antoszka [~antoszka@unaffiliated/antoszka] has quit [*.net *.split] 15:07:48 -!- sad0ur [~sad0ur@ip-78-102-146-61.net.upcbroadband.cz] has quit [*.net *.split] 15:07:48 -!- Kooda [~the_game@2a01:e35:2f0c:a980:2e0:4cff:fe68:999] has quit [*.net *.split] 15:07:49 -!- creep [~acbf666df@2a01:270:dd00:7700:404:dead:beef:cafe] has quit [*.net *.split] 15:07:49 -!- stephe [~stephe@quux.ca] has quit [*.net *.split] 15:10:33 cdidd [~cdidd@93-80-71-9.broadband.corbina.ru] has joined #scheme 15:11:35 -!- bniels [~niels@p4FD6D576.dip.t-dialin.net] has quit [Quit: WeeChat 0.3.8] 15:13:36 -!- wbooze [~wbooze@xdsl-78-35-141-40.netcologne.de] has quit [Ping timeout: 276 seconds] 15:15:48 wbooze [~wbooze@xdsl-78-35-141-40.netcologne.de] has joined #scheme 15:20:12 -!- confab [~confab@086.112-30-64.ftth.swbr.surewest.net] has quit [Remote host closed the connection] 15:23:32 confab [~confab@086.112-30-64.ftth.swbr.surewest.net] has joined #scheme 15:24:31 PuercoPop [~user@190.222.252.106] has joined #scheme 15:28:54 -!- mmc [~michal@sams-office-nat.tomtomgroup.com] has quit [Ping timeout: 264 seconds] 15:29:12 -!- mmc1 [~michal@sams-office-nat.tomtomgroup.com] has quit [Ping timeout: 276 seconds] 15:29:40 -!- dort [~ni@208.81.89.71] has quit [Read error: Connection reset by peer] 15:29:42 ni_ [~ni@208.81.89.71] has joined #scheme 15:30:01 jcowan [~John@mail.digitalkingdom.org] has joined #scheme 15:32:54 -!- jrslepak [~jrslepak@pool-72-93-41-29.bstnma.east.verizon.net] has quit [Quit: What happened to Systems A through E?] 15:35:35 hash_table [~quassel@128.249.96.123] has joined #scheme 15:35:38 mmc [~michal@sams-office-nat.tomtomgroup.com] has joined #scheme 15:35:38 mmc1 [~michal@sams-office-nat.tomtomgroup.com] has joined #scheme 15:40:40 gravicappa [~gravicapp@h178-129-84-99.dyn.bashtel.ru] has joined #scheme 15:47:26 jrslepak [~jrslepak@nomad.ccs.neu.edu] has joined #scheme 15:49:48 -!- Nisstyre [~yours@oftn/member/Nisstyre] has quit [Quit: Leaving] 16:04:53 ase [~se@ip56583baa.direct-adsl.nl] has joined #scheme 16:07:21 -!- hkBst [~marijn@gentoo/developer/hkbst] has quit [Quit: Konversation terminated!] 16:10:03 -!- Saturn_ [~rose@111.58.49.132] has quit [Quit: Leaving] 16:12:30 bipt [~bpt@cpe-071-070-253-241.nc.res.rr.com] has joined #scheme 16:26:20 snits [~snits@inet-hqmc05-o.oracle.com] has joined #scheme 16:45:16 -!- b4283 [~b4283@1-172-80-51.dynamic.hinet.net] has quit [Remote host closed the connection] 16:46:52 -!- gravicappa [~gravicapp@h178-129-84-99.dyn.bashtel.ru] has quit [Remote host closed the connection] 16:47:08 gravicappa [~gravicapp@h178-129-84-99.dyn.bashtel.ru] has joined #scheme 16:57:48 -!- bipt [~bpt@cpe-071-070-253-241.nc.res.rr.com] has quit [Ping timeout: 264 seconds] 17:04:49 -!- jcowan [~John@mail.digitalkingdom.org] has quit [Ping timeout: 246 seconds] 17:06:42 jcowan [~John@mail.digitalkingdom.org] has joined #scheme 17:08:15 tupi [~user@139.82.89.157] has joined #scheme 17:08:44 -!- sirdancealot7 [~sirdancea@98.82.broadband5.iol.cz] has quit [Read error: Connection reset by peer] 17:13:46 MrFahrenheit [~RageOfTho@cable-77-221-21-70.dynamic.telemach.ba] has joined #scheme 17:15:08 MichaelRaskin [~MichaelRa@195.91.224.225] has joined #scheme 17:16:14 -!- civodul [~user@193.50.110.87] has quit [Remote host closed the connection] 17:16:43 -!- cdidd [~cdidd@93-80-71-9.broadband.corbina.ru] has quit [Quit: Leaving] 17:31:38 -!- mmc [~michal@sams-office-nat.tomtomgroup.com] has quit [Ping timeout: 256 seconds] 17:40:37 bipt [~bpt@nom0062333.nomadic.ncsu.edu] has joined #scheme 17:42:46 -!- Kooda_ is now known as Kooda 17:47:27 spobat [~spobat@p5B2DEBA7.dip.t-dialin.net] has joined #scheme 17:48:10 -!- arrdem [~arrdem@resnet-45-187.dorm.utexas.edu] has quit [Quit: leaving] 17:49:08 arrdem [~arrdem@dhcp-53-132.ece.utexas.edu] has joined #scheme 17:51:13 -!- PuercoPop [~user@190.222.252.106] has quit [Remote host closed the connection] 17:52:02 PuercoPop [~user@190.222.252.106] has joined #scheme 17:53:36 amgarchIn9 [~amgarchin@p4FD604B9.dip0.t-ipconnect.de] has joined #scheme 17:54:00 -!- snowylike [~sn@91-67-171-156-dynip.superkabel.de] has quit [Quit: Nettalk6 - www.ntalk.de] 18:19:21 -!- sambio [~sambio@190.57.227.109] has quit [Ping timeout: 255 seconds] 18:20:27 zacts [~user@unaffiliated/lcc] has joined #scheme 18:24:12 scoofy [~scoofy@catv-89-135-71-167.catv.broadband.hu] has joined #scheme 18:26:00 stat_vi [~stat@dslb-094-218-232-196.pools.arcor-ip.net] has joined #scheme 18:31:55 Hafydd [~Hafydd@unaffiliated/joo] has joined #scheme 18:32:55 http://codepad.org/94mJDjBx 18:32:57 hello. 18:33:21 can someone help me to make my algorithm as fast as the haskell implementation? both are using the same draft algorithm as basis. 18:33:35 its a huge difference in speed. 18:35:17 lemur693 [~bpurcell@50.9.60.93] has joined #scheme 18:35:24 i think it is related to the fact that i'm calling (null? tons of times. 18:35:31 -!- yacks [~yacks@180.151.36.169] has quit [Remote host closed the connection] 18:35:37 and having to iterate over the lists in order to get last element etc. 18:37:08 -!- jrapdx [~jra@c-76-115-235-187.hsd1.wa.comcast.net] has quit [Remote host closed the connection] 18:39:01 ASau [~user@46.115.90.208] has joined #scheme 18:41:46 Riastrad1 [~riastradh@fsf/member/riastradh] has joined #scheme 18:45:18 mmc [~michal@178-85-64-28.dynamic.upc.nl] has joined #scheme 18:45:31 -!- Riastradh [~riastradh@fsf/member/riastradh] has quit [Remote host closed the connection] 18:51:45 -!- tessier_ [~treed@kernel-panic/copilotco] has quit [Ping timeout: 255 seconds] 18:51:53 tessier [~treed@216.105.40.125] has joined #scheme 18:51:53 -!- tessier [~treed@216.105.40.125] has quit [Changing host] 18:51:53 tessier [~treed@kernel-panic/copilotco] has joined #scheme 18:56:34 ijp [~user@host31-53-120-165.range31-53.btcentralplus.com] has joined #scheme 18:58:29 -!- tps_ [~tps_@hoasb-50dd08-36.dhcp.inet.fi] has quit [Read error: Connection reset by peer] 18:58:50 tps_ [~tps_@hoasb-50dd08-36.dhcp.inet.fi] has joined #scheme 19:04:35 -!- spobat [~spobat@p5B2DEBA7.dip.t-dialin.net] has quit [Read error: Connection reset by peer] 19:10:24 jonrafkind [~jon@racket/jonrafkind] has joined #scheme 19:16:03 -!- ijp [~user@host31-53-120-165.range31-53.btcentralplus.com] has quit [Remote host closed the connection] 19:17:23 ijp [~user@host31-53-120-165.range31-53.btcentralplus.com] has joined #scheme 19:18:10 -!- bipt [~bpt@nom0062333.nomadic.ncsu.edu] has quit [Ping timeout: 246 seconds] 19:21:54 Tau: What scheme implementation are you using ? 19:22:04 GHC compiles to very fast code from what I know. 19:22:49 taylanub guile 19:23:05 -!- ni_ [~ni@208.81.89.71] has quit [Quit: Konversation terminated!] 19:23:18 ni_ [~ni@208.81.89.71] has joined #scheme 19:23:53 I don't see why a null? call should be heavy, why did you think so ? (Maybe it's my ignorance.) 19:24:36 (Although I imagine it could be a bit heavier in guile than other schemes, because guile also checks for #nil and not just '(), to support elisp. I imagine it would still be trivial.) 19:24:41 the problem is he is comparing two different algorithms and calling them the same 19:24:58 taylanub i couldn't think of something else. 19:25:00 I admit I didn't read the code yet. :P 19:25:28 ijp in concept both implement the same mathematical thing. 19:25:57 (Well I can't really read Haskell yet ..) 19:26:07 that is combination(set, n) = magic(combination(set, n-1), set) ... 19:26:22 -!- karswell [~user@93-97-29-243.zone5.bethere.co.uk] has quit [Read error: Connection reset by peer] 19:26:24 right, and bubble sort and mergesort both sort a list, but you don't write a bubble sort in scheme and a mergesort in haskell and wonder why scheme is slower than haskell 19:26:29 where magic is a function which combines combination(set, n-1) and set to produce combination(set, n). 19:26:35 karswell [~user@93-97-29-243.zone5.bethere.co.uk] has joined #scheme 19:26:41 ijp i see your point. 19:27:03 ijp how would you write it in scheme so it would be as fast as haskell? 19:27:09 Your output says you're using MIT, not guile .. Also, if guile, 1.8 or 2.0 ? 19:27:22 Tau: give me a second, and I'll do a direct translation 19:27:29 taylanub i ran it with both. 19:27:38 OK. 19:27:39 ijp nice. 19:27:40 impaktor` [~user@b2.thep.lu.se] has joined #scheme 19:28:26 -!- impaktor [~user@b2.thep.lu.se] has quit [Read error: Connection reset by peer] 19:29:46 -!- twem2 [~tristan@puma-mxisp.mxtelecom.com] has quit [Read error: Operation timed out] 19:30:31 -!- tps_ [~tps_@hoasb-50dd08-36.dhcp.inet.fi] has quit [Quit: tps_] 19:31:09 twem2 [~tristan@puma-mxisp.mxtelecom.com] has joined #scheme 19:32:07 -!- gravicappa [~gravicapp@h178-129-84-99.dyn.bashtel.ru] has quit [Remote host closed the connection] 19:32:16 tps_ [~tps_@hoasb-50dd08-36.dhcp.inet.fi] has joined #scheme 19:34:02 -!- impaktor` [~user@b2.thep.lu.se] has quit [Remote host closed the connection] 19:36:36 https://gist.github.com/4558950 19:37:19 run it on your own computer to get better time estimates, mine is ancient 19:41:12 -!- jcowan [~John@mail.digitalkingdom.org] has quit [Ping timeout: 252 seconds] 19:48:43 jcowan [~John@mail.digitalkingdom.org] has joined #scheme 19:54:23 -!- tps_ [~tps_@hoasb-50dd08-36.dhcp.inet.fi] has quit [Quit: tps_] 19:59:37 okay, I found the reason for my slowness. There was a errant openssl process hogging all the memory 20:00:31 with that killed, guile goes down to 15s (including compiling the module) and runghc to 22 20:02:07 ijp oh. then yours is faster than the ghc one. 20:02:12 civodul [~user@reverse-83.fdn.fr] has joined #scheme 20:02:31 I should probably be fair and compile the haskell, but then I suspect guile would lose :) 20:02:44 ijp haha. try it. 20:03:01 less than a second 20:03:25 Heh. GHC compiles to machine code, right ? 20:03:30 taylanub: yes 20:03:49 ijp can't i compile to machine code with guile? 20:03:56 still.... take that runghc! 20:04:01 Tau: not yet 20:04:35 ijp i see. 20:04:38 still, taking away the compilation time gets you down to less than 10 20:05:08 Oh, the 15s was including the time it takes to bytecode-compile ? 20:05:20 with that killed, guile goes down to 15s (including compiling the module) and runghc to 22 20:05:30 *taylanub* can't read. :P 20:05:32 hydandata [~udzinari@ip-89-102-13-27.net.upcbroadband.cz] has joined #scheme 20:05:42 so including compiling, guile wins. precompiled ghc wins 20:05:59 what are the general advantages over scheme to languages like haskell? 20:06:15 Is runghc just a braindead "compile and run," or does it actually try to be better for uncompiled code ? 20:07:08 Tau: Haskell has a very good typing system, whereas lisp is traditionally not typed statically at all. 20:07:40 It's more of a matter of flavor I guess. But I don't know Haskell well enough to make a good comparison I guess. 20:07:40 taylanub: I've always assumed the former 20:08:11 ijp: If so, I guess it's to be expected that it's slow; I imagine GHC takes its time to optimize. 20:08:44 I don't see why it would, surely any "serious" haskell application gets compiled properly anyway? 20:08:58 21.5 seconds to compile, .5 seconds to run. :P 20:16:37 sambio [~sambio@190.57.227.109] has joined #scheme 20:24:21 *drewc* knows Haskell only because he had to learn 'Gofer' to do his parser combinators in CL correctly :) 20:26:30 *ski* remembers reading the Gofer Prelude 20:26:42 -!- hydandata [~udzinari@ip-89-102-13-27.net.upcbroadband.cz] has left #scheme 20:32:19 jrajav [~jrajav@198.179.137.211] has joined #scheme 20:40:15 -!- ijp [~user@host31-53-120-165.range31-53.btcentralplus.com] has quit [Ping timeout: 260 seconds] 20:42:37 ijp [~user@host31-53-120-165.range31-53.btcentralplus.com] has joined #scheme 20:45:43 ni__ [~ni@208.81.89.71] has joined #scheme 20:45:50 -!- ni_ [~ni@208.81.89.71] has quit [Read error: Connection reset by peer] 20:47:05 ski: fwiw, I used the paper that almost all parser combinator libs are based on, which I reference here : 20:47:09 https://github.com/drewc/smug/blob/master/smug.org 20:47:59 ski: then I learned so much about Monads and parsing, that I went on to write this : 20:48:08 http://drewc.org/interface/monads.html#sec-5 20:48:09 stilluntrusted [~user@stgt-5f719e1a.pool.mediaWays.net] has joined #scheme 20:49:23 and now, taking that and making SMUG be implemented using monadic transformers rather than the plain CL it is now... and bob's your uncle. 20:50:40 all because of Gofer really, though I now know way to many functional languages and their Monad implementations etc, simply by 'learning' 20:50:44 might perhaps be interesting 20:51:20 acedia [~rage@unaffiliated/ffs] has joined #scheme 20:52:16 parscheme is okay 20:53:57 ski: yeah, read it a long time ago, and it is similar to my first attempts. Unfortunatly, I do not use scheme for a living, so my stuff is based on Common Lisp, and the proper monadic parser combinators, which means transformers, types, etc etc etc 20:54:23 though as I walked home earlier today, I was wondering what gotchas I missed last time I used it, since I believe it was based on streams. And lazy IO can be crazy 20:54:29 types ? 20:54:38 s/can be/just plain is/ 20:56:12 ijp: that is why I based my modern version on an interface ... can be streams, strings, bytes, lists of symbols, etc etc etc 20:56:23 m6502 [~user@lisp.xs4all.nl] has joined #scheme 20:58:33 ski: yes.. types .. and is 'the type of a function is the type of what it takes and the type of what it returns'. It matters quite a bit in, say, haskell. For Lisp, otoh, well the type system does not quite handle it correctly, but the test suite can : 20:58:39 phax [~phax@unaffiliated/phax] has joined #scheme 20:58:39 http://drewc.org/interface/monads.html#sec-8 21:00:06 hm, related to contract checking (of e.g. HOFs) in Racket ? 21:00:09 all the 'CHECK-MONAD-*' fns are because of the dynamic type system. In haskell, for example, the compiler takes care of those CHECKs, and it will not compile if the types are not 'correct' 21:00:48 actually not 21:01:02 the monadic laws are not checked by the static type system in Haskell 21:01:03 *drewc* does not know, for Racket is not a part of his 'vocabulary' at all ... I stopped using it long before it was called 'Racket' :) 21:01:35 ski: you know they would if they could 21:01:48 21:01:59 ijp :) 21:02:33 ijp: yes, those laws are not is the typesystem because they do not need to be .... something cannot be a monad and _not_ be a monad. :) 21:02:40 and , i suppose 21:03:07 drewc : those alws are not in the typesystem, because the typesystem isn't expressive enough to express them 21:03:13 s/alws/laws/ 21:03:35 (for a type system expressive enough, see e.g. Agda or Coq) 21:04:15 l 21:04:24 ooops 21:05:56 -!- ASau [~user@46.115.90.208] has quit [Ping timeout: 272 seconds] 21:06:08 drewc : anyway, it's certainly possible to declare a type to be an instance of the type class `Monad', without it satisfying the monad laws (and therefore it not really being a monad) 21:06:51 ski: notice my small letters up above. monad, not 'Monad' ;) 21:07:03 -!- jrajav [~jrajav@198.179.137.211] has quit [Quit: I tend to be neutral about apples] 21:08:46 there is no type system expressive enough tbh ... there are not enough atoms in the universe to 'solve' the issue imo, though quanta could have something... I will have to ask the local Quantum Computer programmers ... They tend to use Common Lisp to 'speak' with the qbits :) 21:09:45 -!- phax [~phax@unaffiliated/phax] has quit [Quit: Leaving] 21:10:46 there are certainly type systems in which the only things which would be accepted are monads 21:11:16 you "just" have to include a proof that your construction is a monad, for the type system to check 21:16:25 -!- metasyntax [~tvenable@proxy5.med-web.com] has quit [Quit: Leaving] 21:23:37 ASau [~user@46.115.107.19] has joined #scheme 21:23:38 yup ... and what is a monad? that is the question which type systems may or may not be able to answer, without an infinite amount of time and matter, so we know these days anyway. (quanta? :)) 21:25:02 -!- stilluntrusted [~user@stgt-5f719e1a.pool.mediaWays.net] has quit [Remote host closed the connection] 21:25:14 for that matter, the 'laws' are just that... it is the 'courts' who decide if the laws were followed or broken yet for a good reason etc ... the laws are on paper, the enforcement not so much 21:25:35 the enforcement can be in the type system, is what i'm saying 21:27:01 pessoa [~pessoa@188-195-211-39-dynip.superkabel.de] has joined #scheme 21:27:53 yup ... and that enforcer, like a police officer, could be wrong/mistaken or otherwise could take a lot of time/matter... so what is it exactly that you are saying? :D 21:29:22 -!- ni__ [~ni@208.81.89.71] has quit [Quit: Konversation terminated!] 21:29:56 ni__ [~ni@208.81.89.71] has joined #scheme 21:30:47 *drewc* is now thinking of the PROPER-LIST-P thing in CL, and 'how' to implement it, and why a circular "LIST" is not going to be allowed in a staticly typed functional style 'LISP' at all, and going back to coding at this point 21:31:30 Nisstyre [~yours@oftn/member/Nisstyre] has joined #scheme 21:32:38 bipt [~bpt@cpe-071-070-253-241.nc.res.rr.com] has joined #scheme 21:33:38 i'm saying that, it's possible to make a type, in e.g. Agda, whose only elements are actual monads (ones satisfying the laws) 21:34:10 statical typing is an evil fortran/algolish thing, not suited for scheme 21:34:16 (and it doesn't take an extraordinary amount of time or matteR) 21:35:53 if they want statically typed functional stuff, why don't they use haskell or ML? 21:36:08 *ski* is not sure who "they" are 21:36:41 ski: it's an international conspiracy, didn't you know? 21:37:44 the conspiracy of people pondering abouyt what is allowed in a statically typed lisp 21:38:01 pessoa: please tell me you are under 25, because if not, you really should have mellowed out by now 21:39:05 no, I am 47 21:43:15 ski: how do we know the laws are satisfied? it is possible to make a monad that takes _time_ to prove the laws are 'solved'? (mlet* ((a (quote #1=(programmable . #1#)))) ...) 21:43:50 (sorry for the CL code in #scheme, but I have not done the scheme version yet) 21:45:45 drewc : instead of checking the laws, we (the programmer) supplies proof of them. the type system then just checks that the proof is correct 21:46:44 -!- graememcc [~chatzilla@host86-171-11-36.range86-171.btcentralplus.com] has quit [Quit: ChatZilla 0.9.89 [Firefox 18.0/20130107224849]] 21:52:32 -!- hash_table [~quassel@128.249.96.123] has quit [Ping timeout: 255 seconds] 21:55:01 -!- jonrafkind [~jon@racket/jonrafkind] has quit [Ping timeout: 276 seconds] 21:56:46 -!- ni__ [~ni@208.81.89.71] has quit [Quit: Konversation terminated!] 21:59:55 noam [~noam@213.57.201.130] has joined #scheme 22:00:42 -!- m6502 [~user@lisp.xs4all.nl] has quit [Remote host closed the connection] 22:01:30 mark_weaver [~user@TURNTABLE.MIT.EDU] has joined #scheme 22:09:28 -!- jrslepak [~jrslepak@nomad.ccs.neu.edu] has quit [Quit: What happened to Systems A through E?] 22:09:54 -!- antoszka_ is now known as antoszka 22:10:47 -!- stat_vi [~stat@dslb-094-218-232-196.pools.arcor-ip.net] has quit [Quit: Lost terminal] 22:15:51 -!- nowhere_man_ [~pierre@AStrasbourg-551-1-142-148.w90-26.abo.wanadoo.fr] has quit [Read error: Connection reset by peer] 22:16:02 -!- lemur693 [~bpurcell@50.9.60.93] has left #scheme 22:19:28 nowhere_man [~pierre@AStrasbourg-551-1-142-148.w90-26.abo.wanadoo.fr] has joined #scheme 22:31:37 amoe_ [~amoe@host-78-147-156-134.as13285.net] has joined #scheme 22:34:50 -!- amoe [~amoe@host-92-26-175-10.as13285.net] has quit [Ping timeout: 255 seconds] 22:36:30 -!- jcowan [~John@mail.digitalkingdom.org] has quit [Ping timeout: 272 seconds] 22:38:15 jcowan [~John@mail.digitalkingdom.org] has joined #scheme 22:40:50 ski: exactly. The issue is, what is a Monad? Or at least, that is what I am trying to 'solve' these days... and I could be completely wrong about it :) 22:42:02 The usual explanation is that a monad is like a barrel of radioactive waste in a space suit next to a box of apples 22:42:08 ski: or, heh, http://drewc.org/interface/monads.html#sec-1-1 is my 1.1.1 TODO explain what Monads are a little more 22:44:40 a monad (over a category `C'), consists of a functor `T : C -> C' and two natural transformations `eta : id_C -> T',`mu : T . T -> T', such that the laws `mu . eta = id', `mu . T eta = id', `mu . T mu = mu . mu' holds 22:44:54 however, that's probably greek to you, unless you happen to know any category theory 22:45:11 it's not category theory if there isn't any diagrams 22:45:37 (just imagine the three equations to be diagrams, if you prefer) 22:46:11 category theorists probably prefer flockdraw to irc 22:46:17 hash_table [~quassel@70-138-246-219.lightspeed.hstntx.sbcglobal.net] has joined #scheme 22:46:22 -!- hash_table [~quassel@70-138-246-219.lightspeed.hstntx.sbcglobal.net] has quit [Read error: Connection reset by peer] 22:46:45 *drewc* does ... but a programmatic 'Monad' is somewhat different from a Category theory monad .. :( 22:47:43 in terms of programming languages, `C' is usually a category of (concrete) types, `T' is a type function (something that given a type of values gives another type of values .. if when `A' is any type, `(list-of A)' is the type of (finite) lists with all elements of type `A', then `list-of' is a type function) 22:47:43 so, while the two can intermingle quite a bit for certain compilers/type systems/etc, 22:48:42 the "programmatic" parts is the implementation of the operations `eta' and `mu', for the monad in question 22:48:57 (or, which is common, of some equivalent primitive operation set) 22:49:19 being a monad is comparable to being a priority queue 22:50:36 -!- zacts [~user@unaffiliated/lcc] has quit [Ping timeout: 264 seconds] 22:50:44 to be a priority queue is to, given an element type with an ordering, have a priority queue type, with certain operations on it which satisfy certain laws 22:52:17 (well, i suppose that is actually being a "generic priority queue", as opposed to just being a specific priority queue with a specific element type) 22:54:05 to be a monad is to have a type function `T', such that for any type `A', there are operations `eta_A : A -> T A' and `mu : T (T A) -> A', satisfying certain laws 22:54:14 *ski* is not sure whether this helps at all, or perhaps even is obvious to drewc 22:56:24 anyway, it's not really surprising that it's a bit hard to translate the general category theoretic definition into something more understandable in the specific domain -- this is the usual case with CT stuff 22:57:36 one way to look at what a programming monad is, is that it's a kind of EDSL 22:57:57 a kind where choices about what to do later may depend on values computed earlier 22:58:23 ski: it helps quite a bit actually. It is very much what i know/understand, but my 'job' is to document things at this point... so thanks 22:58:30 (as opposed to a related, but distinct, concept, called "applicative functor", where these kind of choices are not allowed) 22:59:19 *drewc* has to now go do more reading about monads rather than code :D 22:59:22 also, if you haven't noticed yet, most of the "monad tutorials" floating around aren't really very good 22:59:43 that is of course the first thing i noticed 22:59:51 sigfpe comes closest IMO 23:00:10 (see for a conjecture on why this is so) 23:00:10 http://tinyurl.com/6tymom 23:00:35 jonrafkind [~jon@racket/jonrafkind] has joined #scheme 23:01:58 FRSHPRNCFBLR [~noone@user42-43.wireless.utoronto.ca] has joined #scheme 23:03:53 drewc : in "2.3 The Three Monad Laws", "A function that, given a standard value returns a monadic value encapsulating that value." is not correct 23:05:06 "A function that, given any input value returns a monadic value encapsulating some output value." would be better 23:06:15 in the case where `MF' is `RESULT', it returns "a monadic value encapsulating that value" [the input value] -- but not in general 23:08:04 ah! thank you thank you thank you! That is just a c/p from something I wrote in early 2009, and I have not really looked at it / fixed it etc. 23:08:28 also, i think "A static functional programmer would say \"must have a certain type\"." is misleading 23:08:40 an *Agda* or *Coq* programmer might say that 23:08:44 -!- FRSHPRNCFBLR [~noone@user42-43.wireless.utoronto.ca] has quit [Quit: Leaving] 23:09:11 I agree, will be removed 23:09:36 but it's not possible to express such laws in the type system of the common static FPLs, and so they would probably not express themselves like that 23:10:13 (they still might, if they have in mind "type" in a general sense, as opposed to "type, as expressible by my language") 23:11:12 (of course a Scheme programmer could possibly have this general sense in mind, if they didn't mean "(run-time) type tag") 23:12:11 yeah, that is a large 'issue' for me, as the definition of words often needs to be there or things are, well, different 23:13:28 it might or might not be interesting to allow "monadic computations" to yield multiple values 23:13:54 (btw: drewc@drewc.org if we want to be attributed beyond "ski #scheme" for the changes I will make) 23:14:14 yeah, i have played with that actually 23:14:19 if they are allowed to do so, then `bind' would possibly pass these values from the first argument, as separate arguments given to the second 23:15:04 (and then the third monadic law would have to be generalized to accomodate for this) 23:15:57 -!- mark_weaver [~user@TURNTABLE.MIT.EDU] has quit [Quit: ERC Version 5.3 (IRC client for Emacs)] 23:15:59 (it's clear that such a "generalization" is just an accomodation to the presence of multiple values in Scheme (or say CL), it's not a change in what the concept *means*, mathematically) 23:16:26 yeah, my own play language thing has something like that, but how to 'handle' the VALUES is interesting 23:18:12 (hm, there were some paper on monads in Scheme which i vaguely remember, but i can't find it atm) 23:18:45 if it is simply a LIST monad in everything save the VALUES thing... and exactly, accomodation for performance reasons beyond anything 23:20:01 ski: the one using shift/reset? 23:20:20 ijp : i don't think so (but i'm not sure) 23:20:26 (which one was that ?) 23:21:25 hm, `LIST' seems hard to do with `VALUES' 23:21:34 and of course the fact that LIST, in CL anyway, is just CONS or NIL has some interesting points to it as well. 23:22:08 francisl_ [~flavoie@199.84.162.167] has joined #scheme 23:22:10 yeah, exactly. so what _should_ the monad be, what should it do, etc. loads of fun. 23:22:46 perhaps there should be an extension of `' in which the `bind' operation handles multiple values, and where `result' can take multiple arguments (to be "returned" as multiple values) 23:22:56 and of course, one vs. m values, different things for each. 23:23:28 (so, only extension in what the operations can handle, not extension in adding more operations) 23:24:22 yeah, strangely enough played with something similar, but what is 'taking' mulitple values mean exactly, and what does it do etc. 23:24:34 if we're interested in a "list" monad, but which is an abstract data type, then we could just bundle the multiple values up in a list or vector or whatever 23:24:59 -!- tupi [~user@139.82.89.157] has quit [Remote host closed the connection] 23:25:06 ski: Filinski "representing monads" I think 23:25:21 ijp : yeah, i know that paper. definitely not that one i was thinking about 23:25:35 though that uses ML, come to think of it 23:26:03 ski: I'm sure I know which one you are thinking of, but the name eludes me 23:26:05 -!- francisl [~flavoie@199.84.164.114] has quit [Ping timeout: 252 seconds] 23:26:08 (perhaps it has some examples in Scheme, i don't recall. some papers on continuations have both SML and Scheme) 23:26:37 -!- francisl_ [~flavoie@199.84.162.167] has quit [Ping timeout: 256 seconds] 23:26:47 yeah, precisely! and that I have done locally as well... with the being a basically ... the https://github.com/drewc/lisp-interface-library is what we are 'working' on. 23:26:47 -!- amgarchIn9 [~amgarchin@p4FD604B9.dip0.t-ipconnect.de] has quit [Quit: Konversation terminated!] 23:27:03 ijp : iirc, the paper had a suggestion of defining separate "monadic functions", which aren't first-class values 23:27:27 the idea, i think, was to ensure efficient operation when using e.g. state monad 23:27:41 I fear googling this is only adding things to my reading pile 23:28:06 and I am doing the monads, simply because I use them and interface passing style was something i did since 2009 or so... and trying not to google to add to my reading pile 23:28:08 ski: Indiana folks write this? Friedman, etc? 23:28:41 so that instead of having a function taking some argument and returning a state action, which is secretly a new function (from input state to result & output state), a "monadic function" would be defined by a new declaration form, and (e.g.) macros would then in the case of state monad translate this into an *uncurried* 23:28:46 * function 23:29:06 ijp : possibly. it was a long time since i looked at it 23:30:08 safekeeping [~safekeepi@c-68-36-167-104.hsd1.nj.comcast.net] has joined #scheme 23:30:31 "Abstraction and Performance from Explicit Monadic Reflection" ? 23:30:47 drewc : if we allow the sequence computation to be deferred/suspended, then we probably could make it so that we don't have to bundle up the multiple values 23:31:15 sounds like it might be it 23:31:18 *ski* checks 23:31:29 that one vaguely rings a bell, but I'd need to reread it 23:31:38 ah yes, that rings a bell here as well 23:34:06 ski: and you have me thinking about state as well, and fexprs (using Kernel) rather than macros... going to be a _long_ year indeed. 23:34:08 -!- jcowan [~John@mail.digitalkingdom.org] has quit [Ping timeout: 255 seconds] 23:36:03 -!- Riastrad1 [~riastradh@fsf/member/riastradh] has quit [Ping timeout: 276 seconds] 23:36:11 now not bundling the multiple values... lots of ideas floating through my head. 23:37:05 jrslepak [~jrslepak@c-71-233-149-127.hsd1.ma.comcast.net] has joined #scheme 23:38:48 *drewc* now reads "Abstraction and Performance from Explicit Monadic Reflection" again and eats some dinner. 23:39:06 thanks ski & ijp ! 23:39:07 fexprs are cool 23:41:32 unfortunately r5rs and later are completely hostile to first class fexprs 23:43:37 jcowan [~John@mail.digitalkingdom.org] has joined #scheme 23:44:01 lot's of people think fexprs are cool, few are willing to provide practical examples 23:48:43 jeapostr1phe [~jay@69.169.141.110.provo.static.broadweavenetworks.net] has joined #scheme 23:52:06 drewc : hm, i don't see a definition of `' at 23:57:45 Fare [fare@nat/google/x-mkfjlwfrlvnljnto] has joined #scheme 23:58:50 -!- samth is now known as samth_away