00:02:59 -!- metasyntax [n=taylor@pool-71-127-85-87.aubnin.fios.verizon.net] has quit [""Nichts mehr.""] 00:04:38 -!- Nichibutsu [n=myfabse@wikipedia/Track-n-Field] has quit [] 00:05:35 BubbleGumTate [n=user@210.48.104.34] has joined #scheme 00:06:19 -!- arcfide [n=arcfide@adsl-99-137-203-229.dsl.bltnin.sbcglobal.net] has quit ["Leaving"] 00:07:05 -!- s76__ [n=todos@175-52-124-91.pool.ukrtel.net] has quit [Read error: 110 (Connection timed out)] 00:07:31 s76__ [n=todos@131-88-124-91.pool.ukrtel.net] has joined #scheme 00:08:45 AtnNn [n=welcome@modemcable087.62-56-74.mc.videotron.ca] has joined #scheme 00:09:12 -!- Deformative [n=joe@71.238.45.45] has quit [Read error: 110 (Connection timed out)] 00:24:03 kniu [n=kniu@pool-71-165-128-172.lsanca.dsl-w.verizon.net] has joined #scheme 00:24:44 -!- Edico [n=Edico@unaffiliated/edico] has quit ["Leaving"] 00:24:59 -!- ayrnieu [n=julian@c-76-30-82-6.hsd1.tx.comcast.net] has quit [Read error: 110 (Connection timed out)] 00:28:12 -!- p1dzkl [i=p1dzkl@2001:470:1f09:979:0:0:0:14] has quit ["changing servers"] 00:31:51 -!- athos [n=philipp@92.250.204.223] has quit ["leaving"] 00:32:32 ayrnieu [n=julian@c-76-30-82-6.hsd1.tx.comcast.net] has joined #scheme 00:33:00 -!- jso [n=user@151.159.200.8] has quit [Remote closed the connection] 00:50:06 jonrafkind [n=jon@c-98-202-86-149.hsd1.ut.comcast.net] has joined #scheme 00:50:38 -!- orgy` [n=ratm_@pD9FFC3CB.dip.t-dialin.net] has quit [Remote closed the connection] 00:52:24 -!- attila_lendvai [n=ati@catv-89-132-189-132.catv.broadband.hu] has quit [Read error: 60 (Operation timed out)] 01:02:00 -!- BubbleGumTate [n=user@210.48.104.34] has quit [Remote closed the connection] 01:06:50 troter [n=troter@nurikabe.timedia.co.jp] has joined #scheme 01:07:26 kilimanjaro [n=kilimanj@70.116.95.163] has joined #scheme 01:07:42 -!- troter [n=troter@nurikabe.timedia.co.jp] has quit [Client Quit] 01:09:20 -!- Adamant [n=Adamant@unaffiliated/adamant] has quit [] 01:17:15 -!- X-Scale [i=email@2001:470:1f08:b3d:0:0:0:2] has left #scheme 01:17:20 morphir_ [n=morphir@217.168.81.9] has joined #scheme 01:22:35 -!- morphir [n=morphir@217.168.81.9] has quit [Read error: 113 (No route to host)] 01:23:18 -!- morphir_ is now known as morphir 01:36:43 -!- amaron [n=amaron@cable-94-189-243-158.dynamic.sbb.rs] has quit [Read error: 60 (Operation timed out)] 01:36:55 -!- ffx` [n=ffx@60-241-74-240.static.tpgi.com.au] has quit [Read error: 104 (Connection reset by peer)] 01:37:01 davidad [n=me@dhcp-18-111-18-142.dyn.mit.edu] has joined #scheme 01:41:04 -!- elias` [n=me@unaffiliated/elias/x-342423] has quit [Read error: 145 (Connection timed out)] 01:41:15 -!- benny [n=benny@i577A114A.versanet.de] has quit [Read error: 104 (Connection reset by peer)] 01:43:04 davidad1 [n=me@NORTHWEST-THIRTYFIVE-FOUR-TWENTY-TWO.MIT.EDU] has joined #scheme 01:43:28 ffx` [n=ffx@60-241-74-240.static.tpgi.com.au] has joined #scheme 01:44:52 -!- rdd [n=user@c83-250-154-52.bredband.comhem.se] has quit [] 01:48:30 rdd [n=user@c83-250-154-52.bredband.comhem.se] has joined #scheme 01:51:25 -!- rmrfchik [n=paul@62.117.74.154] has quit [Remote closed the connection] 01:52:37 -!- davidad [n=me@dhcp-18-111-18-142.dyn.mit.edu] has quit [Read error: 60 (Operation timed out)] 01:56:02 seoushi [n=seoushi@c-67-186-243-205.hsd1.ut.comcast.net] has joined #scheme 01:56:37 amaron [n=amaron@cable-94-189-243-158.dynamic.sbb.rs] has joined #scheme 02:08:14 -!- sepult [n=buggarag@xdsl-84-44-175-34.netcologne.de] has quit [Read error: 104 (Connection reset by peer)] 02:08:26 -!- Nshag [i=user@Mix-Orleans-106-2-218.w193-248.abo.wanadoo.fr] has quit ["Quitte"] 02:14:12 -!- stepnem [n=xchat@topol.nat.praha12.net] has quit [Read error: 60 (Operation timed out)] 02:14:28 sepult [n=buggarag@xdsl-87-78-152-252.netcologne.de] has joined #scheme 02:14:47 stepnem [n=xchat@topol.nat.praha12.net] has joined #scheme 02:19:43 -!- ayrnieu [n=julian@c-76-30-82-6.hsd1.tx.comcast.net] has quit [Read error: 110 (Connection timed out)] 02:22:20 -!- masm [n=masm@a83-132-152-110.cpe.netcabo.pt] has quit [Read error: 113 (No route to host)] 02:24:43 timchen1` [i=tim@kalug.ks.edu.tw] has joined #scheme 02:24:49 -!- timchen1` is now known as nasloc__ 02:27:24 wy [n=wy@c-98-228-40-51.hsd1.in.comcast.net] has joined #scheme 02:28:00 Adamant [n=Adamant@c-76-29-188-22.hsd1.ga.comcast.net] has joined #scheme 02:31:48 v__ [n=v@211.91.168.118] has joined #scheme 02:33:37 grettke [n=grettke@CPE-65-31-142-107.wi.res.rr.com] has joined #scheme 02:39:52 -!- grettke [n=grettke@CPE-65-31-142-107.wi.res.rr.com] has quit [] 02:51:46 -!- amaron [n=amaron@cable-94-189-243-158.dynamic.sbb.rs] has quit [Read error: 110 (Connection timed out)] 03:00:48 -!- Cale [n=Cale@CPE001c10c70239-CM000e5cdd834a.cpe.net.cable.rogers.com] has quit [Read error: 110 (Connection timed out)] 03:02:57 -!- sladegen [n=nemo@unaffiliated/sladegen] has quit [Nick collision from services.] 03:03:04 cipher [n=cipher@pool-71-184-152-81.bstnma.fios.verizon.net] has joined #scheme 03:03:07 sladegen [n=nemo@unaffiliated/sladegen] has joined #scheme 03:06:17 saccade_ [n=saccade@65-78-24-47.c3-0.smr-ubr1.sbo-smr.ma.cable.rcn.com] has joined #scheme 03:14:19 -!- Adamant [n=Adamant@unaffiliated/adamant] has quit [] 03:22:41 inimino1 [n=inimino@atekomi.inimino.org] has joined #scheme 03:23:28 -!- inimino [n=inimino@atekomi.inimino.org] has quit [Read error: 104 (Connection reset by peer)] 03:24:23 -!- inimino1 is now known as inimino 03:24:52 skyewm [n=skyewm@EASTCAMPUS-ONE-O-TWO-HUNDRED-THIRTY-SIX.MIT.EDU] has joined #scheme 03:25:11 Hi, does anyone know how to get MIT Scheme to run .scm files in a script like way 03:25:29 i.e. scheme --load "test.scm" 03:25:38 except, not printing out all the copyright and versioning information 03:26:16 Pass `--batch-mode'. 03:26:33 thanks! 03:27:34 using --load, is there a way to supress the ;Loading test.scm output? 03:28:04 -!- ken-p [n=unknown@84.92.70.37] has quit [Read error: 110 (Connection timed out)] 03:28:07 Dynamically bind LOAD/SUPPRESS-LOADING-MESSAGE? to #T during the time you want LOAD not to print the message. 03:28:48 That is: (fluid-let ((load/suppress-loading-message? #t)) ... (load "foo") ...) 03:30:20 -!- v__ [n=v@211.91.168.118] has quit ["Leaving"] 03:30:36 ...and use --eval rather than --load for this purpose. 03:31:04 la la la 03:35:19 You'll probably also want to call (%EXIT) at the end of your script, by the way. 03:35:52 -!- gweiqi [n=greg@69.120.126.163] has left #scheme 03:37:00 -!- hark [n=strider@hark.slew.org] has quit ["leaving"] 03:43:15 thanks, I was about to ask, as (exit) and (quit) had mixed results 03:44:32 -!- davidad1 [n=me@NORTHWEST-THIRTYFIVE-FOUR-TWENTY-TWO.MIT.EDU] has quit ["Leaving."] 03:45:51 Writing FLUID-LET inside the argument to --eval like that is kind of silly, really. 03:46:10 true, but it works, wrapped it up in a shell script 03:46:16 thank you! 03:46:25 -!- skyewm [n=skyewm@EASTCAMPUS-ONE-O-TWO-HUNDRED-THIRTY-SIX.MIT.EDU] has quit ["leaving"] 03:46:29 Now it's... 03:46:31 ...not necessary. 03:46:33 Oh well. 03:47:23 neilv [n=user@dsl092-071-030.bos1.dsl.speakeasy.net] has joined #scheme 03:47:45 reprore [n=reprore@ntkngw304058.kngw.nt.ftth.ppp.infoweb.ne.jp] has joined #scheme 03:48:53 arcfide [n=arcfide@adsl-99-137-203-229.dsl.bltnin.sbcglobal.net] has joined #scheme 03:50:02 .. 03:50:08 bitweiler [n=phax@71.149.130.217] has joined #scheme 03:50:12 Hmm? 03:51:06 *mejja* promises to turn off focus follows mouse... 03:52:54 *arcfide* chuckles. 03:52:59 Cale [n=Cale@CPE001c10c70239-CM000e5cdd834a.cpe.net.cable.rogers.com] has joined #scheme 03:57:53 Apropos supressing messages... 03:58:21 mejja pasted "the last few lines of my edwin init file" at http://paste.lisp.org/display/76679 04:00:02 bitweiler` [n=phax@ppp-70-242-145-246.dsl.stlsmo.swbell.net] has joined #scheme 04:01:33 Riastradh: In batch mode, how about also supressing ;Warning: Invalid keyword 04:03:39 or perhaps implement what emacs calls '--visit FILE' 04:05:20 are there any scheme web servers? 04:06:24 bitweiler`: There are lot's of options for web servers, but what are your specific needs. 04:06:46 bitweiler`: The most well known is PLT's web server, but there are a few servers out there written to be proxied behind Apache. 04:07:06 something simple learning purposes 04:07:10 There are more still that aren't strictly HTTP servers, but are designed to handle requests through modules to Apache or other servers. 04:07:15 exexex [n=chatzill@85.101.17.34] has joined #scheme 04:07:17 bitweiler`: Learning to do what? 04:07:33 What Scheme do you use? 04:08:14 -!- reprore [n=reprore@ntkngw304058.kngw.nt.ftth.ppp.infoweb.ne.jp] has quit [Remote closed the connection] 04:08:21 arcfide: mit scheme, learn to host web pages, mainly xml stuff 04:08:34 There is a mod_lisp back end included in MIT Scheme. 04:08:37 bitweiler`: Use mod_lisp in MIT Scheme. 04:08:38 arcfide can tell you all about it! 04:08:41 Yep. 04:08:42 :-) 04:08:55 bitweiler`: I have a sample blog software written in it. 04:09:00 or install plt and read this: http://download.plt-scheme.org/doc/html/continue/index.html 04:09:11 neilv: Oh, your party pooper. 04:09:14 :) 04:09:20 s/your/you/ 04:10:42 arcfide: was it written with mit scheme 04:10:46 Yes. 04:11:02 It's an MIT Scheme application that uses MIT Scheme's XML library and Mod_lisp library. 04:11:20 nice, how can I learn to use it 04:11:22 reprore [n=reprore@ntkngw304058.kngw.nt.ftth.ppp.infoweb.ne.jp] has joined #scheme 04:11:33 The mod_lisp library is relatively easy to read and small if you want to read the source code, and you'll learn a lot doing that, but if you want to learn how to use it, and example like slogger might help. 04:12:10 bitweiler`: . 04:12:35 It's just an example, but it should get you started. 04:13:01 You can find more documentation on mod_lisp at the relevant site. 04:14:14 I use mod_lisp with araneida before 04:14:19 Okay. 04:14:26 So if you already know how to use mod_lisp, you are all set. 04:16:10 -!- bitweiler [n=phax@71.149.130.217] has quit [Read error: 110 (Connection timed out)] 04:16:32 -!- bitweiler` is now known as bitweiler 04:16:59 thanks arcfide ;) 04:17:15 bitweiler: archive.scm, entries.scm, entry.scm, and blog.scm handle the rendering of different elements in the pages. 04:17:47 -!- underspecified_ [n=eric@softbank220043052007.bbtec.net] has quit [] 04:17:50 bitweiler: globals.scm contains a set of globals for rendering and configuration. 04:18:02 load.scm shows you how the basic setup works. 04:18:13 okay 04:18:42 pages.scm is something that handles most of the pages. Kind of has the top-level procedures for rendering pages. 04:19:06 And slogger.scm has the handlers that you link in with the mod_lisp library. 04:20:19 So, basically, you set up handlers that take in requests and return the results of those requests, which are passed back to the mod_lisp code. You define all those handlers, which will usually use other procedures to generate the XML for each page, and then you just (START-MOD-LISP-SERVER). :-) 04:20:39 There is a README that discusses the overall configuration. 04:20:53 I am going to bed after a bit here, so I can't help you right now, but email me any questions you have. 04:21:42 okay 04:21:50 Enjoy! I like using the mod_lisp on MIT Scheme, so I hope you will too. 04:22:16 I plan on writing a mostly API compatible version for Chez Scheme that is ISC licensed. 04:23:06 -!- arcfide [n=arcfide@adsl-99-137-203-229.dsl.bltnin.sbcglobal.net] has quit ["Stupid bugs that require restarts to debug."] 04:48:54 -!- sepult [n=buggarag@xdsl-87-78-152-252.netcologne.de] has quit ["leaving"] 04:49:14 melgray [n=melgray@c-71-197-146-242.hsd1.wa.comcast.net] has joined #scheme 04:50:26 -!- bitweiler [n=phax@ppp-70-242-145-246.dsl.stlsmo.swbell.net] has quit [Read error: 104 (Connection reset by peer)] 04:55:53 hadronzoo [n=hadronzo@ppp-70-247-161-87.dsl.rcsntx.swbell.net] has joined #scheme 05:01:04 -!- reprore [n=reprore@ntkngw304058.kngw.nt.ftth.ppp.infoweb.ne.jp] has quit [Remote closed the connection] 05:01:38 mwhitney [n=mwhitney@d75-156-116-95.bchsia.telus.net] has joined #scheme 05:03:00 davidad [n=me@RANDOM-THREE-EIGHTY-TWO.MIT.EDU] has joined #scheme 05:03:56 -!- annodomini [n=lambda@wikipedia/lambda] has quit [] 05:09:13 lowlycoder [n=x@unaffiliated/lowlycoder] has joined #scheme 05:09:43 -!- lowlycoder [n=x@unaffiliated/lowlycoder] has quit [Client Quit] 05:10:10 tjafk2 [n=timj@e176215115.adsl.alicedsl.de] has joined #scheme 05:11:05 annodomini [n=lambda@c-75-69-96-104.hsd1.nh.comcast.net] has joined #scheme 05:12:43 annodomini_ [n=lambda@c-75-69-96-104.hsd1.nh.comcast.net] has joined #scheme 05:16:48 benny [n=benny@i577A0B9B.versanet.de] has joined #scheme 05:17:20 ramkrsna [n=ramkrsna@unaffiliated/ramkrsna] has joined #scheme 05:27:19 ayrnieu [n=julian@c-76-30-82-6.hsd1.tx.comcast.net] has joined #scheme 05:27:39 -!- tjafk1 [n=timj@e176208213.adsl.alicedsl.de] has quit [Read error: 110 (Connection timed out)] 05:28:52 -!- annodomini [n=lambda@wikipedia/lambda] has quit [Read error: 110 (Connection timed out)] 05:29:08 REPLeffect [n=REPLeffe@69.54.115.254] has joined #scheme 05:30:29 -!- wy [n=wy@c-98-228-40-51.hsd1.in.comcast.net] has quit ["Leaving"] 05:35:55 reprore [n=reprore@ntkngw304058.kngw.nt.ftth.ppp.infoweb.ne.jp] has joined #scheme 05:36:08 underspecified [n=eric@isa7-dhcp-116-127.naist.jp] has joined #scheme 05:37:16 eno__ [n=eno@adsl-70-137-132-29.dsl.snfc21.sbcglobal.net] has joined #scheme 05:41:21 -!- reprore [n=reprore@ntkngw304058.kngw.nt.ftth.ppp.infoweb.ne.jp] has quit [Remote closed the connection] 05:47:00 brandelune [n=suzume@pl064.nas934.takamatsu.nttpc.ne.jp] has joined #scheme 05:49:30 -!- eno [n=eno@nslu2-linux/eno] has quit [Read error: 110 (Connection timed out)] 05:52:14 Mr_Awesome [n=eric@isr5452.urh.uiuc.edu] has joined #scheme 06:08:27 raikov [n=igr@82.45.130.213] has joined #scheme 06:13:38 -!- seoushi [n=seoushi@c-67-186-243-205.hsd1.ut.comcast.net] has quit [Read error: 104 (Connection reset by peer)] 06:14:29 mmc [n=mima@gw1.teleca.fi] has joined #scheme 06:14:58 -!- synx [i=synx@gateway/gpg-tor/key-0xA71B0C6A] has quit [Remote closed the connection] 06:15:49 -!- REPLeffect [n=REPLeffe@69.54.115.254] has quit ["bye"] 06:16:26 -!- annodomini_ [n=lambda@wikipedia/lambda] has quit [] 06:16:29 synx [i=synx@gateway/gpg-tor/key-0xA71B0C6A] has joined #scheme 06:25:07 seoushi [n=seoushi@c-67-186-243-205.hsd1.ut.comcast.net] has joined #scheme 06:30:12 dejai [n=dejai@230.15.233.220.exetel.com.au] has joined #scheme 06:30:24 -!- ayrnieu [n=julian@c-76-30-82-6.hsd1.tx.comcast.net] has quit [Read error: 104 (Connection reset by peer)] 06:33:56 -!- araujo [n=araujo@gentoo/developer/araujo] has quit ["Leaving"] 06:38:12 -!- jonrafkind [n=jon@c-98-202-86-149.hsd1.ut.comcast.net] has quit [Read error: 110 (Connection timed out)] 06:43:34 -!- neilv [n=user@dsl092-071-030.bos1.dsl.speakeasy.net] has quit ["Leaving"] 06:48:10 -!- mejja [n=user@c-4bb5e555.023-82-73746f38.cust.bredbandsbolaget.se] has quit [Remote closed the connection] 06:53:38 So I'm trying to teach myself scheme by rewriting code I've written in C. I made a simple little program but I can't help but think that it isn't very scheme like or possibly I'm making things more complicated. If someone wants to look at my code and point out what they would change I would greatly appreciate it. http://paste.lisp.org/display/76686 07:13:50 seoushi: translation may be the wrong way to think about scheme, since you'll end up writing c in scheme 07:14:03 why not start tabula rasa? 07:14:15 http://mitpress.mit.edu/sicp/full-text/book/book.html 07:14:56 probably, I just figured learning by example and comparison of my existing code might not be a bad way to do things. I've meddled with functional programming a few times before 07:22:44 seoushi: oh, ok; i found scheme to be such a paradigm change from imperative programming, that i needed a whole new cognitive apparatus 07:23:01 it was effectively orthogonal to my programming history 07:23:34 but you may find it differently 07:26:42 -!- exexex [n=chatzill@85.101.17.34] has quit [Read error: 60 (Operation timed out)] 07:28:26 I've use ocaml, lisp and dr scheme (uni). I've caught on to the idea of data as functions and things like that. I watched 4-5 videos from an old standford class that used that book. I don't think I really need to learn the paradigm change as much as how people actually code real world programs in scheme. Formating and common idioms are more of what I'm looking for 07:29:47 -!- error_developer_ [n=errordev@78-86-1-110.zone2.bethere.co.uk] has quit [Remote closed the connection] 07:30:04 Not to say I don't need to learn some things but I figured if someone "corrected" my code or gave me pointers I could catch onto it faster. 07:30:15 errordeveloper [n=errordev@78-86-1-110.zone2.bethere.co.uk] has joined #scheme 07:30:38 -!- raikov [n=igr@82.45.130.213] has quit [Remote closed the connection] 07:32:39 seoushi: I see a lot of mutation in your code in addition to superfluous begin blocks 07:33:00 yeah 07:33:22 results of years doing mostly C heh 07:33:56 that's why i think you could use a tabula rasa 07:35:15 fair enough. 07:35:57 but if you want to half-ass it, think of some recursive functions that could replace the mutation; get rid of the superfluous begin blocks 07:36:21 well the easy way to do it is passing all the data arround 07:36:39 but I just figured that there might be an easier solution 07:38:26 Jarvellis [n=jarv@dsl-217-155-101-22.zen.co.uk] has joined #scheme 07:38:41 depending on whether your scheme supports it, foof loop has some interesting ways to think about iterating through files, accumulating results 07:38:44 http://mumble.net/~campbell/scheme/foof-loop.txt 07:39:01 I'm using gambit-c 07:41:05 -!- kilimanjaro [n=kilimanj@70.116.95.163] has quit ["Leaving"] 07:41:41 gambit uses psyntax, which foof-loop will work with 07:44:11 -!- cracki [n=cracki@sglty.kawo2.RWTH-Aachen.DE] has quit ["The funniest things in my life are truth and absurdity."] 07:51:05 ecraven [n=nex@140.78.42.103] has joined #scheme 07:58:31 -!- melgray [n=melgray@c-71-197-146-242.hsd1.wa.comcast.net] has quit [] 08:08:42 rmrfchik [n=paul@relay2.jet.msk.su] has joined #scheme 08:15:59 mike [n=m@dslb-088-066-245-209.pools.arcor-ip.net] has joined #scheme 08:16:27 -!- mike is now known as Guest3361 08:26:03 -!- leppie [n=lolcow@dsl-243-9-207.telkomadsl.co.za] has quit [Read error: 60 (Operation timed out)] 08:26:11 -!- saccade_ [n=saccade@65-78-24-47.c3-0.smr-ubr1.sbo-smr.ma.cable.rcn.com] has quit ["This computer has gone to sleep"] 08:28:27 Supposing a procedure is invoked with a set of arguments and keyword arguments. How does it then invoke another procedure it's wrapping with the exact same arguments? 08:30:46 I could do it easily if it were just positional arguments, but these keywords have me flummoxed. 08:32:36 seoushi: also try How To Design Programs 08:32:47 more like what you want than SICP 08:33:05 "" 08:33:07 how people actually code real world programs in scheme. Formating and common idioms are more of what I'm looking for 08:33:10 "" 08:33:55 http://www.htdp.org/ <- Teaches software *design* through scheme 08:35:30 seoushi: like SICP, it also starts from scratch, but it aims more towards what you described 08:36:51 thanks for all the help 08:36:52 from the preface: "Design recipes are the equivalent of soccer ball handling techniques, writing techniques, techniques of arrangements, and drawing skills. A single design recipe represents a point of the program design space. We have studied this space and have identified many important categories." 08:37:07 and I know I am overpasting a bit, but it's not like the channel is busy or anything 08:37:18 heh yeah 08:38:07 I almost have it rewriten more functional friendly I'll post it when I'm done. 08:39:19 seoushi: I am almost a beginner too 08:39:37 it's only that I have researched more literature, apparently 08:39:55 -!- Guest3361 [n=m@dslb-088-066-245-209.pools.arcor-ip.net] has quit ["This computer has gone to sleep"] 08:40:18 the feeling I get is that most people are beginers with scheme and there are only a handful of people who really know it, but then again you can say that about most languages. 08:40:29 but another good idea could be to join the SICP reading group (##sicp) 08:40:57 is that more of the beginers question area? 08:41:14 probably true, but in #scheme you can find real users and implementers, not just dabblers 08:41:49 no, ##SICP is a channel where a bunch of people from Hacker News and Freenode have arranged to help each other study through SICP 08:42:00 in that sense, it's a beginners' zone 08:42:10 ah 08:42:23 I'll idle in there and see what I can learn :) 08:42:34 but there is also a guy who is implementing a scheme in ruby 08:42:37 hardly a beginner 08:42:52 (or maybe a beginner to scheme, but not to fp) 08:43:09 are there any good forums? 08:43:24 I don't know 08:43:44 check out schemers.org and commnity.schemewiki.org (from the topic) 08:44:28 but given the general disposition of the average schemer, I would say finding a mailing list is more likely than finding a forum 08:44:44 or a usenet group even 08:44:50 good luck 08:45:28 yeah 08:46:10 funny, I think I have that second book you posted, it was for my Dr Scheme/ intro to CS class 08:46:32 might have sold it tho.. been a long time 08:48:38 it's online 08:49:23 oh I know, just saying I know that book 08:51:17 how far into it did the course get? 08:51:19 just curious 08:51:35 Oh I finished that class but it was only a semester long 08:51:51 then the next year the CS program changed and it was all java (eww) 08:52:16 I mean, how far into the book? 08:52:25 that's what I am curious 08:52:39 oh, I have no idea. that was over 7 years ago 08:52:47 wow, I see 08:54:17 wingo-tp [n=wingo@30.Red-79-156-145.staticIP.rima-tde.net] has joined #scheme 09:05:00 attila_lendvai [n=ati@catv-89-132-189-132.catv.broadband.hu] has joined #scheme 09:07:42 -!- attila_lendvai [n=ati@catv-89-132-189-132.catv.broadband.hu] has quit [Client Quit] 09:15:19 jewel [n=jewel@dsl-242-138-129.telkomadsl.co.za] has joined #scheme 09:19:15 kandinski, http://paste.lisp.org/display/76688 09:31:25 anyways time to sleep 09:32:32 masm [n=masm@a83-132-152-110.cpe.netcabo.pt] has joined #scheme 09:36:51 seems right to me 09:37:53 load-line is nicely tail-recursive, and it's very readable 09:37:58 (else counters) 09:42:59 -!- dejai [n=dejai@230.15.233.220.exetel.com.au] has quit [Remote closed the connection] 09:45:27 -!- synthase [n=synthase@68.63.48.10] has quit [Read error: 145 (Connection timed out)] 09:46:50 raikov [n=igr@82.45.130.213] has joined #scheme 09:47:19 alaricsp [n=alaricsp@88-202-213-29.rdns.as8401.net] has joined #scheme 10:08:22 orgy` [n=ratm_@pD9FFF3AD.dip.t-dialin.net] has joined #scheme 10:21:06 amaron [n=amaron@cable-94-189-243-158.dynamic.sbb.rs] has joined #scheme 10:27:02 hkBst [n=hkBst@gentoo/developer/hkbst] has joined #scheme 10:39:37 elias` [n=me@unaffiliated/elias/x-342423] has joined #scheme 10:45:37 hemulen [n=hemulen@cpe-069-134-114-252.nc.res.rr.com] has joined #scheme 10:59:53 -!- errordeveloper [n=errordev@78-86-1-110.zone2.bethere.co.uk] has quit [Remote closed the connection] 11:00:39 errordeveloper [n=errordev@78-86-1-110.zone2.bethere.co.uk] has joined #scheme 11:03:03 -!- Arelius [n=Indy@netblock-68-183-230-134.dslextreme.com] has quit [] 11:05:43 -!- jao [n=jao@221.Red-79-155-152.dynamicIP.rima-tde.net] has quit [Read error: 110 (Connection timed out)] 11:33:04 attila_lendvai [n=ati@catv-89-132-189-132.catv.broadband.hu] has joined #scheme 11:34:04 -!- underspecified [n=eric@isa7-dhcp-116-127.naist.jp] has quit [] 11:35:53 wingo--tp [n=wingo@229.Red-83-34-241.dynamicIP.rima-tde.net] has joined #scheme 11:36:54 -!- wingo-tp [n=wingo@30.Red-79-156-145.staticIP.rima-tde.net] has quit [Read error: 110 (Connection timed out)] 11:45:17 *foof* declares lzma to be the most hideous code he's seen this year 11:45:25 (but it's early yet) 11:49:02 jao [n=jao@74.Red-80-24-4.staticIP.rima-tde.net] has joined #scheme 11:51:12 -!- jao [n=jao@74.Red-80-24-4.staticIP.rima-tde.net] has left #scheme 11:52:26 jao [n=jao@74.Red-80-24-4.staticIP.rima-tde.net] has joined #scheme 11:53:16 -!- AtnNn [n=welcome@modemcable087.62-56-74.mc.videotron.ca] has quit ["foobar"] 11:53:31 synthase [n=synthase@68.63.48.10] has joined #scheme 12:19:31 mike [n=m@infedyn086.informatik.uni-stuttgart.de] has joined #scheme 12:19:59 -!- mike is now known as Guest98704 12:32:33 underspecified [n=eric@softbank220043052007.bbtec.net] has joined #scheme 12:33:57 -!- Guest98704 [n=m@infedyn086.informatik.uni-stuttgart.de] has quit ["This computer has gone to sleep"] 12:38:53 hiyuh [n=hiyuh@KD125054017176.ppp-bb.dion.ne.jp] has joined #scheme 12:40:26 ken-p [n=unknown@84.92.70.37] has joined #scheme 12:42:35 -!- ttmrichter_ [n=ttmricht@58.48.196.110] has quit [Connection timed out] 12:44:27 ttmrichter_ [n=ttmricht@221.235.61.154] has joined #scheme 12:49:35 m7g [n=stefan@78.43.227.147] has joined #scheme 12:56:42 langmartin [n=user@75.148.111.133] has joined #scheme 12:59:54 cracki [n=cracki@sglty.kawo2.RWTH-Aachen.DE] has joined #scheme 13:05:08 -!- ramkrsna [n=ramkrsna@unaffiliated/ramkrsna] has quit [Remote closed the connection] 13:06:17 reprore [n=reprore@ntkngw304058.kngw.nt.ftth.ppp.infoweb.ne.jp] has joined #scheme 13:13:12 annodomini [n=lambda@c-75-69-96-104.hsd1.nh.comcast.net] has joined #scheme 13:14:51 annodomini_ [n=lambda@c-75-69-96-104.hsd1.nh.comcast.net] has joined #scheme 13:19:39 -!- masm [n=masm@a83-132-152-110.cpe.netcabo.pt] has quit [Read error: 113 (No route to host)] 13:26:39 luz [n=davids@139.82.89.70] has joined #scheme 13:30:59 -!- annodomini [n=lambda@wikipedia/lambda] has quit [Read error: 110 (Connection timed out)] 13:35:40 -!- dsmith [i=wjzouagm@cpe-71-74-230-225.neo.res.rr.com] has quit ["Leaving"] 13:40:00 Adamant [n=Adamant@c-76-29-188-22.hsd1.ga.comcast.net] has joined #scheme 13:45:14 dlt [n=dlt@201.80.187.243] has joined #scheme 13:45:32 -!- dlt is now known as dlt_ 13:47:24 ttmrichter__ [n=ttmricht@59.172.142.9] has joined #scheme 13:48:49 -!- reprore [n=reprore@ntkngw304058.kngw.nt.ftth.ppp.infoweb.ne.jp] has quit [Remote closed the connection] 13:49:27 dlt__ [n=dlt@201.80.187.243] has joined #scheme 13:49:59 -!- dlt_ [n=dlt@201.80.187.243] has quit [Read error: 104 (Connection reset by peer)] 13:51:55 -!- annodomini_ [n=lambda@wikipedia/lambda] has quit [] 13:56:30 -!- ttmrichter_ [n=ttmricht@221.235.61.154] has quit [Connection timed out] 14:00:34 annodomini [n=lambda@c-75-69-96-104.hsd1.nh.comcast.net] has joined #scheme 14:02:13 annodomini_ [n=lambda@c-75-69-96-104.hsd1.nh.comcast.net] has joined #scheme 14:02:22 dlt_ [n=dlt@201.80.187.243] has joined #scheme 14:02:34 reprore [n=reprore@ntkngw304058.kngw.nt.ftth.ppp.infoweb.ne.jp] has joined #scheme 14:07:37 mike [n=m@infedyn086.informatik.uni-stuttgart.de] has joined #scheme 14:08:05 -!- mike is now known as Guest59975 14:10:01 -!- dlt__ [n=dlt@201.80.187.243] has quit [Read error: 110 (Connection timed out)] 14:10:48 -!- annodomini_ [n=lambda@wikipedia/lambda] has quit [] 14:12:18 borism [n=boris@195-50-212-64-dsl.krw.estpak.ee] has joined #scheme 14:15:28 klutometis, `depending on whether your Scheme supports foof-loop'? Foof-loop can be used in any implementation of a language superficially close enough to the language described in the R5RS -- without any fancy control constructs or anything. 14:16:45 That doesn't include Gambit or Gauche. 14:17:32 Well, Gambit first requires you to toggle `superficial resemblance to the R5RS' with the `-:s' switch or something, and to load support for macros. 14:18:10 And then lots of other things break. 14:18:18 That's their fault. 14:18:46 -!- annodomini [n=lambda@wikipedia/lambda] has quit [Read error: 110 (Connection timed out)] 14:19:31 -!- borism__ [n=boris@195-50-201-100-dsl.krw.estpak.ee] has quit [Read error: 145 (Connection timed out)] 14:24:51 jah [n=jah@31.138.72-86.rev.gaoland.net] has joined #scheme 14:25:20 -!- jah [n=jah@31.138.72-86.rev.gaoland.net] has quit [Client Quit] 14:27:09 -!- Adamant [n=Adamant@unaffiliated/adamant] has quit [] 14:29:56 -!- m7g [n=stefan@78.43.227.147] has quit [Remote closed the connection] 14:31:45 masm [n=masm@a83-132-152-110.cpe.netcabo.pt] has joined #scheme 14:36:10 annodomini [n=lambda@130.189.179.215] has joined #scheme 14:37:45 -!- Guest59975 [n=m@infedyn086.informatik.uni-stuttgart.de] has quit ["This computer has gone to sleep"] 14:40:33 -!- reprore [n=reprore@ntkngw304058.kngw.nt.ftth.ppp.infoweb.ne.jp] has quit [Remote closed the connection] 14:41:52 tobia [n=toby@static-217-133-32-17.clienti.tiscali.it] has joined #scheme 14:47:07 dlt__ [n=dlt@201.80.187.243] has joined #scheme 14:48:15 -!- ecraven [n=nex@140.78.42.103] has quit ["bbl"] 14:53:38 -!- dlt__ [n=dlt@201.80.187.243] has quit [Read error: 60 (Operation timed out)] 15:01:14 i have an ignorant question. how, with syntax-case or syntax-rules, can I extend an existing syntactic binding? 15:01:19 e.g. adding an additional case 15:01:29 -!- wingo--tp is now known as wingo-tp 15:02:48 i was trying (define-syntax foo (let-syntax ((old-foo foo)) (syntax-rules () ...)), but that wasn't working 15:03:00 it was claiming an error in the let-syntax 15:03:25 it could be my setup tho, my syntax-case is in pieces all over the floor :P 15:04:48 -!- dlt_ [n=dlt@201.80.187.243] has quit [Read error: 110 (Connection timed out)] 15:06:50 jonrafkind [n=jon@c-98-202-86-149.hsd1.ut.comcast.net] has joined #scheme 15:06:58 reprore [n=reprore@ntkngw304058.kngw.nt.ftth.ppp.infoweb.ne.jp] has joined #scheme 15:09:43 -!- synthase [n=synthase@68.63.48.10] has quit [Read error: 145 (Connection timed out)] 15:13:27 -!- amaron [n=amaron@cable-94-189-243-158.dynamic.sbb.rs] has quit ["Lost terminal"] 15:20:46 Arelius [n=Indy@netblock-68-183-230-134.dslextreme.com] has joined #scheme 15:22:49 -!- Arelius [n=Indy@netblock-68-183-230-134.dslextreme.com] has quit [Client Quit] 15:26:04 sreeram [n=sreeram@122.164.210.39] has joined #scheme 15:29:26 Edico [n=Edico@unaffiliated/edico] has joined #scheme 15:37:07 -!- jonrafkind [n=jon@c-98-202-86-149.hsd1.ut.comcast.net] has quit [Connection timed out] 15:50:01 -!- ttmrichter__ [n=ttmricht@59.172.142.9] has quit [Connection timed out] 15:50:51 ttmrichter__ [n=ttmricht@59.172.141.82] has joined #scheme 15:52:58 Nshag [i=user@Mix-Orleans-106-4-201.w193-248.abo.wanadoo.fr] has joined #scheme 15:53:04 -!- reprore [n=reprore@ntkngw304058.kngw.nt.ftth.ppp.infoweb.ne.jp] has quit [Remote closed the connection] 15:54:01 proq [n=user@38.100.211.40] has joined #scheme 15:54:03 reprore_ [n=reprore@ntkngw304058.kngw.nt.ftth.ppp.infoweb.ne.jp] has joined #scheme 15:57:56 leppie [n=lolcow@dsl-243-9-207.telkomadsl.co.za] has joined #scheme 16:04:33 Cheshire [n=yoo@amcant.demon.co.uk] has joined #scheme 16:04:59 mike [n=m@dslb-088-066-230-084.pools.arcor-ip.net] has joined #scheme 16:05:27 -!- mike is now known as Guest7506 16:05:35 -!- reprore_ [n=reprore@ntkngw304058.kngw.nt.ftth.ppp.infoweb.ne.jp] has quit ["Leaving..."] 16:08:32 jonrafkind [n=jon@crystalis.cs.utah.edu] has joined #scheme 16:25:27 ejs [n=eugen@94-248-92-109.dynamic.peoplenet.ua] has joined #scheme 16:25:39 athos [n=philipp@92.250.250.68] has joined #scheme 16:32:53 bweaver [n=user@75.148.111.133] has joined #scheme 16:33:22 jlongster [n=user@75.148.111.133] has joined #scheme 16:48:47 -!- eno__ is now known as eno 16:57:44 -!- tobia [n=toby@static-217-133-32-17.clienti.tiscali.it] has left #scheme 17:03:49 -!- raikov [n=igr@82.45.130.213] has quit [Remote closed the connection] 17:08:29 -!- mmc [n=mima@gw1.teleca.fi] has quit ["Leaving."] 17:15:02 aaco [n=aaco@unaffiliated/aaco] has joined #scheme 17:25:21 dlt__ [n=dlt@201.17.146.221] has joined #scheme 17:27:37 dlt____ [n=dlt@201.80.187.243] has joined #scheme 17:28:27 hark [n=strider@hark.slew.org] has joined #scheme 17:33:50 krat3r [n=krat@wifi.ist.utl.pt] has joined #scheme 17:35:36 -!- jao [n=jao@74.Red-80-24-4.staticIP.rima-tde.net] has quit [Read error: 110 (Connection timed out)] 17:41:13 jah [n=jah@31.138.72-86.rev.gaoland.net] has joined #scheme 17:42:36 p1dzkl [i=p1dzkl@2001:470:1f09:979:0:0:0:14] has joined #scheme 17:45:16 -!- dlt__ [n=dlt@201.17.146.221] has quit [Read error: 110 (Connection timed out)] 17:46:50 saccade_ [n=saccade@BRAIN-AND-COG-THREE-TWELVE.MIT.EDU] has joined #scheme 17:53:46 -!- krat3r [n=krat@wifi.ist.utl.pt] has quit ["Ex-Chat"] 17:57:00 raikov [n=igr@82.45.130.213] has joined #scheme 18:07:21 Is there a type that acts like a list with pre-calculated length? 18:07:43 like (cons null 0) (cons '(a) 1) etc 18:08:32 because so far I've written (llist-cons) and (llist-empty?) and was wondering if someone had already done this. 18:08:44 a 'type'? 18:08:47 vector + srfi 43? 18:10:56 -!- alaricsp [n=alaricsp@88-202-213-29.rdns.as8401.net] has quit [] 18:11:00 araujo [n=araujo@gentoo/developer/araujo] has joined #scheme 18:12:54 wouldnt it be easier just to store the length as the car of the first cons? 18:13:42 ok, probably not, else people might confused :p 18:15:11 yeah 18:15:39 vectors are random access though jlongster, I only need the length (frequently) 18:16:00 wingo-tp, in some macro systems, such as riaxpander or MIT Scheme's, you can write (LET-SYNTAX ((OLD-FOO FOO)) ...). 18:16:08 wingo-tp, it doesn't work in general, though. 18:16:36 Riastradh: ack, thanks. 18:18:12 -!- attila_lendvai [n=ati@catv-89-132-189-132.catv.broadband.hu] has quit ["..."] 18:18:53 -!- ASau [n=user@193.138.70.52] has quit [Remote closed the connection] 18:19:20 synx, what about ((a 3) (b 2) (c 1)) 18:20:25 synx, or ((a (succ #2#)) (b #2=(succ #1#)) (c #1=(succ zero))) might be more memory efficient 18:20:48 Cheshire: what about it? 18:21:53 (list->llist '(a b c)) -> (cons '(a b c) 3) effectively. Though a struct would be less confusing. 18:22:31 (define-struct llist (list length)) 18:31:08 schmalbe [n=bernhard@p549A0CCA.dip0.t-ipconnect.de] has joined #scheme 18:36:50 -!- saccade_ [n=saccade@BRAIN-AND-COG-THREE-TWELVE.MIT.EDU] has quit [Read error: 110 (Connection timed out)] 18:38:32 plus with vectors you can't grow or shrink them, which will never work here. 18:44:54 maybe I could just write some grow/shrink stuff for vectors... 18:48:40 slom_ [n=slom@pD9EB5FB7.dip.t-dialin.net] has joined #scheme 18:48:41 -!- masm [n=masm@a83-132-152-110.cpe.netcabo.pt] has quit [Read error: 60 (Operation timed out)] 18:52:15 masm [n=masm@a83-132-152-110.cpe.netcabo.pt] has joined #scheme 18:54:16 if you wanna get that complicated, why not just use a tree :) 18:56:11 foof: is there a way in format to specify array initialization expressions? (ie. char x[] = {'a', 'b', 'c'}) 18:56:15 or make a list ADT where all operations are exactly o(n^2) 18:56:28 slom_, in Scheme ? 18:56:59 slom_: literal vectors? 18:57:30 sorry, meant fmt ... the pretty printing library 18:57:47 s/format/fmt 18:58:00 in C? 18:59:31 leppie: http://synthcode.com:80/scheme/fmt/#SECTION_6 19:00:11 ah right, never seen that, looks 19:02:09 ayrnieu [n=julian@c-76-30-82-6.hsd1.tx.comcast.net] has joined #scheme 19:03:14 leppie: i think derick eddington also added it to his xitomatl libraries recently :) 19:03:57 cool, I should try and get his stuff running on IronScheme, would add a lot of meat to it :) 19:05:19 jgracin [n=jgracin@82.193.210.126] has joined #scheme 19:08:19 ASau [n=user@193.138.70.52] has joined #scheme 19:08:32 jkff [i=jkff@43.201-client.airnet.ru] has joined #scheme 19:09:52 *leppie* dreams of the day cygwin gets faster... 19:10:32 Bah. 19:10:43 make-keyword-procedure 19:10:44 gah 19:10:45 that took way too long to find 19:10:50 hi jkff 19:10:54 leppie: use Interix. 19:11:33 what is that? 19:12:43 Neither Google nor Wikipedia could possibly know the answer to that question. 19:13:04 i was just gonna say, 'off to google' 19:13:15 -!- luz [n=davids@139.82.89.70] has quit ["Client exiting"] 19:14:25 *leppie* didnt note the sarcasm 19:14:30 :( 19:16:46 melgray [n=melgray@70.99.250.82] has joined #scheme 19:16:50 ahh interesting, I was wondering if SFU was ever being used 19:17:06 thanks ASau, will check this out 19:17:49 leppie: we support it, at least nominally. 19:17:57 ... 19:18:10 We? 19:18:25 "We" = "pkgsrc team". 19:18:26 so I guess I just get the whole complete one? 19:18:45 ASau: wrong chan? 19:19:00 sjamaan: right chan. :p 19:19:07 Suit yourself :) 19:19:42 *ASau* spreads the word. 19:19:54 ...and produces entropy. 19:29:24 arcfide [n=arcfide@adsl-99-137-203-229.dsl.bltnin.sbcglobal.net] has joined #scheme 19:29:50 johnnowak [n=johnnowa@207-38-171-48.c3-0.wsd-ubr1.qens-wsd.ny.cable.rcn.com] has joined #scheme 19:34:18 lolcow [n=lolcow@dsl-243-42-27.telkomadsl.co.za] has joined #scheme 19:34:48 -!- leppie [n=lolcow@dsl-243-9-207.telkomadsl.co.za] has quit [Read error: 60 (Operation timed out)] 19:34:53 -!- jah [n=jah@31.138.72-86.rev.gaoland.net] has quit [Remote closed the connection] 19:37:44 lowlycoder [n=x@unaffiliated/lowlycoder] has joined #scheme 19:37:57 does scheme support anything like get/setf? 19:40:25 what does setf do? 19:40:36 If you limited that question to SETF, I'd guess that what you mean is Common Lisp's SETF operator. But I don't know what `GET/SETF' is supposed to mean. 19:41:10 lowly, GET and GETF have nothing to do with SETF. The normal way to access some data would be the 'get', and setf maps these to assignments. See SRFI 17, generalized set! 19:41:23 in on lisp, I see: "(defun behave (animal) (funcall (get animal 'behavior)))" and "(setf (get 'dog 'behavior) #'(lambda () (wag-till) (bark)))" <--- that seems very magical 19:41:51 http://srfi.schemers.org/srfi-17/srfi-17.html 19:41:54 where 'that' is referring to (setf (get 'dog 'behavior) 19:42:03 SRFI 17 is the only common analogue of Common Lisp's SETF, but it's somewhat different. 19:42:18 -!- lolcow [n=lolcow@dsl-243-42-27.telkomadsl.co.za] has quit [Read error: 54 (Connection reset by peer)] 19:42:51 i don't mean to troll here -- I like scheme, but I also like define-macro, and in reading on lisp, the use of get / setf in the above example really fasciantes me 19:43:12 what are possible gotchas with this that has resulted this not being in scheme? 19:43:25 Try this in Common Lisp: 19:43:32 (defun behaviour (animal) (get animal 'behaviour)) 19:43:44 (setf (behaviour 'dog) #'(lambda () (wag-tail) (bark))) 19:43:49 lowly - there's no 'get / setf'. GET does something completely different. It is not paired with setf. 19:43:50 (behaviour 'dog) 19:44:48 installing clisp 19:45:07 When I said `try this', I really meant `think about this'; `evaluate this in your head'. 19:45:20 i get #'(lambda () (wag-till) (bark)) back 19:45:26 (in my head) 19:45:48 Now can you explain how that works? 19:46:12 joelmccracken_ [n=joelmccr@pool-72-95-204-183.pitbpa.east.verizon.net] has joined #scheme 19:46:18 only if setf is a macro and not a function 19:46:31 a very weird macro too, that has to understand how alot of scheme code works 19:46:38 leppie [n=lolcow@dsl-244-196-47.telkomadsl.co.za] has joined #scheme 19:46:38 So how does it work? 19:46:42 -!- joelmccracken_ [n=joelmccr@pool-72-95-204-183.pitbpa.east.verizon.net] has left #scheme 19:46:53 like one that records somewhere "if you ever try to eval (get 'dog 'behavior), return #'(lambda ...)" 19:47:06 How does it record that? 19:47:22 if i were implementing it, it'd put it in a list, or a hash for efficiency 19:47:24 lowly - you might call it an 'extensible macro'. 19:47:33 and get would check this list/hash 19:47:53 Does SETF evaluate its first operand? (In this case, the form (BEHAVIOUR 'DOG).) 19:47:57 no 19:48:03 What does it do with its first operand? 19:48:08 -!- johnnowak [n=johnnowa@207-38-171-48.c3-0.wsd-ubr1.qens-wsd.ny.cable.rcn.com] has left #scheme 19:48:38 wait 19:48:42 your code doens't work in clisp 19:48:57 (thinking more) 19:49:44 Here's a slight variation on the theme: 19:49:59 (defparameter *behaviour* nil) 19:50:22 (defun behaviour (animal) (if (eq animal 'dog) *behaviour* (error "No other animals exist!"))) 19:50:30 Here's another variation on the theme: 19:50:31 can we make the above example work? I think you were going at something relaly deep, which I missed by interrupting you 19:50:41 (defun behaviour (animal) (let ((x (get animal 'behaviour))) x)) 19:51:04 Should these all have the same behaviour for the ensuing incantations of SETF and BEHAVIOUR, as above? 19:52:03 kilimanjaro [n=kilimanj@70.116.95.163] has joined #scheme 19:52:15 i'm guessing no, the (let ((x should screw something up 19:52:19 -!- errordeveloper [n=errordev@78-86-1-110.zone2.bethere.co.uk] has quit [Read error: 110 (Connection timed out)] 19:52:26 because somehow, we should be setf on that x, rather than on (get animal 'behaviour) 19:52:30 i'm making this up on the fl 19:52:33 *fly* 19:52:44 [thinking] 19:52:57 Right now you're looking at this syntactically, as though we were reducing procedure calls syntactically to evaluations of their bodies. 19:53:11 Let's try a semantic approach, where we think in terms of sequential actions and locations where values may be stored. 19:53:26 -!- davidad [n=me@RANDOM-THREE-EIGHTY-TWO.MIT.EDU] has quit [Read error: 104 (Connection reset by peer)] 19:53:38 Surely the object of SETF is to store a value in a location, but in Lisp, locations for values are not first-class entities. 19:54:00 hang on 19:54:07 in comparison, it is in C/C++ because of pointers? 19:54:31 Adamant [n=Adamant@c-76-29-188-22.hsd1.ga.comcast.net] has joined #scheme 19:54:34 rather "locations for values is first-class in C/C++ becuase I can take the address of things" 19:54:35 Some locations can be reified in and C and C++, yes; pointers are the reified representations of locations. 19:54:40 dlt__ [n=dlt@201.80.187.243] has joined #scheme 19:55:03 But suppose I wrote the following function in C: 19:55:14 int foo (int *x) { return (*x); } 19:55:26 Can I then, in some other function, write the following line meaningfully? 19:55:42 (foo (x)) = 3; 19:55:53 -!- Guest7506 [n=m@dslb-088-066-230-084.pools.arcor-ip.net] has quit ["Leaving"] 19:56:16 no 19:56:26 I thought you could 19:56:45 What would it do, Cheshire? 19:57:20 How would it work? 19:57:55 Hint: Functions return values, and values are independent of the locations from which they were obtained. 19:58:07 (This is so of C functions and of Scheme procedures.) 19:58:57 Riastradh: is this how I should think of get? it has a mapping of sexp -> location to store value; when I do (get a1) if a1 is already in the list, it returns the location; if it's not, it creates a new location, add it to the list, and returns it 19:59:09 this way, setf doesn't need to be as magical, it's just taking the location that get returns to it, and setting it 19:59:25 i should almost think of get as a complicate std::map 19:59:53 in which case, yes, setf does evalue it's first arg, to get a location to store 19:59:56 Riastradh: ping 19:59:57 So you're saying that every CAR, every CDR, every VECTOR-REF, &c., would update some map from their arguments to the associated values? 20:00:29 davidad [n=me@RANDOM-THREE-EIGHTY-TWO.MIT.EDU] has joined #scheme 20:00:31 Just a moment -- did you also say that (GET 'DOG 'BEHAVIOUR) will return an object representing a location, not the value that was stored in some location? 20:00:45 -!- pfo [n=pfo@chello084114049188.14.vie.surfer.at] has left #scheme 20:01:34 [thinking], we're almost there 20:01:55 setf has to evalute it's first argument, but instead of getitng it's value, somehow get it's location in memory 20:02:07 If GET returns a location, rather than a value, then what happens when we evaluate (FUNCALL (GET 'DOG 'BEHAVIOUR))? 20:02:19 bad things; I'm wrong to say that get returns a location 20:02:42 But if it doesn't return a location, how does SETF know what location to store a new value in? 20:02:58 setf has to 'evaluate' in the sense that it doesn't have all the information it needs at compile time 20:03:18 What's the extra information it needs? 20:03:59 suppose I have (define (foo x) (if (= x 0) (get 'dog) (get 'cat))) 20:04:07 hmm 20:04:17 jao [n=jao@221.Red-79-155-152.dynamicIP.rima-tde.net] has joined #scheme 20:04:20 setf seems attractive because it's concise, like +, as steele mentions in lambda the ultimate goto 20:04:20 suppose I have (define (foo) (if (= x 0) (get 'dog) (get 'car))) 20:04:26 (setf (foo) blah) 20:04:31 good luck getting that at compile time :-) 20:04:57 mejja [n=user@c-4bb5e555.023-82-73746f38.cust.bredbandsbolaget.se] has joined #scheme 20:05:41 @seen Cheshire 20:05:42 setf needs the cell 20:05:44 not just the value in the cell 20:05:52 By `cell', do you mean `location'? 20:06:00 yes, as those nice box diagrams in sicp 20:06:02 Hm. No lambdabot here, what a sorrow 20:06:11 OK. 20:06:15 incubot: lambda 20:06:18 how does that handle my example of a big, complicated LAMBDA expression following a small (FOO)? 20:06:29 So how does SETF find the location? 20:06:30 incubot knows all! 20:06:59 I admit -- I don't know. 20:07:17 I'm starting to think this involves support at the eval/apply layer 20:07:21 Well, there are two different approaches taken in practical renditions of this magical SETF operator. 20:07:31 do tell 20:07:31 Neither approach is magic, and neither one requires fundamental changes to the evaluation model. 20:07:50 One is to tell SETF at compile-time what expression (SETF (BEHAVIOUR ...) ...) should expand to. 20:08:34 The other is to have (SETF (BEHAVIOUR ...) ) expand to ((SETTER BEHAVIOUR) ...), and to have a run-time association between `settable' procedures such as BEHAVIOUR and their setters. 20:08:54 Common Lisp takes the compile-time approach. SRFI 17 and T take the run-time approach. 20:09:46 -!- proq [n=user@38.100.211.40] has quit [Remote closed the connection] 20:10:00 proq [n=user@38.100.211.40] has joined #scheme 20:10:31 Neither approach intrinsically involves reification of locations. 20:10:50 Riastradh: hey Taylor 20:10:53 Hi. 20:11:06 So, I've decided to stop whacking at this scheme/python thing 20:11:18 and try to actually plan out something reasonable. 20:11:26 this seems very un-magical 20:11:27 What were you trying to accomplish by it, again? 20:11:29 willing to spend a moment with me to figure out what is the right thing? 20:11:41 help mmt, i'll ponder more on this setf and bug you later 20:11:44 I have lots of stuff to procrastinate. Sure. 20:11:46 well, I wanted a very simple FFI kind of thing 20:11:50 -!- dlt____ [n=dlt@201.80.187.243] has quit [Read error: 110 (Connection timed out)] 20:12:12 Python seems like a nice language to use for access to libraries as: 20:12:20 (1) there are many high-level libraries available for it 20:12:29 (2) it has very easy access to C 20:12:50 (3) its basic data structures map easily over to lisp data structures 20:13:29 originally I just wanted MIT Scheme to have access to matplotlib, instead of gnuplot 20:13:46 thoughts? 20:14:19 Are 1, 2, 3 about Scheme or about Python? 20:14:22 *sjamaan* is confused 20:14:35 1/2/3 are about Python relative to MIT Scheme 20:14:58 1, 2, 3 apply to many schemes 20:15:01 sjamaan: I want to give MIT Scheme a simple python calling interface, as a sort of stop-gap foreign function interface 20:15:04 sjamaan: that's nice. 20:15:05 There is an FFI out there for MIT Scheme, at . I believe it works. 20:15:06 I can imagine 1 not applying to MIT scheme 20:15:10 sjamaan: but I want to use MIT Scheme 20:15:24 why don't you just -not- use MIT Scheme 20:15:37 well, scmutils is only available on MIT Scheme 20:15:46 that's why 20:16:18 Riastradh: I think the location idea is far more elegant. With both the compile-time and run-time examples, one has to provide additional code to tell setf what to execute. Which almost seems like writing an inverse function. Being able to get the location would reduce this extra code. 20:16:33 I'm doing work where multivariable symbolic differentiation and nice numerical integrators are important 20:16:36 there's a generic name if I ever heard one 20:16:47 synx: I know, isn't it awful 20:16:54 its also called "mechanics" 20:16:55 multivariable symbolic differentiation 20:17:03 lol 20:17:17 As in, give me the matrix of partial derivatives of these functions 20:17:32 and simplify the resulting expressions; stuff that Mathematica does for you 20:18:30 you could use Mathematica... 20:18:36 there's also sage 20:18:37 ah, but that's commercial 20:18:42 true, but sage is a mess 20:18:48 I like MAXIMA 20:18:51 our original argument was over what Scheme I should use 20:18:54 but writing programs onesself is worthwhile 20:19:03 a friend mine also told me about this brain thing, i heard it's pretty good too 20:19:04 also I don't have a clue if it does that 20:19:07 there is only one scheme that gives me these tools 20:19:12 You could use Matt Birkholz's FFI right now. I also have a pretty clear idea of how to do something better, and part of an implementation. 20:19:16 when you want minimum fuss, use MAXIMA 20:19:17 i think it has a jit too -- gets faster over time if you keep on doing the same type of problems 20:19:36 Riastradh: okay, that doesn't get me matplotlib though 20:19:48 Riastradh: which was my original goal, matplotlib is a python library 20:19:56 I see. I didn't know that. 20:20:06 Riastradh: I was very unclear, sorry. 20:20:30 (MIT Scheme, by the way, also has a halfway decent compiler so that it is not far-fetched to implement numerical algorithms with floating-point computations to run reasonably fast.) 20:20:43 *nod* 20:21:02 Also, scmutils has ridiculously good numerical integrators, things up to 90th order 20:21:18 The better algorithm means you can accurately simulate things with fewer steps 20:21:30 So what does matplotlib do? 20:21:34 And what does invoking it entail? 20:21:36 Matlab's built-in ode simulator is just Runge-Kutta-5 20:21:37 what does 90th order mean? 20:22:27 jgracin_ [n=jgracin@82.193.210.126] has joined #scheme 20:23:02 lowlycoder: http://en.wikipedia.org/wiki/Runge-Kutta_method 20:23:12 that describes a 4th-order (RK4) integrator 20:24:19 dlt____ [n=dlt@c91192dd.static.bhz.virtua.com.br] has joined #scheme 20:24:20 That's a silly citation, mmt! Look on page 45 of the R5RS. 20:24:40 http://schemers.org/Documents/Standards/R5RS/HTML/r5rs-Z-H-13.html#%_chap_Temp_9 20:24:41 -rudybot:#scheme- http://tinyurl.com/aabytl 20:24:58 rudybot: thank you 20:24:59 mejja: eh? Try "rudybot: help". 20:25:11 haha 20:25:19 Riastradh: I forgot about that 20:25:34 but that's example code, rather than an explanation; I stand by my citation 20:26:30 Anyway, what does invoking matplotlib entail, in Python? 20:27:00 Riastradh: importing the library, simple function calls with lists of objects 20:27:20 Riastradh: I wrote a simple thing that dumped actual python commands to a subprocess 20:27:30 that's what you helped me with re: start-pipe-subprocess 20:28:13 it works, but is defintely suboptimal (can't detect errors, or make reference to python objects representing multiple plots) 20:29:08 How complex are the objects that you want to transmit? 20:29:12 lowlycoder: I believe the trick to the "90th-order" stuff is using clever heuristics to see when the thing you are integrating is very smooth, and you can get away with lower order 20:29:19 -!- jgracin [n=jgracin@82.193.210.126] has quit [Read error: 110 (Connection timed out)] 20:29:32 Riastradh: well, I'd be happy with lists of lists even 20:29:34 For instance, are you talking about arrays of numbers? 20:29:53 yep, just lists of lists of ... of numbers would be fine 20:30:24 brainstorming about the Scheme Python Foreign Functions (SpyFF), I was thinking you could add simple hooks at both end for serialization/deserialization 20:30:25 If so, it seems as though it should suffice to write a simple RPC mechanism based on READ and WRITE. 20:30:55 Riastradh: roughly speaking, that's what I started to do 20:31:07 I used JSON instead of s-expressions though 20:31:15 OK. 20:31:39 I used *parser to write a json parser in Scheme (it was easy, but is very slow for some reason), and writing was very simple 20:32:25 in the MIT Scheme changelogs though, it says there is support for XML RPC 20:32:31 It is relatively easy to make slow parsers with *PARSER. I could take a look if you like. 20:32:46 Riastradh: please :) I'll post it somewhere 20:32:53 -!- schmalbe [n=bernhard@p549A0CCA.dip0.t-ipconnect.de] has quit [Remote closed the connection] 20:33:04 There is. Parts of XML-RPC are pretty brain-damaged, but MIT Scheme supports sending XML-RPC requests and receiving XML-RPC replies relatively easily. 20:33:39 Oh, and vice versa, I see. 20:34:05 -!- lowlycoder [n=x@unaffiliated/lowlycoder] has quit ["Lost terminal"] 20:36:02 as in, python has good support too, right? :) 20:36:30 (By the way, it suffices to put the code in your ~/public directory.) 20:36:45 Riastradh: yep, checkout ~/mmt/Public/SPyFF 20:36:51 or git clone it :) 20:36:58 json.scm is the JSON stuff 20:36:59 ~/mmt? I presume you meant ~mmt? 20:37:13 haha, web.mit.edu/mmt/Public/SPyFF 20:37:18 my mistake 20:37:23 the other things are broken 20:37:23 Oh, Athena. OK. 20:38:17 For SEXPR->JSON, use a string output port, not repeated STRING-APPEND. 20:38:34 okay, that wasn't the bottleneck I noticed, but I'll do that 20:38:48 Let's see how decrepit the Scheme on Athena is. 20:39:01 I'm not running it on athena 20:39:05 Hmm, only a year old. Not bad. 20:39:06 I'm using the lastest mechanics 20:39:22 on a 32-bit Intel Macbook Pro 20:39:38 The file it had trouble with was simple dictionaries of strings 20:39:55 dictionaries (JSON "objects") get mapped to hash-tables by this code, as opposed to a-lists 20:39:58 (...oops, right, I'm the one who updated it last, and ought to update it again.) 20:40:10 good man :) 20:40:32 By the way, don't put (LOAD-OPTION '*PARSER) in the file that uses the *PARSER macro. Put it in a compile.scm that compiles json.scm. 20:40:57 I haven't done compilation before, if you are happy to guide me in that, I'd be most appreciative 20:41:06 (load-option '*PARSER) 20:41:08 (cf "json") 20:41:19 -!- davidad [n=me@RANDOM-THREE-EIGHTY-TWO.MIT.EDU] has quit [Connection timed out] 20:41:35 Put that in compile.scm. 20:41:46 (Also call CF with whatever other files you want to compile.) 20:41:54 -!- dlt__ [n=dlt@201.80.187.243] has quit [Connection timed out] 20:41:54 Do you have an example of a large dictionary that Scheme is slow to parse? 20:42:43 errordeveloper [n=errordev@78-86-1-110.zone2.bethere.co.uk] has joined #scheme 20:43:08 sure, but I'll have to email it to you; it has people's names in it 20:43:31 not something I want to post 20:44:01 let me see if the compiling it helped. 20:44:13 OK. Athena doesn't have any notion of public drop-boxes, does it? (without my remembering how to set up elaborate AFS permissions) 20:44:22 how do I load the compiled code? 20:44:25 (load "json") 20:45:08 (TRANSFORM (COMPOSE VECTOR ) ...) can be more concisely written (ENCAPSULATE ...), by the way. 20:46:12 Don't forget (declare (usual-integrations)) for compiled code. 20:46:42 davidad [n=me@RANDOM-ONE-TWENTY-NINE.MIT.EDU] has joined #scheme 20:46:52 wow 20:46:58 compiling did the trick 20:47:05 it takes a reasonable amount of time now 20:47:09 OK. 20:48:43 I'm going to clock out for a few minutes to clean the code up :) 20:57:15 -!- jkff [i=jkff@43.201-client.airnet.ru] has quit [Read error: 113 (No route to host)] 21:05:34 slom__ [n=slom@pD9EB4DAB.dip.t-dialin.net] has joined #scheme 21:07:41 -!- araujo [n=araujo@gentoo/developer/araujo] has quit [No route to host] 21:08:24 -!- jgracin_ [n=jgracin@82.193.210.126] has quit [Remote closed the connection] 21:11:03 araujo [n=araujo@gentoo/developer/araujo] has joined #scheme 21:11:39 sepult [n=buggarag@xdsl-84-44-168-169.netcologne.de] has joined #scheme 21:14:22 -!- dlt____ [n=dlt@c91192dd.static.bhz.virtua.com.br] has quit [Read error: 110 (Connection timed out)] 21:16:06 alaricsp [n=alaricsp@88-202-213-29.rdns.as8401.net] has joined #scheme 21:17:56 -!- langmartin [n=user@75.148.111.133] has quit ["ERC Version 5.3 (IRC client for Emacs)"] 21:20:55 -!- masm [n=masm@a83-132-152-110.cpe.netcabo.pt] has quit [Read error: 113 (No route to host)] 21:21:10 jkff [i=jkff@43.201-client.airnet.ru] has joined #scheme 21:22:17 -!- slom_ [n=slom@pD9EB5FB7.dip.t-dialin.net] has quit [Read error: 110 (Connection timed out)] 21:31:26 -!- jkff [i=jkff@43.201-client.airnet.ru] has quit [] 21:31:36 regarding syntax-case: how is it that something can be beautiful and ugly at the same time 21:32:47 Are you talking about the SYNTAX-CASE system, or the Chez psyntax implementation? 21:33:15 Riastradh: psyntax. 21:33:37 Partly because it was designed axiomatically, rather than semantically. Too much math and algorithm, and not enough of a clear notion of what it's trying to do. As a consequence, for instance, the (LET-SYNTAX ((OLD-FOO FOO)) ...) trick probably doesn't work. 21:34:03 -!- kniu [n=kniu@pool-71-165-128-172.lsanca.dsl-w.verizon.net] has quit [Read error: 110 (Connection timed out)] 21:34:14 kniu [n=kniu@pool-71-165-128-172.lsanca.dsl-w.verizon.net] has joined #scheme 21:35:57 error_developer_ [n=errordev@78-86-1-110.zone2.bethere.co.uk] has joined #scheme 21:36:18 masm [n=masm@a83-132-152-110.cpe.netcabo.pt] has joined #scheme 21:45:45 madman91 [i=madman91@gateway/shell/blinkenshell.org/x-9c0e9dea4f1d89b7] has joined #scheme 21:46:06 hello everyone 21:46:10 i am reading through sicp and found this solution to an exercise online. I am running it in drscheme on linux, and it worked the first time, but now after something having happened i get an error. http://pastebin.com/m1a6f19d2 << program and error 21:46:56 -!- errordeveloper [n=errordev@78-86-1-110.zone2.bethere.co.uk] has quit [Connection timed out] 21:48:28 Riastradh: I thought it would be un 21:48:51 Riastradh: -PC to assume that one uses anything close to r5rs these days. 21:48:53 madman91, because it's got 'y' in define z 21:49:56 Riastradh: I'm going to try to implement my docbook->latex translator in a style similar to your SPARQL-results parser; I'm might have a better idea of whether there are any useful abstractions. 21:50:17 Cheshire: It worked before and that's the suggested answer on the sicp wiki-page. Is that wrong? 21:51:07 madman91, look what is y going ot be? 21:51:49 y will be either a or b, depending on a and b's values 21:52:09 puchacz [n=puchacz@87-194-5-99.bethere.co.uk] has joined #scheme 21:52:17 Wait a minute 21:53:13 No, I dont understand 21:55:05 Cheshire: What is wrong with it? 21:58:57 Riastradh: it seems so, though some of the algorithms are beautiful too. 21:59:08 but i sympathize. 21:59:31 Some of the algorithms are beautiful? 21:59:41 Riastradh: i think so, yes 21:59:42 What interesting algorithms are there in psyntax? 22:00:17 the wraps, the annotation support, the way it threads around multiple values in a linear-time fashion 22:00:44 anyway, i won't push that argument too far ;-) 22:00:51 so, another question, for the macro-elite: how to people introspect on macros without macros being first-class values? 22:00:56 `The way it threads around multiple values in a linear-time fashion'? 22:01:02 What does it mean to `introspect on macros'? 22:01:11 Riastradh: e.g.: is this a macro? 22:01:15 What problem would `introspecting on macros' solve? 22:01:17 madman91: works here; restart your REPL? 22:01:21 what kinds of syntaxen does it support? 22:01:38 Do you mean that you want to ask, in a macro transformer, whether a name is bound to a special operator? 22:02:03 Riastradh: i mean that, at a terminal to some live Scheme system, i want to ask if FOO is a macro 22:02:05 and if it is 22:02:10 what its documentation might be 22:02:15 and what kinds of syntaxen it expects 22:02:22 madman91: apart from the bug in it: (sum2largest 3 2 1) => 6 22:02:44 Asking for a total description of its valid inputs amounts to solving the halting problem, but in most Scheme systems you can ask to what meaning a name is bound. 22:02:49 For example, in Scheme48, interactively, you type 22:02:51 ,bound? 22:02:58 Riastradh: that works for macros too? 22:03:25 hkBst: It's not working. I restarted drscheme, would that be considered restarting my repl? 22:03:32 *wingo-tp* terribly ignorant in many regards, forward apologies... 22:03:41 In MIT Scheme, you can evaluate (ENVIRONMENT-REFERENCE-TYPE (NEAREST-REPL/ENVIRONMENT) ) to ask what kind of binding has, and there are other operations to query in more detail. Neither Scheme48 nor MIT Scheme remembers the syntax rules, however, of macros written with SYNTAX-RULES. 22:04:02 ok. 22:04:19 -!- kilimanjaro [n=kilimanj@70.116.95.163] has quit ["Leaving"] 22:04:33 i'm a bit miffed that i can't type "foo" and have some first-class representation of the foo transformer 22:04:35 hkBst: i also cycled run-stop a few times. But it's probably just some drscheme issue. Thanks for the help 22:04:39 Why, wingo-tp? 22:04:44 i know that that would conflict with identifier syntax, but still. 22:04:48 No. 22:04:52 The problem goes far, far deeper. 22:05:04 please, show me some of the abyss 22:05:07 If FOO is bound to a macro, then the form FOO has no independent meaning. 22:05:25 oh but i sure wish it did, a la fsubrs... 22:05:30 No, you don't. 22:05:30 madman91: I used mzscheme 4.1.4 22:05:38 but i think that i do! :) 22:06:12 -!- ejs [n=eugen@94-248-92-109.dynamic.peoplenet.ua] has quit [Read error: 60 (Operation timed out)] 22:06:35 ejs [n=eugen@nat.ironport.com] has joined #scheme 22:06:55 hkBst: isnt mzscheme part of drscheme? 22:07:00 madman91: yes 22:07:16 madman91: or rather both are part of plt-scheme 22:08:29 hkBst: :\ It's still not working 22:08:42 I misspoke earlier. Scheme48 *does* preserve the original source of some macros, but has no interactive way to get at it. 22:08:52 joelmccracken_ [n=joelmccr@pool-72-95-204-183.pitbpa.east.verizon.net] has joined #scheme 22:11:09 -!- error_developer_ [n=errordev@78-86-1-110.zone2.bethere.co.uk] has quit [Read error: 145 (Connection timed out)] 22:11:45 ok, similar question. `foo' is a macro. Is there a way to redefine foo such that it is a value? for example (define foo 3) after a (define-syntax foo ....) is an error. 22:12:28 rudybot: eval (define let 3) 22:12:30 mejja: your sandbox is ready 22:12:42 rudybot: eval (list let) 22:12:45 mejja: ; Value: (3) 22:12:59 mejja: i stand corrected. 22:13:34 although psyntax errors out (cannot define keyword at toplevel) 22:13:59 perhaps that is a psyntax failing, though. (to be fair, my version is very old.) 22:15:24 errordeveloper [n=errordev@78-86-1-110.zone2.bethere.co.uk] has joined #scheme 22:18:29 madman91: are you SURE it worked before, cause that seems really strange. 22:18:42 madman91: which version are you using? 22:18:59 hkBst: 4.1 22:19:18 hkBst: i ran some macro/debug things just to see what they were. Could that have affected it? 22:20:13 gah SQL parameters are killing meee 22:20:14 I closed/opened + removed drscheme settings + rewrote the program instead of reading it from .ss to make sure. 22:20:31 maybe I can just assume there won't be any parameters yet...no that won't work... 22:21:29 -!- annodomini [n=lambda@wikipedia/lambda] has quit [] 22:24:17 synx: killing in what sense? 22:24:18 madman91: dunno 22:27:38 metasyntax [n=taylor@pool-71-127-85-87.aubnin.fios.verizon.net] has joined #scheme 22:29:53 hkBst: just a quick sanity check http://pastebin.com/m94f6742 << that works for you? 22:31:22 Riastradh: http://web.mit.edu/mmt/Public/mit-scheme-json/ 22:31:43 split it off as a seperate endeavor, doesn't have unicode support yet, but I'll work on it more later 22:31:46 klutometis: Well for instance "SELECT a FROM foo WHERE b = $1 AND c = $2 AND d IN (SELECT d FROM foo WHERE e = $1)" 22:31:47 Where I _want_ it to say e = $3 22:31:50 But deferring that properly is... dunno how. 22:31:52 (thingy-a statement-b) where statement-b is already calculated as "SELECT d FROM foo WHERE e = $1" obviously doesn't work. 22:31:53 probably should just do a special language that can have parameter placeholders that on firing release a new number. 22:31:54 My knowledge of making new languages is limited to "(case (car s-expr) ...)" though :p 22:31:54 madman91: yes, that works too and has less bugs ;) 22:32:28 Riastradh: do you have any references for the idea that `foo' has no meaning, if `foo' is a macro? 22:32:46 Riastradh: where can I read about the XML-RPC implementation for MIT Scheme? 22:33:00 madman91, the code at is broken. Evaluation of the right-hand sides of a group of definitions must not refer to the value of any left-hand side. 22:33:00 syntax, don't use strings as SQL 22:33:13 madman91, you are better off using LET*. 22:33:22 don't do this: "SELECT a FROM foo WHERE b = $1 AND c = $2 AND d IN (SELECT d FROM foo WHERE e = $1)" 22:33:38 Internal definitions are generally best reserved for procedures. 22:33:55 mmt, src/xml/xml-rpc.scm, src/edwin/lisppaste.scm for a simple example of requests. 22:34:14 Cheshire: It has to be that eventually! What could I use? 22:34:14 mmt, if you're on a Project MAC machine, you can find these relative to /scheme/v7/. 22:34:32 Riastradh: "let" hasnt been covered in the book officially yet, so that's not technically an option, heh. But thanks, duly noted. 22:34:35 wingo-tp, FOO has no *independent* meaning. 22:34:46 ah, a misparse of mine. 22:34:50 madman91, well, if you're not supposed to use LET or LET*, try a cleverer approach. 22:35:08 Can you use MIN or MAX? 22:35:13 Maybe if I just made a module full of string generating functions, I could build up a list of those functions and ... somehow evaluate it... 22:35:18 Riastradh: nope 22:35:21 Riastradh: let's say at the toplevel. (of course, the toplevel does not have a standard meaning.) 22:35:26 -!- alaricsp [n=alaricsp@88-202-213-29.rdns.as8401.net] has quit [] 22:35:29 maybe promises to call the function? 22:35:40 jcowan [n=jcowan@72.14.228.89] has joined #scheme 22:35:41 Riastradh: just (define) (cond) (if) and ><=+ (and) (or) (not) 22:35:56 wingo-tp, by `it has no independent meaning', I mean that a reference to the name FOO, outside of the operator position of a form (FOO ...), has no meaning. 22:35:57 and -*/ of course 22:36:29 synx: is it the case that $1, $2 and $3 aren't simultaneously available? 22:36:32 -!- jlongster [n=user@75.148.111.133] has quit [Read error: 113 (No route to host)] 22:36:52 force the promises and it'll cough out both the parameters and the SQL string, but just use it in another promise and it'll nest the resulting SQL statements... while keeping the parameters in order... 22:36:59 can a promise be forced twice? hm... 22:37:07 A promise can be forced as many times as you wish. 22:37:17 synx: build up an SQL query as a tree or out of objects.. then define a present procedure which turns into into a string in an error free way 22:37:28 klutometis: It's the case that I have A and I want to use A as a subselect when generating B. Yet the numerical parameters must be linear from left parameter to right. 22:37:29 when you force a promise the value is cached 22:37:33 Each time, FORCE will return the first value returned by the expression in the DELAY form that constructed the promise. 22:37:36 Riastradh: that seems to be a punitively imposed lack-of-meaning -- there is a lambda under there... 22:37:42 No, there isn't, wingo-tp. 22:38:01 ah no? 22:38:03 Riastradh: I finally figured out how to compile away generic-function dispatching: the key is to generate from the class precedence lists of all classes an inverted index which specifies for each class of a method formal parameter which classes of actual parameters are relevant to it. 22:38:16 The procedure in the meta-language is unrelated to procedures in the object-language, if the object-language even has a notion of procedures. 22:38:48 Whenever you are thinking about macros, always keep in mind the distinction between meta-language and object-language. 22:38:56 Cheshire: How would you write such a present procedure? Just some form of apply each expression recursivel? 22:38:58 Riastradh: that is seems a bit silly, if you have access to all of scheme from within syntax-case 22:39:20 I don't know what object-language is, Riastradh 22:39:22 wingo-tp: True, but then why not simply run all your programs at macro-expansion time, and forget runtime altogether? 22:39:26 Even if in some strict sense of the word, the two `languages' are the same, values might not be transmissible between them. 22:39:26 i can understand that for syntax-rules 22:40:03 jcowan: i appreciate the point, but it probably boils down to some kind of turing equivalence 22:40:07 For example, I might compile my code on my workstation, and then transmit it to a memory-starved robot for execution, where there is no file system. What happens if a procedure in the meta-language is closed over a file descriptor? 22:40:13 Leave Turing out of this, please. 22:40:16 hehe 22:40:23 We are talking about pragmatic software construction, not theoretical computational models. 22:40:27 yes 22:41:15 and pragmatism is the answer for running at runtime what can be done at runtime 22:42:12 Even if robots aren't involved, suppose I'm hacking the Scheme48 virtual machine. 22:42:14 it just seems like the syntax system is a language ghetto, with a poor runtime, poor introspection, etc. of course it's the least bad thing we have 22:42:37 There are plenty of macros involved there, but it makes no sense to transmit a meta-procedure into Pre-Scheme, which doesn't even have first-class procedures at run-time. 22:42:54 ok 22:43:32 If you want to transmit anything other than syntax from the object-language to the meta-language, you need to justify it by describing a class of important problems that it solves. 22:43:34 ah, to wit: perhaps the macros are not available at runtime, is your point? 22:43:43 That is true too. 22:43:45 in this case the pre-scheme runtime. 22:44:00 -!- metasyntax [n=taylor@pool-71-127-85-87.aubnin.fios.verizon.net] has quit [""Nichts mehr.""] 22:44:05 it sounds like the bootstrapping problem to me. How do you introspect powerful introspection systems, when they haven't even been set up yet? 22:44:09 The syntax system is very deliberately separated from the run-time system. 22:44:42 Riastradh: but: practically impossible to implement without full scheme 22:44:43 This doesn't mean that the syntax of a program must be non-inspectable, however. A development environment is perfectly welcome to let the developer inspect the syntactic bindings of a program. 22:45:36 wingo-tp: Actually there is nothing about syntax-case that requires the presence of full Scheme; there may be environmental restrictions on the Scheme procedures available. 22:46:20 Contrariwise to Riastradh's example, macro expansion may not have any filesystem available even if the runtime does provide one. 22:46:40 (That would be important if we want to make sure that running the compiler does not side-effect anything other than object files.) 22:46:51 jcowan: that's an if, of course... 22:47:59 i think i'm missing the big narrative in some ways. there's something prescriptive about syntax that doesn't jive. 22:48:11 obviously i can't explain that eloquently ;) 22:48:39 annodomini [n=lambda@c-75-69-96-104.hsd1.nh.comcast.net] has joined #scheme 22:50:16 annodomini_ [n=lambda@c-75-69-96-104.hsd1.nh.comcast.net] has joined #scheme 22:50:28 -!- jewel [n=jewel@dsl-242-138-129.telkomadsl.co.za] has quit [Read error: 113 (No route to host)] 22:50:56 lesse... so (promise (a b param c (promise (f param g)) (param e))) could produce the right numbers when forced, but what if I then go (promise c d (promise (f param g)) param)? It will use the already calculated value of the inner promise, not substitute a param, and have the wrong numbering... 22:50:57 man I suck at lazy stuff. How am I gonna do this... 22:51:49 don't do it 22:52:07 just put your feet up.. 22:56:46 synx pasted "bleh" at http://paste.lisp.org/display/76722 22:57:03 See, that's where I'm confused right now. 22:57:45 I want to have thingy where thingy will add the parameters in when it's poked. 22:58:15 -!- Adamant [n=Adamant@unaffiliated/adamant] has quit [] 22:58:29 -!- mejja [n=user@c-4bb5e555.023-82-73746f38.cust.bredbandsbolaget.se] has quit [Remote closed the connection] 22:59:10 hmm, but isn't that just exactly what lambda is? 23:00:16 wtf is this (require scheme/promise) 23:00:37 r5rs DELAY 23:00:37 http://www.schemers.org/Documents/Standards/R5RS/HTML/r5rs-Z-H-7.html#%_idx_142 23:00:38 That looks like Guile brain damage. 23:00:39 -rudybot:#scheme- http://tinyurl.com/4ltqz7 23:00:39 r5rs FORCE 23:00:39 http://www.schemers.org/Documents/Standards/R5RS/HTML/r5rs-Z-H-9.html#%_idx_562 23:00:41 -rudybot:#scheme- http://tinyurl.com/5wr3sf 23:00:48 down with scheme/promise 23:01:09 if it is guile brain damage I suggest fixing it 23:01:20 since guile claims to be R5RS then this would be a useful addition 23:02:02 that is not guile. 23:02:55 i cannot attest to the brain damage. 23:03:15 mejja [n=user@c-4bb5e555.023-82-73746f38.cust.bredbandsbolaget.se] has joined #scheme 23:06:18 -!- annodomini [n=lambda@wikipedia/lambda] has quit [Read error: 110 (Connection timed out)] 23:10:53 Yeah okay I think it was lambda I wanted. Go figure. 23:15:16 -!- slom__ [n=slom@pD9EB4DAB.dip.t-dialin.net] has quit [Remote closed the connection] 23:16:46 -!- grnman [i=grnman@shell.thehostbusters.com] has quit ["leaving"] 23:18:42 JohnnyL [i=JohnnyL@ool-182f0b98.dyn.optonline.net] has joined #scheme 23:22:15 Adamant [n=Adamant@c-76-29-188-22.hsd1.ga.comcast.net] has joined #scheme 23:23:10 -!- puchacz [n=puchacz@87-194-5-99.bethere.co.uk] has quit [Remote closed the connection] 23:27:05 gweiqi [n=greg@69.120.126.163] has joined #scheme 23:32:24 Alright, I have a little question for y'all... 23:32:26 arcfide pasted "Making ASSERTs disappear" at http://paste.lisp.org/display/76726 23:32:59 This macro works for the most part, but if I disable the ASSERTion checks, it still has to check a parameter at run-time, which I do not want. 23:33:05 -!- hiyuh [n=hiyuh@KD125054017176.ppp-bb.dion.ne.jp] has quit ["|_ e /\ \/ i |/| G"] 23:33:34 seems to me what you want is to replace this assert macro with a different assert macro that doesn't test anything 23:33:48 I'm having trouble getting a handle on the different expansion processes. I want ASSERT macros to disappear from code if the parameter is false. 23:34:06 jcowan: Basically, but this is easy to do with SYNTAX-CASE. 23:34:08 Then assert-enabled must be a macro too 23:34:35 jcowan: Must it? I can make it available at expand time using META, but then it isn't available for exporting properly. 23:35:17 You are expecting the dynamic state, a purely run-time notion, to be able to dictate how code is generated at compile time. 23:35:31 I want the macro to use it, and also to export the paramter so that I can use it like I do OPTIMIZE-LEVEL and other compiler flags. 23:36:06 AtnNn [n=welcome@modemcable087.62-56-74.mc.videotron.ca] has joined #scheme 23:36:32 -!- JohnnyL [i=JohnnyL@ool-182f0b98.dyn.optonline.net] has left #scheme 23:36:55 arcfide annotated #76726 "Usage Case" at http://paste.lisp.org/display/76726#1 23:36:58 Riastradh: using xmlRPC is much better then what I was doing before, I'm already done with a rough python end of it 23:36:59 This is as much as to say: When I set the value of assert-enabled to #f, some code implodes and no longer exists. 23:37:21 Riastradh: it does nice things, like class introspection to publish a classes methods. 23:37:29 jcowan: The paste now has an usage case. 23:37:29 Riastradh: which I guess is obvious, but nice nonetheless 23:37:47 I can use OPTIMIZE-LEVEL in that way, and I want to use ASSERT-ENABLED? in that way. 23:38:37 But what happens when you bind the assert-enabled? parameter with PARAMETERIZE ? 23:39:03 -!- athos [n=philipp@92.250.250.68] has quit [Remote closed the connection] 23:40:47 jcowan: It would only have an effect on the run-time code, naturally. 23:41:06 -!- ejs [n=eugen@nat.ironport.com] has quit [Connection timed out] 23:41:15 *jcowan* nods. 23:41:18 So, something like (parameterize ([assert-enabled? #f]) (assert ...) ...) would not result in the ASSERT macro there disappearing. 23:41:45 Which shows that a parameter is not really the cheese in this case. 23:41:51 But something like (parameterize ([assert-enabled? #f]) (compile-file ...)) would be useful. 23:42:00 *jcowan* nods. 23:42:23 Which is what I want, to go along with all the other compiler related parameters in Chez. 23:42:41 I see. 23:42:59 That is, I want it to behave in the same way that the rest of the compiler parameters in Chez do, so that they can be used in the same way. 23:43:21 Otherwise you'd have to do something special for the ASSERT macro. 23:43:35 I am sure there must be a way to do it. 23:45:43 -!- Jarvellis [n=jarv@dsl-217-155-101-22.zen.co.uk] has quit [Remote closed the connection] 23:47:26 -!- annodomini_ is now known as annodomini 23:48:01 -!- ayrnieu [n=julian@c-76-30-82-6.hsd1.tx.comcast.net] has quit [Remote closed the connection] 23:49:59 synx, the subexpression of a LAZY expression is supposed to yield another promise. 23:51:00 arcfide, EVAL-WHEN is pure evil. 23:51:07 You want syntactic parameters. 23:51:13 Riastradh: Yes, for the most part, indeed. 23:51:20 No, not for the most part. Purely so. 23:51:23 -!- wingo-tp [n=wingo@229.Red-83-34-241.dynamicIP.rima-tde.net] has quit [Read error: 113 (No route to host)] 23:52:19 -!- Cheshire [n=yoo@amcant.demon.co.uk] has quit ["Quitting!"] 23:52:34 Riastradh: Okay, what's the better way then, to do certain things only during the compilation of the file, but not when I am just loading it from the REPL or the like? 23:53:10 -!- s76__ [n=todos@131-88-124-91.pool.ukrtel.net] has quit [Read error: 104 (Connection reset by peer)] 23:53:51 Riastradh: You mean, syntax that behaves in ways mostly idiscernible from parameters? 23:54:10 I mean syntactic parameters: parameters that exist in the syntax but not at run-time. 23:54:25 These are `hygienically dynamically' scoped entities. 23:55:00 -!- Nshag [i=user@Mix-Orleans-106-4-201.w193-248.abo.wanadoo.fr] has quit ["Quitte"] 23:55:11 They first appeared in PLT Scheme, I think. Whether Chez supports anything similar, I don't know. 23:55:14 How would one write these? I can write a macro that mimics a parameter in most cases, but I am a bit concerned that the semantics might not be right. 23:55:50 If Chez does not, then you can create a parameter in a module that your assertions module uses at syntax-time. 23:56:13 *arcfide* nods. 23:57:44 metasyntax [n=taylor@pool-71-127-85-87.aubnin.fios.verizon.net] has joined #scheme