00:00:03 -!- copumpkin [n=pumpkin@pat9.border1-cfw.dartmouth.edu] has quit ["Leaving..."] 00:02:43 saccade_ [n=saccade@65-78-24-47.c3-0.smr-ubr1.sbo-smr.ma.cable.rcn.com] has joined #scheme 00:04:17 eli: i use it occasionally; is it worth filing a bug? 00:05:07 photon [n=photon@unaffiliated/photon] has joined #scheme 00:05:28 -!- raikov` [n=igr@60.32.127.43] has quit [Read error: 110 (Connection timed out)] 00:20:59 klutometis: No need, it's already fixed. 00:21:50 klutometis: Matthew's reply was that he didn't notice that his favorite number -- #e#x+e#s+e@-e#l-e -- was parsed incorrectly... 00:22:08 (And it's just in time to get included with 4.2) 00:23:01 rudybot: eval #e#x+e#s+e@-e#l-e 00:23:01 klutometis: ; Value: 1.6140901064495858e+19-50176.0i 00:23:44 so, an exact hex in polar notation with positive e short plus e by -e long minus e? 00:28:20 jn [n=johnnowa@207-38-171-48.c3-0.wsd-ubr1.qens-wsd.ny.cable.rcn.com] has joined #scheme 00:30:49 an exact hex in polar notation with positive e short with exponent positive e by negative e long with exponent negative e 00:31:05 -!- jn [n=johnnowa@207-38-171-48.c3-0.wsd-ubr1.qens-wsd.ny.cable.rcn.com] has quit [Client Quit] 00:33:20 klutometis: IMO, it's a good demonstration of why R5RS is bad. 00:35:53 The whole of R5RS is bad because of a bug in the numeric literal specification? 00:39:02 eli: i'm not sure that's r5rs compliant, though; r5rs only specifies + in exponents, and then only for decimals (not hex) 00:39:21 exponents in hex, with exponent literals in e is some sort of plt extension 00:40:35 foof: The bug has nothing to do with it. R5RS is not shining here in its odd selection of language features: a very small language where features are added only when necessary, and in the middle of all this an obnoxiously complicated syntax for number literals. 00:40:48 it may be a demonstration of why embrace and extend is bad ;) 00:41:16 klutometis: I won't even open the file to check it -- it's that much that I don't care about this... 00:41:22 heh 00:41:54 an exact hex in polar notation with positive e# short with exponent positive e by negative e# long with exponent negative e 00:42:02 e# being equal to e0 in plt 00:42:11 yes, 00:42:25 I agree that this isn't the best part of r5rs 00:42:27 p1dzkl: oh, that's interesting; another extension, though 00:42:36 r5rs specifies + #* 00:43:18 e# -> e0 isn't r5rs 00:43:27 see r5rs 7.1.1 00:44:03 Well, complex numbers are optional. But I guess the polar coordinate syntax and trailing #'s could be done without. 00:44:52 foof: when the reader is r5rs compliant, though, that difficulty disappears 00:45:06 r5rs doesn't provide for e/pi or hex exponents 00:45:26 e is hex for 14 00:45:44 klutometis, p1dzkl: Matthew clarified that: "MzScheme allows hex in more places than R5RS condones". 00:45:49 Unsurprisingly, I still don't care. 00:46:21 p1dzkl: ah, right 00:46:29 Even with just the polar number notation r5rs is weird in having that feature in a language that shouldn't "pile features". 00:46:58 eli: it shows a kind of mathematical sensitivity, doesn't it? 00:47:07 -!- dysinger_ [n=tim@166.129.93.222] has quit [Read error: 110 (Connection timed out)] 00:47:20 also, octothorpes are cute; i mean, the notion of placeholder digits? 00:47:41 klutometis: Well, "a kind of" -- one that discriminates three tons of other stuff that wasn't included. 00:47:46 -!- subversus [i=elliot@loveturtle.net] has quit [Remote closed the connection] 00:48:21 i just spent a few weeks (on and off) writing an r5rs number parser 00:48:29 i've grown fond of r5rs 7.1.1 in spite of myself 00:48:31 Besides, the whole point of the language was supposed to be a clean computational core -- I don't know what these kind of numbers have to do with that. 00:48:50 eli: how do you feel about the exact/inexact orthogonality? 00:49:03 that there's such a thing as an "exact real" that's not necessarily rational? 00:49:15 It kind of justifies the occasional semi-newbie question of why not add syntax for additions etc -- like 4+3/7 00:49:20 (that exact/inexact is orthogonal to the number stack, i mean) 00:49:36 It's one of Scheme's major PITAs, IMO and IME. 00:50:13 It made things tricky for Typed Scheme, and also for Swindle -- where there's an odd construct to reflect the two independent features. 00:50:53 for me, it smacks of 20th century decadence 00:50:54 So personally, I wouldn't mind the usual thing that practically any language uses -- with 4.3 being inexact, and 4 being exact. 00:51:15 s/20th century/1980s/, I think. 00:51:21 but that is the case, at least representationally speaking 00:51:34 eli: The argument can be made that it's essential to get numbers *right* at the core. 00:51:36 If the algorithm you want to compute lends itself most naturally to polar coordinates, you lose the least precision if the implementation can store complex numbers internally as polar coordinates, which would want polar literals. 00:51:38 -!- hkBst [n=hkBst@gentoo/developer/hkbst] has quit [Read error: 104 (Connection reset by peer)] 00:52:40 The compromise being that all this is optional, and the parsing burden fairly minimal on implementations that just always convert polar to rectangular. 00:52:52 foof: You if you find polar numbers natural, write a library to do so. 00:53:01 foof: You if you find complex numbers natural, write a library to do so. 00:53:08 and so on. 00:54:10 eli: From first hand experience, second-class numeric libraries are a huge pain to work with, and insanely slow without core compiler and runtime support. 00:54:27 Try chicken with the numbers egg sometime. 00:55:52 Bleh, my mac wants me to reboot and lose all my state again... 00:56:03 *foof* seriously needs to put linux on this box 00:56:12 -!- foof [n=user@dn157-046.naist.jp] has quit ["bbl"] 00:57:31 rudybot: later tell foof That argument contradicts the main point of every self-bootstrapping implementation. 00:57:31 minion: memo for foof: eli told me to tell you: That argument contradicts the main point of every self-bootstrapping implementation. 00:57:32 Remembered. I'll tell foof when he/she/it next speaks. 01:00:45 -!- ski [n=slj@c-e113e055.1149-1-64736c10.cust.bredbandsbolaget.se] has quit [Read error: 104 (Connection reset by peer)] 01:03:32 raikov [n=igr@203.181.243.11] has joined #scheme 01:04:22 ski [n=slj@c-e113e055.1149-1-64736c10.cust.bredbandsbolaget.se] has joined #scheme 01:04:24 copumpkin [n=pumpkin@pat9.border1-cfw.dartmouth.edu] has joined #scheme 01:05:08 -!- raikov [n=igr@203.181.243.11] has quit [Client Quit] 01:06:26 underspecified [n=eric-n@leopard175.naist.jp] has joined #scheme 01:16:17 raikov` [n=igr@60.32.127.43] has joined #scheme 01:22:20 raikov`` [n=igr@203.181.243.11] has joined #scheme 01:32:52 xwl_ [n=user@147.243.236.60] has joined #scheme 01:35:52 mmc [n=mima@cs167133.pp.htv.fi] has joined #scheme 01:36:46 -!- raikov` [n=igr@60.32.127.43] has quit [Read error: 110 (Connection timed out)] 01:40:34 -!- hadronzoo [n=hadronzo@ppp-70-251-98-238.dsl.rcsntx.swbell.net] has quit ["Leaving."] 01:45:51 -!- raikov`` [n=igr@203.181.243.11] has quit [Read error: 110 (Connection timed out)] 02:02:43 annodomini [n=lambda@c-75-69-96-104.hsd1.nh.comcast.net] has joined #scheme 02:02:52 -!- blackened` [n=blackene@ip-89-102-208-138.karneval.cz] has quit [] 02:03:23 -!- xwl_ [n=user@147.243.236.60] has quit [Remote closed the connection] 02:09:22 raikov [i=3c207f2b@gateway/web/ajax/mibbit.com/x-0b252e53c97a6200] has joined #scheme 02:51:13 -!- luz [n=davids@189.122.121.232] has quit [Read error: 104 (Connection reset by peer)] 02:52:02 tjafk1 [n=timj@e176192135.adsl.alicedsl.de] has joined #scheme 02:52:24 Dark-Star|away [n=michael@p57B56B34.dip.t-dialin.net] has joined #scheme 03:04:23 -!- MichaelRaskin [n=MichaelR@195.91.224.225] has left #scheme 03:04:59 -!- Dark-Star [n=michael@p57B55EE6.dip.t-dialin.net] has quit [Read error: 110 (Connection timed out)] 03:08:05 -!- tjafk2 [n=timj@e176199067.adsl.alicedsl.de] has quit [Read error: 110 (Connection timed out)] 03:09:27 -!- aLeSD [n=alex@193.153.120.180] has quit [Remote closed the connection] 03:18:18 lowlycoder [n=x@unaffiliated/lowlycoder] has joined #scheme 03:19:09 -!- lowlycoder [n=x@unaffiliated/lowlycoder] has quit [Client Quit] 03:23:31 -!- copumpkin [n=pumpkin@pat9.border1-cfw.dartmouth.edu] has quit ["Leaving..."] 03:23:56 lowlycoder [n=x@unaffiliated/lowlycoder] has joined #scheme 03:24:22 CSdread____ [n=danielf@209-188-116-183.taosnet.com] has joined #scheme 03:39:07 -!- forcer [n=forcer@e179197159.adsl.alicedsl.de] has quit [Read error: 60 (Operation timed out)] 03:41:06 -!- CSdread__ [n=danielf@209-188-116-183.taosnet.com] has quit [Read error: 110 (Connection timed out)] 03:41:23 subversus [i=elliot@loveturtle.net] has joined #scheme 03:42:18 -!- photon [n=photon@unaffiliated/photon] has quit [Connection timed out] 03:42:57 -!- CSdread____ is now known as CSdread_ 03:43:07 -!- CSdread_ is now known as CSdread__ 03:45:00 -!- MasochisticLibra [n=Masochis@c-24-2-191-235.hsd1.ct.comcast.net] has quit [Read error: 110 (Connection timed out)] 03:50:01 foof [n=user@dn157-046.naist.jp] has joined #scheme 04:00:54 -!- offby1 [n=user@pdpc/supporter/monthlybyte/offby1] has quit ["ERC Version 5.3 (IRC client for Emacs)"] 04:04:38 . 04:04:38 foof, memo from rudybot: eli told me to tell you: That argument contradicts the main point of every self-bootstrapping implementation. 04:05:34 No it doesn't, because after you bootstrap the new language _is_ the core, with full compiler and runtime support. 04:06:38 -!- lowlycoder [n=x@unaffiliated/lowlycoder] has quit ["Lost terminal"] 04:06:48 The problem is with second-class numbers. 04:08:27 offby1 [n=user@q-static-138-125.avvanta.com] has joined #scheme 04:08:42 R5RS specifically allows implementations like Chicken, with very minimal numeric support in the core and the full tower as an add-on, and that has a nice aesthetic appeal to it until you try to use it. 04:10:38 heh 04:10:51 I seem to recall you needed to use an add-on package if you wanted bignums 04:11:21 Yes, (use numbers) gives you bignums, rationals and complex numbers. 04:13:12 foof: It contradicts the point that people who take bootstrapping as a holy grail make: that the scheme compiler should be good enough that implementing rationals or complexes etc yourself should not be slow. 04:13:13 Apart from the speed issues, you have problems when using the extension in some but not all modules. 04:13:59 eli: Oh, we just say it *should* be good enough because we're pissed at how bad the existing compilers are and are hoping the implementors will improve them :) 04:14:18 foof: You should talk to Will sometimes. 04:14:27 (module foo (add1) (import scheme) (define (add1 x) (+ x 1))) 04:14:41 (module bar () (import numbers foo) (add1 (expt 2 100))) 04:14:45 Error: (+) bad argument type: 1267650600228229401496703205376 04:15:47 Because bar knows about and creates a bignum, but foo is just using the core numerics. 04:16:02 In any case, none of this takes away from my point re r5rs: there's probably a good 2kg of paper that you can get by printing features that r5rs doesn't have, yet it *does* have polar numbers. 04:16:30 lobbyists! 04:16:47 Because of a particular affinity of the authors for precise mathematics. They're really are calculations where polar numbers are the most natural representation. 04:17:04 But then, why include polars but not quaternions? 04:17:11 eli: because of the mathematical/scientific prejudice of its authors; q.v. SICM 04:17:41 No, none of that will convince me -- precisely because of what foof said above. 04:17:42 ... would actually be the wrong question. It's why include complex numbers but not quaternions? 04:18:27 Once you have complex numbers, the 3 extra procedures and added lexical syntax for polars is tiny. 04:18:38 incubot: why did Boddidharma leave India for China? 04:18:39 But not even quaternions -- what about degrees/hours/minutes? Intervals? Infinitely exact numbers? 04:18:41 Sardar: The Iron Man of India 04:19:16 Because there aren't scientific calculations that lend themselves more naturally to degrees/hours/minutes. 04:19:24 foof: r5rs allows for quaternions, though: r5rs 6.2.4: "some implementations may extend the number system to support some kind of non-complex numbers", e.g. quaternions 04:19:32 Intervals are arguably partially allowed for with trailing #s. 04:19:35 That's actually a very popular feature of scientific calculators. 04:20:01 No, intervals are not allowed with #s -- an interval should be precise. 04:20:36 What about probabilities? Those are awfully important too. 04:21:23 Probabilities can be represented as real numbers in [0,1]. 04:21:56 See also Siskind+Perlmutter's new toy -- there's a good bunch of these things that they use. 04:22:22 Anyway, obviously you have to draw the line somewhere. I'm not saying they drew the line at a good place, but I can see the desire to make an allowance for polar coordinate syntax once they had specified complex numbers. 04:22:29 By probabilities, I mean a number and it's likelyhood -- or any value and its likelyhood. 04:22:37 (cons n p) 04:22:45 :) 04:22:59 No, that suffers from exactly the problem you talked about above with your `add1'. 04:23:14 (Which is a large point of what S+P are saying.) 04:23:22 Oh, do you mean that the probabilities form an algrebra? 04:23:47 What they do is inject the language in a way that any value can have a probability. 04:24:58 That's already a global language change, not related to the argument in question. 04:24:58 In any case, any attempt at holly-fying r5rs as a kind of a perfect language standard requires some serious looking-the-other-way-ing. 04:25:32 Whoever said it was perfect? It's got lots of flaws. 04:25:32 If you had that kind of a global change, you wouldn't need complex numbers as builtins. 04:25:44 Many, many, *many* people. 04:26:44 eli: No, for their purposes S+P clearly don't need any core numerics at all. 04:26:45 -!- synx [i=synx@gateway/gpg-tor/key-0xA71B0C6A] has quit [Remote closed the connection] 04:27:18 Of course they do, they build the rest of the extensions on them. 04:27:27 Now R4RS on the other hand... 04:27:28 ;) 04:27:30 synx [i=synx@gateway/gpg-tor/key-0xA71B0C6A] has joined #scheme 04:27:41 .oO("looking-the-other-way-ing"?) 04:27:45 you sure you're not German? 04:29:07 I'm bulgarian, iraqian, polish, turkish, youguslav, and greek. No germans. 04:29:21 you contain multitudes 04:29:32 eli is legion 04:29:33 yugoslav 04:32:05 Yugoslav, with apologies to the respective roots. 04:33:33 jonrafkind [n=jon@c-98-202-86-149.hsd1.ut.comcast.net] has joined #scheme 04:40:49 outchanter [n=Richard@c-24-5-192-80.hsd1.ca.comcast.net] has joined #scheme 04:42:45 hi, can I ask a question about default parameter values? 04:44:00 no! 04:44:01 how dare you 04:44:11 *offby1* whistles innocently 04:44:21 just checking I'm in the right channel ;) 04:44:46 I suspect every Scheme does default parameter values differently 04:45:01 ok, well PLT specifically 04:45:12 but I'm not sure which language I should use. I selected "pretty big" 04:45:23 and it doesn't seem to work with default params 04:45:30 rudybot: eval ((lambda (a [b 123]) (format "a is ~a; b is ~a" a b)) 99 98) 04:45:31 *offby1: ; Value: "a is 99; b is 98" 04:45:38 dunno about pretty bug 04:45:41 rudybot: eval ((lambda (a [b 123]) (format "a is ~a; b is ~a" a b)) 99 ) 04:45:42 *offby1: ; Value: "a is 99; b is 123" 04:45:52 that's how they work in the "module" language, anyway 04:45:58 I'd expect "pretty big" to work the same 04:46:07 well my code is: (define ior (lambda (anything m (order #t)) 04:46:07 (if order 04:46:07 (list 'or anything m) 04:46:07 (list 'or m anything)))) 04:46:15 and the error given is: lambda: not an identifier in: (order #t) 04:46:19 looks right to me 04:46:34 rudybot: eval (define ior (lambda (anything m (order #t)) (if order (list 'or anything m) (list 'or m anything)))) 04:46:44 rudybot: eval (ior 1 2 3) 04:46:44 *offby1: ; Value: (or 1 2) 04:46:46 outchanter: Use the module languge. 04:46:47 rudybot: eval (ior 1 2 ) 04:46:47 *offby1: ; Value: (or 1 2) 04:47:08 rudybot: eval (ior 1 2 #f) 04:47:09 *offby1: ; Value: (or 2 1) 04:47:11 outchanter: The `pretty big' language is a legacy thing, it doesn't have the default argument syntax. 04:47:13 *offby1* nods gravely 04:47:20 ok, thanks 04:47:50 do I just put everything inside (module ...)? 04:48:57 outchanter: No, slap a `#lang scheme' line at the top and you're fine. 04:49:15 (That's the default for new files in the module language.) 04:49:26 great, thanks 04:49:50 is "outchanter" the opposite of "enchanter"? 04:50:28 indeed. That screen name is also a legacy thing 04:50:31 heh 04:50:41 mine dates to the mid-nineties, if I recall correctly. 04:55:23 ikaros [n=ikaros@g227025075.adsl.alicedsl.de] has joined #scheme 05:05:05 araujo [n=araujo@gentoo/developer/araujo] has joined #scheme 05:07:20 -!- hosh [n=hosh@c-24-30-97-247.hsd1.ca.comcast.net] has quit [Read error: 110 (Connection timed out)] 05:16:17 -!- ASau [n=user@193.138.70.52] has quit ["off"] 05:16:19 nicholasw [n=nw@pan-ckc-109-237.ResHall.Berkeley.EDU] has joined #scheme 05:16:54 -!- nicholasw [n=nw@pan-ckc-109-237.ResHall.Berkeley.EDU] has left #scheme 05:19:05 -!- ASau` [n=user@193.138.70.52] has quit ["off"] 05:19:27 -!- cracki [n=cracki@sglty.kawo2.RWTH-Aachen.DE] has quit [Read error: 60 (Operation timed out)] 05:19:53 offby1: i always suspected there was a coffee-and-grunge motif hiding there 05:21:27 -!- rtra [n=user@unaffiliated/rtra] has quit ["ERC Version 5.2 (IRC client for Emacs)"] 05:22:54 smells like scheme spirit 05:25:13 foof: i'm sorry, but that's hilarious 05:27:57 samlt [n=sam@17.218.193-77.rev.gaoland.net] has joined #scheme 05:28:33 -!- mmc [n=mima@cs167133.pp.htv.fi] has quit [Read error: 110 (Connection timed out)] 05:28:54 ejs [n=eugen@10-224-124-91.pool.ukrtel.net] has joined #scheme 05:49:01 MichaelRaskin [n=MichaelR@213.171.48.239] has joined #scheme 05:52:42 athos [n=philipp@92.250.250.68] has joined #scheme 05:56:51 -!- MichaelRaskin [n=MichaelR@213.171.48.239] has left #scheme 05:57:25 MichaelRaskin [n=MichaelR@213.171.48.239] has joined #scheme 05:59:16 -!- MichaelRaskin [n=MichaelR@213.171.48.239] has left #scheme 05:59:59 npe [n=npe@91.179.94.218] has joined #scheme 06:06:39 -!- meanburrito920_ [n=John@76-217-6-100.lightspeed.irvnca.sbcglobal.net] has quit [Remote closed the connection] 06:11:47 MichaelRaskin [n=MichaelR@213.171.48.239] has joined #scheme 06:12:10 -!- ikaros [n=ikaros@g227025075.adsl.alicedsl.de] has quit ["Leave the magic to Houdini"] 06:13:44 mmc [n=mima@esprx02x.nokia.com] has joined #scheme 06:16:35 underspecified_ [n=eric@isa7-dhcp-116-228.naist.jp] has joined #scheme 06:16:41 -!- MichaelRaskin [n=MichaelR@213.171.48.239] has left #scheme 06:17:18 MichaelRaskin [n=MichaelR@213.171.48.239] has joined #scheme 06:18:50 underspecified__ [n=eric@isa7-dhcp-116-228.naist.jp] has joined #scheme 06:19:08 -!- underspecified_ [n=eric@isa7-dhcp-116-228.naist.jp] has quit [Success] 06:21:20 ASau [n=user@host189-230-msk.microtest.ru] has joined #scheme 06:24:07 -!- npe [n=npe@91.179.94.218] has quit [] 06:33:35 mike [n=m@dslb-088-067-023-220.pools.arcor-ip.net] has joined #scheme 06:34:40 -!- mike [n=m@dslb-088-067-023-220.pools.arcor-ip.net] has quit [Client Quit] 06:35:12 mike [n=m@dslb-088-067-023-220.pools.arcor-ip.net] has joined #scheme 06:36:40 -!- ejs [n=eugen@10-224-124-91.pool.ukrtel.net] has quit ["This computer has gone to sleep"] 06:41:25 -!- annodomini [n=lambda@wikipedia/lambda] has quit [] 06:49:58 -!- saccade_ [n=saccade@65-78-24-47.c3-0.smr-ubr1.sbo-smr.ma.cable.rcn.com] has quit [Read error: 104 (Connection reset by peer)] 06:50:17 saccade_ [n=saccade@65-78-24-47.c3-0.smr-ubr1.sbo-smr.ma.cable.rcn.com] has joined #scheme 06:50:50 -!- dmoerner [n=dmr@ppp-71-139-37-78.dsl.snfc21.pacbell.net] has quit ["Leaving"] 06:55:09 HG` [n=wells@xdslej078.osnanet.de] has joined #scheme 06:55:24 -!- HG` [n=wells@xdslej078.osnanet.de] has quit [Remote closed the connection] 06:55:39 HG` [n=wells@xdslej078.osnanet.de] has joined #scheme 07:02:43 -!- MichaelRaskin [n=MichaelR@213.171.48.239] has left #scheme 07:03:02 MichaelRaskin [n=MichaelR@213.171.48.239] has joined #scheme 07:03:55 ejs [n=eugen@10-224-124-91.pool.ukrtel.net] has joined #scheme 07:05:55 npe [n=npe@195.207.5.2] has joined #scheme 07:06:33 -!- npe [n=npe@195.207.5.2] has quit [Remote closed the connection] 07:06:46 npe [n=npe@195.207.5.2] has joined #scheme 07:08:59 hotblack23 [n=jh@p5B0574B2.dip.t-dialin.net] has joined #scheme 07:13:04 elias` [n=me@resnet-pat-254.ucs.ed.ac.uk] has joined #scheme 07:13:16 -!- ejs [n=eugen@10-224-124-91.pool.ukrtel.net] has quit ["This computer has gone to sleep"] 07:17:07 z` [n=tltstc@cpe-76-90-92-154.socal.res.rr.com] has joined #scheme 07:18:32 -!- underspecified__ [n=eric@isa7-dhcp-116-228.naist.jp] has quit [] 07:31:12 Ragnaroek [i=54a66108@gateway/web/ajax/mibbit.com/x-97d59b65afe9f412] has joined #scheme 07:31:31 -!- tltstc [n=tltstc@cpe-76-90-92-154.socal.res.rr.com] has quit [No route to host] 07:41:16 -!- MichaelRaskin [n=MichaelR@213.171.48.239] has quit [Read error: 110 (Connection timed out)] 07:46:13 dzhus [n=sphinx@93-80-209-196.broadband.corbina.ru] has joined #scheme 07:46:51 ejs [n=eugen@77.222.151.102] has joined #scheme 07:47:35 MichaelRaskin [n=MichaelR@213.171.48.239] has joined #scheme 07:48:11 -!- wingo [n=wingo@150.Red-81-38-185.dynamicIP.rima-tde.net] has quit [Read error: 113 (No route to host)] 07:57:01 -!- ejs [n=eugen@77.222.151.102] has quit [Read error: 60 (Operation timed out)] 07:57:23 ejs [n=eugen@nat.ironport.com] has joined #scheme 08:06:14 hkBst [n=hkBst@gentoo/developer/hkbst] has joined #scheme 08:07:34 sphex [n=nobody@modemcable185.138-56-74.mc.videotron.ca] has joined #scheme 08:10:53 underspecified_ [n=eric@isa7-dhcp-116-228.naist.jp] has joined #scheme 08:18:47 jewel_ [n=jewel@dsl-247-202-125.telkomadsl.co.za] has joined #scheme 08:23:22 -!- samlt [n=sam@17.218.193-77.rev.gaoland.net] has quit [Read error: 60 (Operation timed out)] 08:23:35 -!- outchanter [n=Richard@c-24-5-192-80.hsd1.ca.comcast.net] has quit ["Leaving."] 08:27:16 -!- Ragnaroek [i=54a66108@gateway/web/ajax/mibbit.com/x-97d59b65afe9f412] has quit [Remote closed the connection] 08:33:54 Edico [n=Edico@unaffiliated/edico] has joined #scheme 08:40:53 Ragnaroek [i=54a66108@gateway/web/ajax/mibbit.com/x-381727d00987b872] has joined #scheme 08:41:34 Nshag [i=user@Mix-Orleans-106-1-39.w193-248.abo.wanadoo.fr] has joined #scheme 08:48:29 samlt [n=sam@17.218.193-77.rev.gaoland.net] has joined #scheme 08:50:35 cracki [n=cracki@sglty.kawo2.RWTH-Aachen.DE] has joined #scheme 08:51:12 Axioplase [n=Axioplas@fortigate.kb.ecei.tohoku.ac.jp] has joined #scheme 08:51:12 -!- Axioplase [n=Axioplas@fortigate.kb.ecei.tohoku.ac.jp] has quit [Client Quit] 08:52:19 Axioplase [n=Axioplas@fortigate.kb.ecei.tohoku.ac.jp] has joined #scheme 08:54:44 -!- Arelius_ is now known as Arelius 08:55:11 -!- Axioplase [n=Axioplas@fortigate.kb.ecei.tohoku.ac.jp] has quit [Client Quit] 09:02:58 Axioplase [n=Axioplas@fortigate.kb.ecei.tohoku.ac.jp] has joined #scheme 09:04:49 -!- projections [n=projecti@88.235.101.2] has left #scheme 09:13:11 -!- bsund [n=bsund@213.180.77.55] has quit [Read error: 60 (Operation timed out)] 09:14:52 -!- underspecified_ [n=eric@isa7-dhcp-116-228.naist.jp] has quit [] 09:15:38 -!- cracki [n=cracki@sglty.kawo2.RWTH-Aachen.DE] has quit ["The funniest things in my life are truth and absurdity."] 09:16:33 puchacz [n=puchacz@87-194-5-99.bethere.co.uk] has joined #scheme 09:17:29 bsund [n=bsund@213.180.77.55] has joined #scheme 09:18:58 alaricsp [n=alaricsp@88-202-197-217.rdns.as8401.net] has joined #scheme 09:22:57 -!- Axioplase is now known as Axioplase_ 09:27:03 -!- CSdread__ [n=danielf@209-188-116-183.taosnet.com] has quit [] 09:27:05 -!- 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"] 09:27:34 -!- athos [n=philipp@92.250.250.68] has quit ["leaving"] 09:30:00 -!- kilimanjaro [n=kilimanj@70.116.95.163] has quit [Remote closed the connection] 09:32:41 -!- puchacz [n=puchacz@87-194-5-99.bethere.co.uk] has quit ["Konversation terminated!"] 09:41:57 -!- Axioplase_ [n=Axioplas@fortigate.kb.ecei.tohoku.ac.jp] has quit ["Lost terminal"] 09:46:09 -!- Edico [n=Edico@unaffiliated/edico] has quit ["Leaving"] 09:47:08 -!- rstandy [n=rastandy@net-93-144-64-40.t2.dsl.vodafone.it] has quit [Read error: 104 (Connection reset by peer)] 09:48:52 rstandy [n=rastandy@net-93-144-64-40.t2.dsl.vodafone.it] has joined #scheme 10:04:35 Tankado [n=Woodruff@bzq-84-110-171-172.red.bezeqint.net] has joined #scheme 10:05:30 Hello i have found an expression which when is being operated is printing the same expression 10:05:42 a quine? 10:05:45 yes 10:06:15 now i want to find 2 expressions A and B that when i operate A i get B and when i operate B i get A 10:06:18 with no success 10:07:24 ((lambda (x) `((lambda (x) ,x) ',x)) '`((lambda (x) ,x) ',x)) 10:07:52 the one i found is => ((lambda(x)`(,x',x)) '(lambda(x)`('x',x))) 10:08:31 oh, oops didnt read correctly :) 10:08:47 wouldn't the looping combinator also work? 10:09:43 I want to find those A and B expressions now, i have no idea what the looping combinator is 10:11:10 ( x. x x) ( x. x x) 10:21:14 cracki [n=cracki@43-176.eduroam.RWTH-Aachen.DE] has joined #scheme 10:21:19 so anyone has any idea? 10:25:52 lambda -> let ? 10:26:22 rudybot: eval ((lambda (x y) (list x (list 'quote x) (not y))) '(lambda (x y) (list x (list 'quote x) (not y))) #t) 10:26:23 eli: your sandbox is ready 10:26:23 eli: ; Value: ((lambda (x y) (list x (list (quote quote) x) (not y))) (quote (lambda (x y) (list x (list (quote quote) x) (not y)))) #f) 10:26:29 rudybot: eval ((lambda (x y) (list x (list (quote quote) x) (not y))) (quote (lambda (x y) (list x (list (quote quote) x) (not y)))) #f) 10:26:30 eli: ; Value: ((lambda (x y) (list x (list (quote quote) x) (not y))) (quote (lambda (x y) (list x (list (quote quote) x) (not y)))) #t) 10:28:11 yes but thats a regular quine :) i want diffrent A and B expressions such that operating A gives B and operating B gives A 10:32:28 Tankado: No, they're different expressions. 10:34:37 ahh yeah i got you now, thanks eli 10:34:42 very nice 10:36:06 humm but they still evaluate to the same expression which is B 10:36:28 Narrenschiff [n=ritchie@mo-rsmitha21.op.umist.ac.uk] has joined #scheme 10:37:30 nvm..my bad 10:38:02 Tankado: If you want something "more interesting", try this one: ((lambda (x y) (list y (list 'quote x) (list 'quote y))) '(lambda (x y) (list y (list 'quote x) (list 'quote y))) '(lambda (x y) (list y (list 'quote y) (list 'quote x)))) 10:38:37 qebab [n=finnrobi@eros.orakel.ntnu.no] has joined #scheme 10:39:20 yeah very nice eli thanks again 10:46:11 -!- mike [n=m@dslb-088-067-023-220.pools.arcor-ip.net] has quit ["This computer has gone to sleep"] 10:46:11 -!- alaricsp [n=alaricsp@88-202-197-217.rdns.as8401.net] has quit [Read error: 104 (Connection reset by peer)] 10:49:14 -!- MichaelRaskin [n=MichaelR@213.171.48.239] has left #scheme 10:49:34 MichaelRaskin [n=MichaelR@213.171.48.239] has joined #scheme 10:52:13 hosh [n=hosh@c-71-199-176-82.hsd1.ga.comcast.net] has joined #scheme 10:53:35 alaricsp [n=alaricsp@88-202-197-217.rdns.as8401.net] has joined #scheme 10:54:03 rudybot: eval ((lambda (x y) (list y (list 'quote x) (list 'quote y))) '(lambda (x y) (list y (list 'quote x) (list 'quote y))) '(lambda (x y) (list y (list 'quote y) (list 'quote x)))) 10:54:05 hkBst: your sandbox is ready 10:54:07 hkBst: ; Value: ((lambda (x y) (list y (list (quote quote) y) (list (quote quote) x))) (quote (lambda (x y) (list y (list (quote quote) x) (list (quote quote) y)))) (quote (lambda (x y) (list y (list (quote quote) y) (list (quote quote) x))))) 10:54:47 rudybot: eval ((lambda (x y) (list y (list (quote quote) y) (list (quote quote) x))) (quote (lambda (x y) (list y (list (quote quote) x) (list (quote quote) y)))) (quote (lambda (x y) (list y (list (quote quote) y) (list (quote quote) x))))) 10:54:49 hkBst: ; Value: ((lambda (x y) (list y (list (quote quote) y) (list (quote quote) x))) (quote (lambda (x y) (list y (list (quote quote) y) (list (quote quote) x)))) (quote (lambda (x y) (list y (list (quote quote) x) (list (quote quote) y))))) 10:58:31 rudybot: eval ((lambda (x y) (list y (list (quote quote) y) (list (quote quote) x))) (quote (lambda (x y) (list y (list (quote quote) y) (list (quote quote) x)))) (quote (lambda (x y) (list y (list (quote quote) x) (list (quote quote) y))))) 10:58:33 hkBst: ; Value: ((lambda (x y) (list y (list (quote quote) x) (list (quote quote) y))) (quote (lambda (x y) (list y (list (quote quote) x) (list (quote quote) y)))) (quote (lambda (x y) (list y (list (quote quote) y) (list (quote quote) x))))) 11:06:54 npe_ [n=npe@195.207.5.2] has joined #scheme 11:11:54 -!- p1dzkl [i=p1dzkl@cl-88.cph-01.dk.sixxs.net] has quit [brown.freenode.net irc.freenode.net] 11:11:54 -!- XTL [i=t6haha00@rhea.oamk.fi] has quit [brown.freenode.net irc.freenode.net] 11:11:54 -!- rstandy [n=rastandy@net-93-144-64-40.t2.dsl.vodafone.it] has quit [brown.freenode.net irc.freenode.net] 11:11:54 -!- dzhus [n=sphinx@93-80-209-196.broadband.corbina.ru] has quit [brown.freenode.net irc.freenode.net] 11:11:54 -!- jonrafkind [n=jon@c-98-202-86-149.hsd1.ut.comcast.net] has quit [brown.freenode.net irc.freenode.net] 11:11:54 -!- Dark-Star|away [n=michael@p57B56B34.dip.t-dialin.net] has quit [brown.freenode.net irc.freenode.net] 11:11:54 -!- tjafk1 [n=timj@e176192135.adsl.alicedsl.de] has quit [brown.freenode.net irc.freenode.net] 11:11:54 -!- Adamant [n=Adamant@unaffiliated/adamant] has quit [brown.freenode.net irc.freenode.net] 11:11:54 -!- AtnNn [n=welcome@modemcable087.62-56-74.mc.videotron.ca] has quit [brown.freenode.net irc.freenode.net] 11:11:54 -!- jlilly [n=jlilly@mail.justinlilly.com] has quit [brown.freenode.net irc.freenode.net] 11:11:54 -!- dfeuer [n=dfeuer@wikimedia/Dfeuer] has quit [brown.freenode.net irc.freenode.net] 11:11:54 -!- elf [i=elf@antenora.aculei.net] has quit [brown.freenode.net irc.freenode.net] 11:12:37 rstandy [n=rastandy@net-93-144-64-40.t2.dsl.vodafone.it] has joined #scheme 11:12:37 dzhus [n=sphinx@93-80-209-196.broadband.corbina.ru] has joined #scheme 11:12:37 jonrafkind [n=jon@c-98-202-86-149.hsd1.ut.comcast.net] has joined #scheme 11:12:37 Dark-Star|away [n=michael@p57B56B34.dip.t-dialin.net] has joined #scheme 11:12:37 tjafk1 [n=timj@e176192135.adsl.alicedsl.de] has joined #scheme 11:12:37 Adamant [n=Adamant@unaffiliated/adamant] has joined #scheme 11:12:37 AtnNn [n=welcome@modemcable087.62-56-74.mc.videotron.ca] has joined #scheme 11:12:37 jlilly [n=jlilly@mail.justinlilly.com] has joined #scheme 11:12:37 dfeuer [n=dfeuer@wikimedia/Dfeuer] has joined #scheme 11:12:37 p1dzkl [i=p1dzkl@cl-88.cph-01.dk.sixxs.net] has joined #scheme 11:12:37 elf [i=elf@antenora.aculei.net] has joined #scheme 11:12:37 XTL [i=t6haha00@rhea.oamk.fi] has joined #scheme 11:16:39 -!- XTL [i=t6haha00@rhea.oamk.fi] has quit [brown.freenode.net irc.freenode.net] 11:16:39 -!- p1dzkl [i=p1dzkl@cl-88.cph-01.dk.sixxs.net] has quit [brown.freenode.net irc.freenode.net] 11:16:39 -!- dfeuer [n=dfeuer@wikimedia/Dfeuer] has quit [brown.freenode.net irc.freenode.net] 11:16:39 -!- elf [i=elf@antenora.aculei.net] has quit [brown.freenode.net irc.freenode.net] 11:16:39 -!- rstandy [n=rastandy@net-93-144-64-40.t2.dsl.vodafone.it] has quit [brown.freenode.net irc.freenode.net] 11:16:39 -!- Dark-Star|away [n=michael@p57B56B34.dip.t-dialin.net] has quit [brown.freenode.net irc.freenode.net] 11:16:39 -!- Adamant [n=Adamant@unaffiliated/adamant] has quit [brown.freenode.net irc.freenode.net] 11:16:39 -!- jlilly [n=jlilly@mail.justinlilly.com] has quit [brown.freenode.net irc.freenode.net] 11:16:39 -!- tjafk1 [n=timj@e176192135.adsl.alicedsl.de] has quit [brown.freenode.net irc.freenode.net] 11:16:39 -!- AtnNn [n=welcome@modemcable087.62-56-74.mc.videotron.ca] has quit [brown.freenode.net irc.freenode.net] 11:16:39 -!- dzhus [n=sphinx@93-80-209-196.broadband.corbina.ru] has quit [brown.freenode.net irc.freenode.net] 11:16:39 -!- jonrafkind [n=jon@c-98-202-86-149.hsd1.ut.comcast.net] has quit [brown.freenode.net irc.freenode.net] 11:17:33 -!- npe_ [n=npe@195.207.5.2] has quit [Remote closed the connection] 11:17:34 -!- npe [n=npe@195.207.5.2] has quit [No route to host] 11:17:40 npe [n=npe@195.207.5.2] has joined #scheme 11:18:46 rstandy [n=rastandy@net-93-144-64-40.t2.dsl.vodafone.it] has joined #scheme 11:18:46 dzhus [n=sphinx@93-80-209-196.broadband.corbina.ru] has joined #scheme 11:18:46 jonrafkind [n=jon@c-98-202-86-149.hsd1.ut.comcast.net] has joined #scheme 11:18:46 Dark-Star|away [n=michael@p57B56B34.dip.t-dialin.net] has joined #scheme 11:18:46 tjafk1 [n=timj@e176192135.adsl.alicedsl.de] has joined #scheme 11:18:46 Adamant [n=Adamant@unaffiliated/adamant] has joined #scheme 11:18:46 AtnNn [n=welcome@modemcable087.62-56-74.mc.videotron.ca] has joined #scheme 11:18:46 jlilly [n=jlilly@mail.justinlilly.com] has joined #scheme 11:18:46 dfeuer [n=dfeuer@wikimedia/Dfeuer] has joined #scheme 11:18:46 p1dzkl [i=p1dzkl@cl-88.cph-01.dk.sixxs.net] has joined #scheme 11:18:46 elf [i=elf@antenora.aculei.net] has joined #scheme 11:18:46 XTL [i=t6haha00@rhea.oamk.fi] has joined #scheme 11:22:00 tonyg [n=tonyg@host226.lshift.net] has joined #scheme 11:29:58 -!- tonyg [n=tonyg@host226.lshift.net] has quit ["Leaving"] 11:30:02 -!- Mr_Awesome [n=eric@pool-98-108-15-8.chi01.dsl-w.verizon.net] has quit [Read error: 110 (Connection timed out)] 11:30:07 tonyg [n=tonyg@host226.lshift.net] has joined #scheme 11:30:11 Mr_Awesome [n=eric@pool-72-69-246-23.chi01.dsl-w.verizon.net] has joined #scheme 11:32:29 -!- p1dzkl [i=p1dzkl@cl-88.cph-01.dk.sixxs.net] has quit ["changing servers"] 11:35:56 -!- Ragnaroek [i=54a66108@gateway/web/ajax/mibbit.com/x-381727d00987b872] has quit ["http://www.mibbit.com ajax IRC Client"] 11:36:08 jao [n=jao@37.Red-79-155-154.dynamicIP.rima-tde.net] has joined #scheme 11:48:58 thehcdreamer [n=thehcdre@94.198.78.26] has joined #scheme 11:52:40 apgwoz [n=apgwoz@pool-68-163-39-215.phil.east.verizon.net] has joined #scheme 11:58:34 -!- Tankado [n=Woodruff@bzq-84-110-171-172.red.bezeqint.net] has quit [] 12:07:55 underspecified_ [n=eric@softbank220043052007.bbtec.net] has joined #scheme 12:09:28 -!- cel [n=cel@121.Red-79-151-50.dynamicIP.rima-tde.net] has quit [Read error: 104 (Connection reset by peer)] 12:09:35 cel [n=cel@121.Red-79-151-50.dynamicIP.rima-tde.net] has joined #scheme 12:10:45 -!- apgwoz [n=apgwoz@pool-68-163-39-215.phil.east.verizon.net] has left #scheme 12:11:00 ejs1 [n=eugen@nat.ironport.com] has joined #scheme 12:11:27 tonyg_ [n=tonyg@host226.lshift.net] has joined #scheme 12:11:42 -!- tonyg_ [n=tonyg@host226.lshift.net] has left #scheme 12:20:35 -!- jewel_ [n=jewel@dsl-247-202-125.telkomadsl.co.za] has quit [Operation timed out] 12:22:04 jewel_ [n=jewel@dsl-247-202-125.telkomadsl.co.za] has joined #scheme 12:22:08 -!- ejs [n=eugen@nat.ironport.com] has quit [Read error: 110 (Connection timed out)] 12:36:40 -!- thehcdreamer [n=thehcdre@94.198.78.26] has quit [] 12:38:13 lolcow [n=lolcow@dsl-241-175-106.telkomadsl.co.za] has joined #scheme 12:39:50 -!- HG` [n=wells@xdslej078.osnanet.de] has quit [Client Quit] 12:42:05 -!- lolcow [n=lolcow@dsl-241-175-106.telkomadsl.co.za] has quit [Client Quit] 12:49:19 lolcow [n=lolcow@dsl-241-175-106.telkomadsl.co.za] has joined #scheme 12:51:17 apgwoz [n=apgwoz@pool-68-163-39-215.phil.east.verizon.net] has joined #scheme 12:51:46 -!- apgwoz [n=apgwoz@pool-68-163-39-215.phil.east.verizon.net] has left #scheme 12:53:15 sphex_ [n=nobody@modemcable185.138-56-74.mc.videotron.ca] has joined #scheme 12:58:56 wingo [n=wingo@64.Red-79-156-64.staticIP.rima-tde.net] has joined #scheme 13:01:08 -!- leppie [n=lolcow@196-210-186-40-wblv-esr-3.dynamic.isadsl.co.za] has quit [Read error: 110 (Connection timed out)] 13:01:30 sepult [n=sepult@xdsl-87-78-27-124.netcologne.de] has joined #scheme 13:05:22 -!- jewel_ [n=jewel@dsl-247-202-125.telkomadsl.co.za] has quit [Read error: 60 (Operation timed out)] 13:07:38 jewel_ [n=jewel@dsl-247-202-125.telkomadsl.co.za] has joined #scheme 13:09:33 -!- jao [n=jao@37.Red-79-155-154.dynamicIP.rima-tde.net] has quit [Read error: 54 (Connection reset by peer)] 13:10:47 -!- sphex [n=nobody@modemcable185.138-56-74.mc.videotron.ca] has quit [Read error: 110 (Connection timed out)] 13:12:13 -!- npe [n=npe@195.207.5.2] has quit [] 13:12:23 langmartin [n=user@exeuntcha.tva.gov] has joined #scheme 13:12:27 flaschenwein [n=olaf_rog@p5080A34A.dip0.t-ipconnect.de] has joined #scheme 13:14:37 annodomini [n=lambda@c-75-69-96-104.hsd1.nh.comcast.net] has joined #scheme 13:16:14 alaricsp_ [n=alaricsp@88-202-197-217.rdns.as8401.net] has joined #scheme 13:16:16 luz [n=davids@139.82.89.70] has joined #scheme 13:16:28 -!- alaricsp [n=alaricsp@88-202-197-217.rdns.as8401.net] has quit [Read error: 104 (Connection reset by peer)] 13:17:57 -!- jenkins_ [n=jenkins@ixa148.internetdsl.tpnet.pl] has quit [] 13:19:00 athos [n=philipp@92.250.250.68] has joined #scheme 13:21:52 jao [n=jao@170.Red-83-33-177.dynamicIP.rima-tde.net] has joined #scheme 13:27:54 -!- cracki [n=cracki@43-176.eduroam.RWTH-Aachen.DE] has quit ["The funniest things in my life are truth and absurdity."] 13:31:26 -!- flaschenwein [n=olaf_rog@p5080A34A.dip0.t-ipconnect.de] has left #scheme 13:32:36 -!- annodomini [n=lambda@wikipedia/lambda] has quit [] 13:39:46 Narrenschiff_ [n=ritchie@mo-rsmitha21.op.umist.ac.uk] has joined #scheme 13:40:40 -!- lolcow [n=lolcow@dsl-241-175-106.telkomadsl.co.za] has quit [Remote closed the connection] 13:40:50 bombshelter13_ [n=greg@toronto-gw.adsl.erx01.mtlcnds.ext.distributel.net] has joined #scheme 13:40:56 Modius [n=Modius@99.179.99.203] has joined #scheme 13:47:53 ejs2 [n=eugen@77.222.151.102] has joined #scheme 13:48:01 higepon396 [n=taro@FLH1Aip247.tky.mesh.ad.jp] has joined #scheme 13:48:34 leppie [n=lolcow@dsl-241-175-106.telkomadsl.co.za] has joined #scheme 13:49:41 -!- ejs1 [n=eugen@nat.ironport.com] has quit [Read error: 104 (Connection reset by peer)] 13:54:07 blackened` [n=blackene@ip-89-102-208-138.karneval.cz] has joined #scheme 13:55:43 -!- Narrenschiff [n=ritchie@mo-rsmitha21.op.umist.ac.uk] has quit [Read error: 110 (Connection timed out)] 14:02:36 rtra [n=user@unaffiliated/rtra] has joined #scheme 14:10:09 annodomini [n=lambda@130.189.179.215] has joined #scheme 14:20:37 Mr-Cat [n=Miranda@hermes.lanit.ru] has joined #scheme 14:20:41 xwl [n=user@114.246.75.236] has joined #scheme 14:20:57 -!- leppie [n=lolcow@dsl-241-175-106.telkomadsl.co.za] has quit [Remote closed the connection] 14:26:58 -!- tonyg [n=tonyg@host226.lshift.net] has quit ["Leaving"] 14:31:17 leppie [n=lolcow@dsl-241-175-106.telkomadsl.co.za] has joined #scheme 14:40:51 whole lotta lambdas 14:41:00 rudybot: was that mean man hurting you? 14:41:00 *offby1: eh? Try "rudybot: help". 14:42:02 -!- X-Scale2 is now known as X-Scale 14:52:10 -!- Narrenschiff_ [n=ritchie@mo-rsmitha21.op.umist.ac.uk] has quit [Read error: 110 (Connection timed out)] 14:53:38 -!- pitui [n=pitui@135.207.174.197] has quit [Remote closed the connection] 15:04:02 -!- etoxam [n=eldragon@84.79.67.254] has quit [Client Quit] 15:04:50 etoxam [n=eldragon@84.79.67.254] has joined #scheme 15:06:43 any Scheme with a library to plot graphs and charts? 15:07:02 i would like to draw some statistics on text 15:07:30 (co-ocurrences, words per line, sentences per line and so on) 15:09:58 cel: good question; I wish I knew. 15:10:01 guile has cairo bindings, you can roll your own plot lib 15:10:04 i did so, poorly 15:10:16 search for guile-charting 15:10:31 aha! It's the Saviour of Guile 15:10:47 pfft 15:11:28 The Short-Order Cook of Hamiltonville? 15:11:43 The Guy With The Beat-Up Car With All The Bumper Stickers? 15:12:05 these all sound derogatory to me. 15:12:55 uh oh 15:13:19 That Dashing Young Man In His Flying Machine? 15:13:23 *offby1* hopes wingo is indeed a man 15:13:45 wingo: thanks i'll take a look 15:13:56 ikaros [n=ikaros@g227025075.adsl.alicedsl.de] has joined #scheme 15:14:42 I know! The Guy With The Really Friendly Dogs 15:14:43 -!- etoxam [n=eldragon@84.79.67.254] has left #scheme 15:14:49 And The Nice Lawn 15:14:49 etoxam [n=eldragon@84.79.67.254] has joined #scheme 15:14:55 *offby1* shifts uncomfortably 15:15:00 *offby1* digs deeper 15:15:01 -!- leppie [n=lolcow@dsl-241-175-106.telkomadsl.co.za] has quit [Remote closed the connection] 15:15:36 leppie [n=lolcow@dsl-241-175-106.telkomadsl.co.za] has joined #scheme 15:15:41 if no offense was intended, none is taken :) 15:16:20 Say, does GnuCash still use guile? I see they have a new release 15:17:00 i think they do, but begrudgingly 15:17:20 they got into a place a few years back where they didn't have anyone anymore that understood scheme 15:17:22 afaik 15:17:29 so they started pulling back from guile 15:18:00 aw 15:24:17 -!- Mr-Cat [n=Miranda@hermes.lanit.ru] has quit [Read error: 104 (Connection reset by peer)] 15:26:44 CSdread__ [n=danielf@209-188-116-183.taosnet.com] has joined #scheme 15:27:10 -!- CSdread__ [n=danielf@209-188-116-183.taosnet.com] has quit [Client Quit] 15:27:55 CSdread__ [n=danielf@209-188-116-183.taosnet.com] has joined #scheme 15:28:56 -!- higepon396 [n=taro@FLH1Aip247.tky.mesh.ad.jp] has quit [Read error: 113 (No route to host)] 15:29:54 jlongster [n=user@75-148-111-133-Chattanooga.hfc.comcastbusiness.net] has joined #scheme 15:36:57 -!- annodomini [n=lambda@wikipedia/lambda] has quit [] 15:39:59 Edico [n=Edico@unaffiliated/edico] has joined #scheme 15:45:52 dlt_ [n=dlt@201.80.197.178] has joined #scheme 15:54:07 -!- jonrafkind [n=jon@c-98-202-86-149.hsd1.ut.comcast.net] has quit [Success] 15:57:59 annodomini [n=lambda@130.189.179.215] has joined #scheme 16:02:22 yates [n=yates@cpe-071-070-224-093.nc.res.rr.com] has joined #scheme 16:02:30 is scheme portable? 16:02:39 -!- xwl [n=user@114.246.75.236] has quit [Remote closed the connection] 16:03:07 yates: what do you mean by portable? 16:03:10 yates: do you mean cross-implementation or cross-OS/arch? 16:03:17 cross-os 16:03:24 and arch, yes 16:03:27 most implementations are, yes 16:03:35 is scheme efficient, both memory-wise and execution-wise? 16:03:58 if you use the right implementation, yes 16:04:00 -!- samlt [n=sam@17.218.193-77.rev.gaoland.net] has quit [Read error: 113 (No route to host)] 16:04:00 yates: as a generality, most big implementations are fairly efficient 16:04:06 the question should be, "are there efficient implementations, ..." 16:04:15 ack 16:04:26 are there efficient, portable implementations? 16:04:29 Some like Gambit compile to C which turns out to be nearly as fast as C. 16:04:30 yes 16:04:43 * straight C I mean 16:05:22 the reason i'm asking is that there is a discussion i opened up (one of probably hundreds over the years) on comp.text.tex about why Lua was chosen in the next-generation TeX engine "LuaTeX" and was suggesting scheme instead 16:05:55 jonrafkind [n=jon@crystalis.cs.utah.edu] has joined #scheme 16:06:17 Lua is probably more safe for acquiring new users than Scheme. 16:06:28 does anyone here know of the rationale ? 16:06:34 yes, i might agree with that 16:06:48 metasyntax|work ^^^ 16:07:05 also there is only one lua implementation, so the language / implementation questions have the same answer 16:07:34 http://www.luatex.org/faq.html 16:08:04 yates: it specifically mentions that Scheme was rejected, so they probably at least thought about it 16:08:10 i was thinking about implementing lua at one point, but i find it too ugly for even my tastes :) 16:08:40 my though, which is very basic (and probably ignorant), is simply that a flavor of LISP, known for its powerful abilities in processing text, would be the ideal marriage to a typesetting system like (La)TeX. 16:08:41 s/though/thought/ 16:09:12 -!- rtra [n=user@unaffiliated/rtra] has quit ["ERC Version 5.2 (IRC client for Emacs)"] 16:09:12 metasyntax|work: ok, lemme have a look 16:09:23 Hm, maybe Emacs Lisp? :-) 16:09:28 yates: It's funny that I was just reading a batch of replies on this... 16:09:59 Next generation TeX engine? 16:10:04 yates: I don't think that text processing is what makes Scheme good -- it's the macros that are a much stronger selling point for a tex replacement. 16:10:14 *foof* was just writing a TeX parser in Scheme last night 16:10:59 yates: But really what seems to be the best way to go would be to make it (tex or pdftex) into a rendering library, and leave the language intergration for whatever language. 16:11:13 *the* next generation tex engine 16:11:32 there can only be one! 16:11:40 rtra [n=user@unaffiliated/rtra] has joined #scheme 16:12:27 I bet LPEG figured into their decision, it's quite nice. 16:13:49 LPEG? 16:14:03 http://www.inf.puc-rio.br/~roberto/lpeg/lpeg.html 16:15:30 -!- ejs2 [n=eugen@77.222.151.102] has quit [Read error: 110 (Connection timed out)] 16:15:53 eli: yes, the library idea sounds powerful. 16:16:05 eli: what do you mean by "the macros"? 16:16:41 LPEG looks like an alternative to regular expressions, no? 16:17:16 yates: Dealing with tex code is going to be hard because it is so different from conventional languages; having macros can make things much easier. 16:17:52 eli: you mean raw TeX, versus something like LaTeX? 16:18:33 yates: PEGs are different, they can do some things that regexen can't. 16:18:42 first-class? 16:19:05 no, never mind 16:19:13 that was a bot query - i thought rodge was a bot 16:19:21 yates: Both actually, it's the same (obscure) language. 16:19:49 hahahah 16:20:04 *yates* apologizes to rodge 16:20:13 i get that a lot! 16:20:15 -!- wingo [n=wingo@64.Red-79-156-64.staticIP.rima-tde.net] has quit [Read error: 54 (Connection reset by peer)] 16:20:25 isn't there a library or other extension to get LPEG into scheme? 16:20:49 SPeg? 16:20:56 yates: specifically IIRC PEGs are context-sensitive whereas regexen form regular grammars. 16:21:14 yates: Of course, but I'm not aware of any implementations yet. 16:21:44 "context" in the colloquial sense, or is this some sort of comp. sci. terminology? 16:22:11 Actually I take that back, there seems to be one for PLT: http://planet.plt-scheme.org/display.ss?package=peg.plt&owner=kazzmir 16:22:57 yates: Check wikipedia for context-sensitive and regular grammars. It has to do (very roughly) with how complex a language they can describe. 16:23:19 which of the requirements in the list of requirements stated at the beginning of the faq aren't met by scheme? 16:23:48 -!- alaricsp_ [n=alaricsp@88-202-197-217.rdns.as8401.net] has quit [Read error: 60 (Operation timed out)] 16:23:52 metasyntax|work: ok - sounds, er, complex. 16:24:05 -!- sepult [n=sepult@xdsl-87-78-27-124.netcologne.de] has quit [Read error: 104 (Connection reset by peer)] 16:24:24 afm - be back to see your answers after lunch. 16:24:43 sepult [n=sepult@xdsl-87-78-123-188.netcologne.de] has joined #scheme 16:26:09 rjack [n=rjack@filippo.cs.unibo.it] has joined #scheme 16:26:11 metasyntax|work, yates: I think that LPEG is completely unrelated. It sounds like the LuaTeX project is hooking into the pdflatex engine. (There isn't any parser that will work with tex anyway.) 16:26:38 -!- rjack [n=rjack@filippo.cs.unibo.it] has quit [Client Quit] 16:27:17 yates: As for the list of requirements, my guess is that the only point that Scheme wasn't doing right was in the "small footprint". Serious schemes are pretty heavy. 16:27:52 [foof could have made a point there, except he's about two years late.] 16:28:25 npe [i=npe@d54C451F3.access.telenet.be] has joined #scheme 16:33:21 dmoerner [n=dmr@205.167.46.36] has joined #scheme 16:36:47 wingo [n=wingo@177.Red-83-34-240.dynamicIP.rima-tde.net] has joined #scheme 16:37:00 I don't know eli 16:37:53 "mzscheme -n -i" only takes 6K of RAM initially. 16:38:03 I wouldn't call that a large footprint. 16:38:40 It's all the stuff that it loads to actually do stuff that makes the footprint. But it's still scheme without all that... 16:41:50 synx: Right, and dealing with tex (or most interesting things) wouldn't be possible withing anywhere near that range. 16:41:56 cracki [n=cracki@sglty.kawo2.RWTH-Aachen.DE] has joined #scheme 16:42:02 synx: Lua is famous for being very small. 16:42:11 Well sure, TeX is huge. 16:42:34 Can Lua deal with TeX without loading a lot of stuff? 16:43:17 when I (require r5rs) mzscheme is still only 10K in resident memory size. 25K virtual. 16:44:36 pakora [n=pakora@ool-18b92109.dyn.optonline.net] has joined #scheme 16:44:46 p1dzkl [i=rek@cl-88.cph-01.dk.sixxs.net] has joined #scheme 16:45:31 I don't really like TeX. Between the horrible documentation and the complexity and possible undefinability of the format... I just like HTML better, and that's saying something. 16:46:03 If I have ( list1 list2 list3 list4 ) ... how can I do (zip list1 list2 list3 list4) ? 16:47:14 synx: I almost completely agree with you. (I probably have deeper latex roots to weed out, and I really hate some of the html crap.) 16:47:25 pakora: Using SRFI-1. :-P 16:47:33 pakora: You probably mean something like (map list list1 list2 list3 list4) 16:47:35 (apply zip '(list1 list2 list3)) 16:47:40 -!- synthase [n=synthase@adsl-220-175-28.mob.bellsouth.net] has quit [Success] 16:47:56 thank you jonrafkind :) 16:48:02 aha im the winner 16:48:09 jonrafkind: That's right! Get the Green Tick! 16:48:16 *cky* gets a downvote, instead. :-P 16:49:03 (Green Tick is a reference to Stack Overflow, a programming Q&A site where the "accepted" answer has a giant green tick shown on it.) 16:49:20 and knowing is half the battle 16:49:39 jonrafkind: What, you mean knowing what to ask? Or knowing what the right answer is? :-) 16:50:25 no i meant explaining your reference was unnecessary 16:51:42 jonrafkind: *lol* 16:51:54 I should have prefaced that reference with "For lurkers and archives". :-) 16:54:03 -!- CSdread__ [n=danielf@209-188-116-183.taosnet.com] has quit [Remote closed the connection] 16:54:48 CSdread__ [n=danielf@209-188-116-183.taosnet.com] has joined #scheme 17:03:09 eli et al.: I'm not sure why a small footprint is necessary in the first place. and without specifying "small" it's really saying nothing 17:03:40 yates: Personally, I completely agree with you. 17:03:47 my new phenom II 955 has 6 MB of L3 *cache*. why do we need to be concerned with 10k kernels? 17:04:25 ejs [n=eugen@77.222.151.102] has joined #scheme 17:04:54 well. let me ask the other way: are there any good reasons NOT to use scheme for such an endeavor? 17:04:59 It does make me wonder if they intend to keep the classical single-pass approach. 17:05:34 yates: While not all machines are that spacious, I find the "smaller than Xkb" restriction for something like a batch mode compilation of a document ridiculous. 17:05:38 isn't it free? i.e., there are free (FOSS) implementtations, right? 17:06:11 yates: many of them, yes. 17:06:14 eli: yup. 17:06:22 "Free" should definitely not be a problem -- AFAIK, there's exactly one non-free implementation that is active. 17:06:54 (But a #scheme channel is probably not the best place to be looking for reasons to not use scheme...) 17:06:58 -!- mmc [n=mima@esprx02x.nokia.com] has quit ["Leaving."] 17:07:16 foof: a tex parser? sounds intriguing. wish you had more to say on this topic. 17:07:32 eli: ha! excellent point! 17:07:49 sorta like asking a salesman if you can get the car at a better price somwhere else? 17:08:07 As an aside, the limitations of (la)tex has led us (the plt scheme group) to implement scribble -- http://docs.plt-scheme.org/scribble/ 17:09:17 And my reference to foof was re an implementation of a small-footprint scheme that he recently made public; directly attempting to compete with TinyScheme and SIOD which are pretty bad implementations of scheme. 17:09:40 -!- dmoerner [n=dmr@205.167.46.36] has quit ["leaving"] 17:09:58 copumpkin [n=pumpkin@Aeropuerto.Kiewit.Dartmouth.EDU] has joined #scheme 17:10:44 was the name "Scribble" in any way associated with the old typesetting program "Scribe"? 17:11:03 i used to use Scribe in the 80's. 17:12:34 yates: Not directly... I happened to be the one who chose it (because I implemented the syntax reader, before the rest of the system existed, and it just got stuck), and I just looked at names that had a familiar ring. 17:13:02 -!- ASau [n=user@host189-230-msk.microtest.ru] has quit ["Off"] 17:13:25 So, there is a system called "Skribe" for bigloo, and I went from there to "Scribble" -- so there is an indirect relation if "Skribe" is related to "Scribe". 17:13:51 hmm. 17:14:11 -!- ejs [n=eugen@77.222.151.102] has quit ["This computer has gone to sleep"] 17:14:30 lowlycoder [n=x@unaffiliated/lowlycoder] has joined #scheme 17:15:11 is there a scribble tutorial? 17:15:37 something with more examples and less formal than the "reference"? 17:16:27 Well, the first section is supposed to be more of a guide thing. 17:17:22 But it does require some knowledge of PLT still. 17:17:46 yates: The Scribble syntax has similarities to Scribe's one, which was why I mentioned the Scribe connection sometime ago when eli mentioned it previously. :-) 17:17:54 There is also a `scribble' command line tool that can render a scribble file into html or pdf (the latter is done thruogh pdflatex, unsurprisingly). 17:18:58 yates: I've never used Scribe myself, but I used to use Texinfo a fair bit (which was "inspired by" Scribe). 17:19:18 cky: You mean that the Scribe syntax also uses @commands? 17:19:24 eli: Yep. 17:19:31 Ooh, I didn't know that. 17:19:58 That must be strong enough that maybe I should claim a stronger connection... 17:20:38 My choice of @ was basically done by crawling over the PLT scheme files and looking for the least use reasonable character (ie, not backslash). 17:20:49 eli: AFAIK that's the reason the Texinfo macros went out of their way to change the escape character from TeX's standard \ to @. 17:21:32 Yeah, but not one that I'd look at since Scheme can be very different... 17:21:44 *nods* 17:21:47 & was another strong competitor, btw. 17:21:57 But somehow looks much uglier. 17:22:03 Yeah, agree. 17:22:28 Oh and ~ too. 17:22:46 I feel that ~ wouldn't stand out enough, for C programmers at least. :-) 17:23:22 The main problem with it is (IMO) that with some fonts it looks almost like a - 17:23:27 *nods* 17:27:09 *morphir* wonders if valve used the lambda as way to symbolize their use of lambda... 17:27:50 for instance, when half-life came out in '97 -- the ai was pretty much revolutionary 17:28:00 did they use lisp? 17:28:24 morphir: No, the lambda refers to the half-life of a radioactive substance. 17:28:47 Well, I don't know if they used Lisp, but I'm pretty sure the lambda refers to half-life, not to Lisp lambdas. :-) 17:29:11 wrldpc [n=worldpea@pool-173-48-214-204.bstnma.fios.verizon.net] has joined #scheme 17:29:44 valve: lets create this cool fps using radioactive lambdas 17:30:13 mmmm... radioactive lambdas 17:30:29 eli, i have once again forgotten how to use errortrace 17:30:49 (require errortrace) (load "blah.ss") -- should that work? 17:31:44 jonrafkind: RTFM? 17:33:57 ejs [n=eugen@38-165-124-91.pool.ukrtel.net] has joined #scheme 17:34:28 samlt [n=sam@17.218.193-77.rev.gaoland.net] has joined #scheme 17:37:23 mike___ [n=m@dslb-088-066-240-033.pools.arcor-ip.net] has joined #scheme 17:40:24 -!- mike___ [n=m@dslb-088-066-240-033.pools.arcor-ip.net] has quit [Client Quit] 17:47:18 -!- luz [n=davids@139.82.89.70] has quit ["Client exiting"] 17:51:43 Modius_ [n=Modius@99.179.101.17] has joined #scheme 17:54:02 Tankado [n=Woodruff@bzq-84-110-171-172.red.bezeqint.net] has joined #scheme 17:54:30 -!- yates [n=yates@cpe-071-070-224-093.nc.res.rr.com] has quit ["Started wasting time elsewhere"] 17:56:43 Modius__ [n=Modius@adsl-70-240-14-151.dsl.austtx.swbell.net] has joined #scheme 17:57:22 -!- ejs [n=eugen@38-165-124-91.pool.ukrtel.net] has quit ["This computer has gone to sleep"] 17:59:12 -!- MichaelRaskin [n=MichaelR@213.171.48.239] has quit [Read error: 110 (Connection timed out)] 18:00:24 copumpki [n=pumpkin@pat9.border1-cfw.dartmouth.edu] has joined #scheme 18:00:54 ejs [n=eugen@38-165-124-91.pool.ukrtel.net] has joined #scheme 18:07:11 -!- wrldpc [n=worldpea@pool-173-48-214-204.bstnma.fios.verizon.net] has quit [] 18:07:34 -!- Modius [n=Modius@99.179.99.203] has quit [Read error: 110 (Connection timed out)] 18:07:38 -!- AtnNn [n=welcome@modemcable087.62-56-74.mc.videotron.ca] has quit ["!"] 18:07:56 Modius [n=Modius@99.179.99.100] has joined #scheme 18:08:21 -!- Modius_ [n=Modius@99.179.101.17] has quit [Connection reset by peer] 18:14:04 peddie [n=matthew@PEDDIE.MIT.EDU] has joined #scheme 18:14:59 -!- Modius__ [n=Modius@adsl-70-240-14-151.dsl.austtx.swbell.net] has quit [Connection timed out] 18:15:13 saccade_ [n=saccade@dhcp-18-188-74-28.dyn.mit.edu] has joined #scheme 18:17:06 -!- lowlycoder [n=x@unaffiliated/lowlycoder] has quit ["Lost terminal"] 18:20:18 `sorrow` [n=kvirc@92.6.187.78] has joined #scheme 18:20:41 -!- `sorrow` is now known as `Antonio` 18:21:16 *`Antonio`* Good evening ! 18:23:28 -!- CSdread__ is now known as CSdread_ 18:23:50 eli, where 18:23:53 mike [n=m@dslb-088-067-020-150.pools.arcor-ip.net] has joined #scheme 18:24:13 oh maybe the guide or something 18:24:57 jonrafkind: http://docs.plt-scheme.org/errortrace/quick-instructions.html 18:25:48 ok i tried -l errortrace but nothing was happening, maybe there is some other problem 18:28:56 -!- saccade_ [n=saccade@dhcp-18-188-74-28.dyn.mit.edu] has quit ["This computer has gone to sleep"] 18:31:50 -!- mike [n=m@dslb-088-067-020-150.pools.arcor-ip.net] has quit ["This computer has gone to sleep"] 18:35:08 morphir: it also looks like an arm holding a crowbar omg mind blown 18:35:34 hello 18:35:47 is there a way to reset all of the current continuations? 18:36:00 a way to clear them all 18:36:12 (exit) 18:37:06 heh, besides exiting 18:41:35 Mr-Cat [n=Mr-Cat@93-81-190-237.broadband.corbina.ru] has joined #scheme 18:43:10 any ideas? 18:44:12 you can reset to a prompt I think... that is, (exit) 18:44:21 it might help if you could state your question in the context of an actual problem 18:44:28 synx: lol 18:46:26 You might have success with custodians, eut. I'm really not sure though. 18:46:48 Just make sure all continuations are unreferenced, then (collect-garbage) 18:56:10 well its not so much that they are unreferenced as i want to remove them 18:56:59 saccade_ [n=saccade@dhcp-18-188-74-28.dyn.mit.edu] has joined #scheme 18:57:08 for example if i'm doing a depth first search and want it to return the first leaf it finds 18:57:34 if i want to see the next leaf i'll call the continuation, etc. 18:58:29 wy [n=wy@66.194.68.209] has joined #scheme 18:58:36 i want to be able to clear all of the continuations so that i wont be able to get at the next leaf 19:00:02 Unless you're returning the continuations, they should get garbage collected just fine... 19:00:32 I sometimes have an escape continuation for jumping out of a recursive search. 19:01:24 in my case i have a continuation for jumping back into a recursive search 19:02:58 hmm... 19:05:53 saccade__ [n=saccade@BRAIN-AND-COG-SIX-THIRTY-TWO.MIT.EDU] has joined #scheme 19:06:04 MichaelRaskin [n=MichaelR@195.91.224.225] has joined #scheme 19:07:20 -!- jao [n=jao@170.Red-83-33-177.dynamicIP.rima-tde.net] has quit [Read error: 104 (Connection reset by peer)] 19:10:38 back /into/ a recursive search? hmm... 19:12:03 -!- dzhus [n=sphinx@93-80-209-196.broadband.corbina.ru] has quit [Remote closed the connection] 19:13:16 http://rafb.net/p/X2v78M87.html 19:13:34 -!- saccade_ [n=saccade@dhcp-18-188-74-28.dyn.mit.edu] has quit [Connection timed out] 19:15:47 jao [n=jao@207.Red-79-155-247.dynamicIP.rima-tde.net] has joined #scheme 19:16:28 ASau [n=user@193.138.70.52] has joined #scheme 19:19:12 Yeah that looks... really nasty eut. 19:19:27 I don't think that would even work in plt. It'd fail because you tried to define something twice. 19:19:42 hmm.. its working for me now 19:20:01 when did i define something twice? 19:20:30 Cowmoo [n=Cowmoo@static-70-108-241-27.res.east.verizon.net] has joined #scheme 19:20:36 foo was originally (1 #) and after that statement it was (2 #) 19:20:58 ((cadr foo)) that 19:21:23 did that* 19:21:35 Yes. 19:22:38 Maybe I shouldn't be talking though. All my attempts to do something returning a continuation have ended only in tears. 19:22:45 :/ 19:23:19 mine are too 19:23:53 maybe you can help with a noob question then 19:24:13 how can you execute two things consecutively in one function? 19:24:30 continuations are like pointers in C: one day it'll "click", you'll understand them and wonder what all the fuss was about 19:24:56 sjamaan, i was hoping today would be the day 19:24:57 synx: did you ever see the continuation clown? http://www.mosaiccollage.net/_images//tearsofaclown1.jpg 19:25:03 haha 19:25:10 I still don't get pointers. 19:25:20 lol 19:25:55 pointers are just numbers :) 19:26:08 continuations are just lambdas :) 19:26:10 So are continuations, leppie :> 19:26:19 wait: numbers are just lambdas 19:26:24 That too :) 19:26:29 *eut* cries 19:27:08 eut: you don't want to go among mad people! 19:28:33 continuations bother me because when they get outside the scope of their call/cc the program stops behaving regularly. 19:28:55 call/cc considered harmful :) 19:29:06 the dark side of scheme o0 19:29:25 goto is child's play compared to call/cc 19:31:19 -!- copumpki is now known as hoggle 19:33:45 call/cc can redefine things that should not be redefinable. It's like the mutable from Hell. 19:34:17 -!- jao [n=jao@207.Red-79-155-247.dynamicIP.rima-tde.net] has quit [Read error: 60 (Operation timed out)] 19:34:38 Redefine? 19:36:05 Yeah like (define a (call/cc (lambda (b) b))) 19:36:20 Then (a) raises an error in plt. 19:37:00 But (let ((a (call/cc (lambda (b) b)))) (a)) doesn't raise an error, seemingly arbitrarily. 19:37:16 Both are errors. 19:37:19 er... 19:37:25 But (let ((a (call/cc (lambda (b) b)))) (a 3)) doesn't raise an error, seemingly arbitrarily. 19:37:34 Gee, are you sure? 19:37:41 rudybot: eval (let ((a (call/cc (lambda (b) b)))) (a 3)) 19:37:42 Riastradh: your sandbox is ready 19:37:42 Riastradh: error: procedure application: expected procedure, given: 3; arguments were: 3 19:37:44 I forgot about the scheme craps out on not one value thing 19:37:54 Oh right. 19:38:14 rudybot: eval (let ((a (call/cc (lambda (b) b)))) (when (continuation? a) (a 3))) 19:38:15 synx: your sandbox is ready 19:38:47 -!- hoggle is now known as pumpkin_ 19:39:20 You get the gist though, a is getting redefined, simply by calling the continuation. 19:39:21 So what is the mismatch between what you expect and what you observe? 19:40:15 The mismatch is when I do (define a (call/cc (lambda (b) b))) then (a 3) is an error, because of arbitrary top-level specific rules. 19:40:45 Wait... 19:40:55 Sorry, I'm confused. Both top-level definitions and local bindings have the same effect of signalling an error. 19:41:02 What do you expect to happen? 19:41:21 I'm not saying anything unexpected happened Riastradh. I expect that when I de-reference a NULL pointer the program segfaults. That doesn't make it a good thing to do. 19:41:53 If you call a procedure twice with a different argument, the corresponding parameter has a different value each time. Does that bother you? 19:41:54 And the local binding does not signal an error. 19:42:01 Just a moment. 19:42:08 What, precisely, doesn't signal an error? 19:42:19 (let ((a (call/cc (lambda (b) b)))) (when (continuation? a) (a 3))) 19:42:40 Well, of course (assuming an appropriate definition of CONTINUATION? -- PROCEDURE?, which is standard, would also work). 19:42:57 That runs twice, first a is a continuation, then a is magically 3. 19:43:31 I'm saying I don't like returning back into continuations Riastradh. I'm not saying they don't act as designed. 19:43:33 If you call a procedure twice with different arguments, the value of the parameter the first time around will be different from the value of the parameter the second time around (`magically'). 19:43:43 Don't act as designed? 19:43:44 High caliber explosives may act as designed. Doesn't mean I want it to. 19:43:59 How is that so "magically"? It's not like the reader couldn't infer from the source that weird things could happen; a continuation _is_ being stored, after all 19:44:27 Nothing is broken about continuations... I'm just trying to show how they can act in weird ways. 19:44:39 They are and are not a time machine. 19:45:17 That's like saying a for loop is "weird" because it runs the same bit of code several times with different values for its iterators 19:45:30 By the way, the term you want is `continuation reification', not `continuations'. Pretty much every sequential programming language has continuations, but not many support their reification. 19:45:32 Of course a continuation can be invoked and a different value returned. That's how they work 19:46:49 They can be abused - almost any language construct can be 19:47:09 continuation reification okay... 19:47:30 I just think it's confusing that's all. I tend to avoid it where possible. 19:47:40 Just "first-class continuations" will do, too 19:47:55 -!- Tankado [n=Woodruff@bzq-84-110-171-172.red.bezeqint.net] has quit [] 19:48:09 If you're not comfortable using them, feel free to stay away from them 19:49:31 https://synx.us.to/code/scheme/continuation-weirdness.ss 19:50:28 aLeSD [n=alex@193.153.120.180] has joined #scheme 19:50:54 jlongster pasted "gambit scheme/continuations" at http://paste.lisp.org/display/80564 19:51:01 On a side note, Gambit Scheme treats those examples interestingly 19:51:29 sjamaan: I just don't blame people if continuations never *click* for them. Mostly continuations are dead simple, but with that reification thing you can make some really bizarre puzzles, or things that you feel should work but don't. 19:51:45 synx, with LAMBDA you can make some really bizarre puzzles. 19:51:48 And then you realize why, but it's because of something that couldn't restart or something... 19:51:53 rewind I mean 19:52:01 jlongster, one must be careful when discussing `top-level forms' and the sequence of events in a program. 19:52:10 Riastradh: you can implement call/cc with lambda can't you? 19:52:35 No, synx, but you can globally transform any program that uses CWCC into a program that doesn't. 19:52:52 Riastradh: do you mind clarifying? 19:52:54 okay, I can see that. 19:52:56 how could I add a language in drscheme ? 19:53:06 powerful tool has potential to hurt you; more news at 11 19:53:53 incubot: when all you have is a rubber hammer, everything looks like plate mail 19:53:54 Riastradh: Do you simply mean that different implementations treat such ideas differently? 19:53:55 {Pinhead wisdom} After this, I'm going to BURN some RUBBER!! 19:54:32 jlongster, at a REPL, the sequence of events is read, eval, print, and loop. The continuation you reify in evaluating (DEFINE A (CWCC (LAMBDA (B) B))) first stores a value in A and then returns from the `eval' part, so that the next step is `print, loop', and the next step after that is `read' -- *not* `eval (A) like before', because (A) was already consumed from the input port. 19:56:34 On the other hand, if you put the two forms (DEFINE A (CWCC (LAMBDA (B) B))) (A) in one unit (say, in a module, or a file, or a package, or an R6RS library, or whatever), the continuation that is reified first stores a value in A and then proceeds to the evaluation of the form (A). 19:59:08 Riastradh: Interesting. Running that code in a file does seem to treat it differently. I will need to study your explanation later when I have time to focus on it, thanks 20:00:02 how could I pass a procedure as param ? 20:00:20 (define (myproc (proc))) ? 20:00:26 Exactly as you pass any other value as a parameter. 20:00:52 jao [n=jao@42.Red-79-155-155.dynamicIP.rima-tde.net] has joined #scheme 20:00:56 hey jao! 20:01:02 Riastradh: and to call it ? 20:01:08 hi duncanm 20:01:09 Exactly as you call any other procedure. 20:01:25 (define (myproc proc) (proc) ) ? 20:03:22 Error: #(struct:exn:fail:contract procedure application: expected procedure, given: # (no arguments) #) 20:03:28 -!- Modius [n=Modius@99.179.99.100] has quit [Read error: 54 (Connection reset by peer)] 20:03:49 Modius [n=Modius@ppp-70-129-201-236.dsl.austtx.swbell.net] has joined #scheme 20:04:03 Somehow I suspect that PLT Scheme reported that error for something other than simply (define (myproc proc) (proc)). 20:04:39 In general, when describing a problem like this, you should *always* specify (1) exactly what you typed, (2) exactly what you saw, and (3) exactly what you expected to see. 20:05:29 Riastradh: ok ... you're right 20:05:31 jlongster annotated #80564 "untitled" at http://paste.lisp.org/display/80564#1 20:05:51 I'm using an language based on plt-scheme ... it's called fluxus 20:05:55 weird, I'm not sure I can figure out what happening there 20:06:10 (and I don't know if I can focus on my other work until I do) 20:06:23 I'm using its GUI to program ... I'd like to use it in fluxus 20:07:09 the documentation says that I have to add (require fluxus-[version]/drflux) to the scripts I create 20:07:37 mokogobo [n=mokogobo@76.84.19.124] has joined #scheme 20:08:23 jlongster, first rewrite the program as ((lambda (a) (set! a (cwcc (lambda (b) b))) (a 5))) ). Then CPS-transform it. 20:08:41 Riastradh: wich language I have to use ? 20:09:42 I don't know, aLeSD. You told me that you saw an error message. If you want me to help you with that error message, you must specify what you typed to elicit the message. 20:10:09 Riastradh: ok ... I'm finding the way .. how could I add a path ? 20:10:25 Sorry, I don't know what you're talking about. 20:11:14 (require fluxus-016/drflux) if I run this line , drscheme tells me : fluxus-016/drflux: standard-module-name-resolver: collection not found: "fluxus-016" in any of: (# #) in: fluxus-016/drflux 20:11:21 -!- Cowmoo [n=Cowmoo@static-70-108-241-27.res.east.verizon.net] has left #scheme 20:11:23 Sorry, I can't help you with that. 20:11:37 ok ... however thanks 20:13:13 MrFahrenheit [n=RageOfTh@92.36.164.171] has joined #scheme 20:14:18 Riastradh: hm... I'm not sure how to convert a set! into CPS 20:14:33 But this is starting to become clearer 20:15:34 Well, it doesn't matter precisely what the SET! looks like, as long as the right-hand side is a literal or a variable reference or a lambda (and not a compound expression such as a procedure call) and you somehow incorporate the next expression to evaluate after the SET!. 20:15:52 For example, (BEGIN (SET! A TEMPORARY) (NEXT-THING-TO-DO)) is good enough. 20:16:35 qq[mrw] [n=russd@willers.employees.org] has joined #scheme 20:16:44 -!- pumpkin_ [n=pumpkin@pat9.border1-cfw.dartmouth.edu] has quit [] 20:18:18 Riastradh: I have my language working in drscheme :) 20:18:58 Modius_ [n=Modius@99.179.96.14] has joined #scheme 20:19:38 Riastradh: I have the same error in drfluxus 20:19:54 -!- jao [n=jao@42.Red-79-155-155.dynamicIP.rima-tde.net] has quit [Read error: 60 (Operation timed out)] 20:21:10 jlongster annotated #80564 "untitled" at http://paste.lisp.org/display/80564#2 20:21:29 Riastradh: that's what I have so far, somehow my transformation of cwcc doesn't seem right though 20:21:47 Riastradh: http://rafb.net/p/ZhClR831.html <--- here is the code 20:22:14 jlongster, use this definition: (define (cwcc procedure continuation) (procedure (lambda (value continuation*) (continuation value)) continuation)) 20:22:37 jao [n=jao@121.Red-83-33-181.dynamicIP.rima-tde.net] has joined #scheme 20:22:39 aLeSD, is the DRAW-CUBE procedure supposed to return another procedure when you call it? 20:23:00 no ...it 's the procedure I want to pass 20:23:02 lol 20:23:04 I understood 20:23:08 thanks 20:23:22 jlongster, also, *first* transform the whole program into the form ((LAMBDA (...variables...) ... (SET! ...) ...) ...); *then* CPS-transform the whole thing. 20:23:23 I was passing the returning value 20:24:26 -!- jao [n=jao@121.Red-83-33-181.dynamicIP.rima-tde.net] has quit [Read error: 104 (Connection reset by peer)] 20:26:38 jao [n=jao@189.Red-81-32-180.dynamicIP.rima-tde.net] has joined #scheme 20:26:41 Riastradh: I'm assuming, in cwcc, the first argument passed to `procedure' should have been (lambda (value continuation*) (continuation* value)), not (lambda (value continuation*) (continuation value)) ? 20:26:52 No. 20:27:36 CONTINUATION* is deliberately ignored. When you invoke an escapae procedure, it *discards* the continuation with which you invoked it and instead uses the continuation that was passed to the invocation of CWCC to create the escape procedure. 20:27:48 Ah, right 20:28:16 (I obviously haven't spent the time hand-transforming code enough yet) 20:32:00 *ah*, I think I get it 20:34:09 -!- Modius [n=Modius@ppp-70-129-201-236.dsl.austtx.swbell.net] has quit [Read error: 110 (Connection timed out)] 20:36:05 jao` [n=jao@27.Red-79-155-246.dynamicIP.rima-tde.net] has joined #scheme 20:36:31 Almost there... 20:37:33 how can I repeat a list n times? convert this: (1 2 3 4) to ( (1 2 3 4) (1 2 3 4) (1 2 3 4) ) ... 20:38:44 srfi-1's MAKE-LIST can do this, I think. But it will be the same list every time 20:39:19 -!- ejs [n=eugen@38-165-124-91.pool.ukrtel.net] has quit [Read error: 110 (Connection timed out)] 20:39:31 sjamaan: thats what I needed, thanks 20:39:34 yw 20:41:09 macrologists. is there a way to tell is an identifier is lexically bound, with syntax-case? 20:42:16 geckosenator [n=sean@c-71-237-94-78.hsd1.co.comcast.net] has joined #scheme 20:43:01 -!- Dark-Star|away [n=michael@p57B56B34.dip.t-dialin.net] has quit [Read error: 104 (Connection reset by peer)] 20:43:04 jao`_ [n=jao@210.Red-83-39-135.dynamicIP.rima-tde.net] has joined #scheme 20:45:16 In what SYNTAX-CASE, precisely, wingo? 20:45:29 R6RS SYNTAX-CASE? Chez SYNTAX-CASE? Psyntax SYNTAX-CASE? PLT Scheme SYNTAX-CASE? 20:45:44 Riastradh: well if we're being precise, it's Guile's fork of psyntax :) 20:45:55 but r6rs would do 20:46:08 if we don't have the procedures we can implement them 20:46:11 As far as I know, only the last one provides a way to do this. 20:46:25 interesting 20:47:00 I'm sure it is possible to modify psyntax to provide this (if it doesn't already), but, well, if you want to modify psyntax, go ahead... 20:47:25 Riastradh: I believe I understand what's happening, but I need to put a little more thought into expressing the program in the form you requested. I got this far, but unfortunately I'm at work so I'll have to study this later: 20:47:29 jlongster annotated #80564 "untitled" at http://paste.lisp.org/display/80564#3 20:47:58 Riastradh: i have my psyntax merit badge 20:48:23 jlongster, now get rid of the CWCC -- substitute its definition in-line. 20:49:22 Riastradh: you probably won't like it, but you may be amused: http://git.savannah.gnu.org/gitweb/?p=guile.git;a=history;f=module/ice-9/psyntax.scm;hb=syncase-in-boot-9 20:49:24 -rudybot:#scheme- http://tinyurl.com/o8bcfz 20:49:50 -!- jao [n=jao@189.Red-81-32-180.dynamicIP.rima-tde.net] has quit [Read error: 110 (Connection timed out)] 20:50:02 (Why is it that URIs for files in Git repositories are so painfully elaborate?) 20:50:22 Riastradh: i even took the hexadecimals out of that one! :) 20:50:32 that's just history for one file 20:51:19 on a particular branch 20:51:26 Yes, but why can't it just look like a pathname to a file? If you need to refer to a particular branch or a particular date, that could be put in the query part of the URI, but why clutter the rest with all that crap? 20:51:48 jlongster annotated #80564 "untitled" at http://paste.lisp.org/display/80564#4 20:52:00 jlongster, now beta-reduce. 20:52:51 -!- jao`_ is now known as jao 20:54:38 csmrFX [n=pikseli@cs181151213.pp.htv.fi] has joined #scheme 20:55:13 -!- jao` [n=jao@27.Red-79-155-246.dynamicIP.rima-tde.net] has quit [Read error: 110 (Connection timed out)] 20:55:27 Oy! Is clojure related to Scheme and would it be worth the while? 20:55:50 clojure is a lisp. if you like it, go for it :) 20:56:10 synthase [n=synthase@adsl-146-227-96.mob.bellsouth.net] has joined #scheme 20:56:16 Mr-Cat_ [n=Mr-Cat@93-81-157-139.broadband.corbina.ru] has joined #scheme 20:56:46 eno__ [n=eno@adsl-70-137-165-150.dsl.snfc21.sbcglobal.net] has joined #scheme 20:56:47 Shoot, messed up, stepping back a bit... 20:57:12 -!- eno [n=eno@nslu2-linux/eno] has quit [Nick collision from services.] 20:57:20 -!- eno__ is now known as eno 20:57:28 Hm, so, isn't scheme lisp? 20:57:54 Scheme is a Lisp too. 21:01:25 Thanks 21:02:02 Do you have Scheme source that you find is clever and witty¸ and good for people new to the language to read 21:02:16 Riastradh: I think I did something wrong, I got it down to this: 21:02:18 jlongster annotated #80564 "untitled" at http://paste.lisp.org/display/80564#5 21:02:33 Was my original form correct? 21:03:08 You forgot to transform the call (A 5) into CPS. 21:03:39 ah 21:03:39 -!- saccade__ [n=saccade@BRAIN-AND-COG-SIX-THIRTY-TWO.MIT.EDU] has quit ["This computer has gone to sleep"] 21:04:01 csmrFX: clever and witty! your standards are high 21:04:50 -!- langmartin [n=user@exeuntcha.tva.gov] has quit ["ERC Version 5.3 (IRC client for Emacs)"] 21:05:13 csmrFX: IMHO, you should write the code in the first place :) That way you'll find the coding style, that is convinient for you. 21:05:28 Also, I'm not sure where you got (K THIS-K). The continuation you passed to CWCC is a little questionable -- usually for clarity we don't use the letters `k' or `c' for non-continuation variables when we are using them for continuation variables also. 21:05:41 wingo Let me rephrase. Where can I find some Scheme source code that presents the Highest Echelon of Scheme Memes to the Universe? 21:05:45 -!- Mr-Cat [n=Mr-Cat@93-81-190-237.broadband.corbina.ru] has quit [Read error: 110 (Connection timed out)] 21:05:56 -!- mokogobo [n=mokogobo@76.84.19.124] has quit ["Leaving"] 21:06:04 Better to substitute (K 'DUMMY) for (K THIS-K), so that it is clearer that SET! is returning an unspecified value (which is uninteresting); and (LAMBDA (VALUE-OF-SET!) (A 5 )) for (LAMBDA (K) (A 5 [you're missing a continuation here])). 21:06:29 csmrFX: i can't pretend to offer such. but Oleg's ssax xml parser did alter my mind 21:06:54 csmrFX: http://okmij.org/ftp/papers/XML-parsing.ps.gz 21:06:54 Ah, I downloaded a paper on that but someone stole that off the desk! 21:07:02 bastards! :) 21:07:37 all of oleg's stuff is good -- at least i say that about the parts that i understand 21:07:42 there are many that i don't :) 21:07:48 XSLT-xforming would be something I would be doing... 21:08:00 csmrFX: sxslt is *nice*. 21:08:02 Riastradh: ah... I actually had (k 'unspecified) at one point, but that looked suspicious 21:08:02 i use it a lot. 21:08:14 http://okmij.org/ftp/papers/SXSLT.ps.gz 21:08:47 Yeah, it looks it does same to XSLT as clojure does to Javva 21:09:06 (Yechh. I don't recommend SSAX as remotely reasonable Scheme code, nor as a reasonable XML parser, at least in the state it was in when I last looked at it about two years ago.) 21:09:25 Riastradh: i like it a lot :) 21:10:15 *Mr-Cat_* does not see much point in just reading code to look for memes :-P 21:10:21 Real world code sucks 21:10:25 Riastradh: what would you recommend? 21:10:27 hah 21:10:27 Even scheme code 21:10:29 :) 21:10:29 Yeah 21:10:37 Better alternatives? 21:10:39 Coding sucks 21:11:35 csmrFX: Pick up a good book 21:11:41 -!- Kusanagi [n=Lernaean@unaffiliated/kusanagi] has quit [Read error: 110 (Connection timed out)] 21:12:02 Reading others code is part of my strategy, thanks 21:12:13 sjamaan link to good books welcome... 21:12:17 SICP :) 21:12:34 The Schemer books have nice code, but may be a bit too basic 21:12:35 metacircular evaluators are nice 21:12:43 I also liked LiSP 21:12:56 It includes several Scheme interpreters 21:13:03 dlt__ [n=dlt@201.80.197.178] has joined #scheme 21:13:03 like alan kay said "maxwell's equations of computer science" 21:13:29 Riastradh: I'm not sure what continuation to pass to A, shouldn't the program end at that point? 21:13:31 -!- dlt_ [n=dlt@201.80.197.178] has quit [Read error: 60 (Operation timed out)] 21:14:13 sicp, sicp, scip! 21:14:51 *Mr-Cat_* thinks SICP is rather boring :P 21:15:23 ah, hold on. 21:15:25 Mr-Cat_ so, you prefer this: http://www.gigamonkeys.com/book/ 21:22:16 -!- dlt__ [n=dlt@201.80.197.178] has quit [Read error: 104 (Connection reset by peer)] 21:23:03 Kusanagi [n=Lernaean@24-107-112-153.dhcp.stls.mo.charter.com] has joined #scheme 21:24:36 Riastradh: would you happen to recall the name of the plt bound identifier predicate? 21:25:11 -!- jao [n=jao@210.Red-83-39-135.dynamicIP.rima-tde.net] has quit [Read error: 104 (Connection reset by peer)] 21:28:49 -!- jewel_ [n=jewel@dsl-247-202-125.telkomadsl.co.za] has quit [Read error: 113 (No route to host)] 21:29:32 MasochisticLibra [n=Masochis@c-24-2-191-235.hsd1.ct.comcast.net] has joined #scheme 21:29:48 -!- npe [i=npe@d54C451F3.access.telenet.be] has quit [] 21:29:48 jao [n=jao@40.Red-81-32-179.dynamicIP.rima-tde.net] has joined #scheme 21:29:53 -!- aLeSD [n=alex@193.153.120.180] has quit [Read error: 104 (Connection reset by peer)] 21:30:06 -!- MasochisticLibra [n=Masochis@c-24-2-191-235.hsd1.ct.comcast.net] has left #scheme 21:30:41 ah, turns out i don't need it 21:31:17 guile is moving to hygienic macros, but in the meantime we get lovely misinteraction between defmacros-on-syncase and hygienic macros 21:36:12 -!- Edico [n=Edico@unaffiliated/edico] has quit ["Leaving"] 21:37:54 -!- jao [n=jao@40.Red-81-32-179.dynamicIP.rima-tde.net] has quit [Read error: 104 (Connection reset by peer)] 21:42:48 jao [n=jao@1.Red-81-32-184.dynamicIP.rima-tde.net] has joined #scheme 21:45:48 -!- MichaelRaskin [n=MichaelR@195.91.224.225] has left #scheme 21:46:17 MichaelRaskin [n=MichaelR@195.91.224.225] has joined #scheme 21:46:42 aLeSD [n=alex@193.153.120.180] has joined #scheme 21:51:50 -!- jao [n=jao@1.Red-81-32-184.dynamicIP.rima-tde.net] has quit [Read error: 60 (Operation timed out)] 21:52:40 where is foof's syntax-rules tutorial? 21:53:07 come on, #scheme ircbots :) 21:53:16 rudybot: foof macros? 21:53:16 wingo: eh? Try "rudybot: help". 21:54:07 neilv [n=user@dsl092-071-029.bos1.dsl.speakeasy.net] has joined #scheme 21:55:22 hello neilv 21:55:38 hi 22:04:19 *wingo* is so much better at defmacros than that newfangling. 22:05:04 ikaros_ [n=ikaros@g230226122.adsl.alicedsl.de] has joined #scheme 22:07:30 -!- csmrFX [n=pikseli@cs181151213.pp.htv.fi] has quit [Read error: 110 (Connection timed out)] 22:10:12 -!- ikaros_ [n=ikaros@g230226122.adsl.alicedsl.de] has quit ["Leave the magic to Houdini"] 22:10:59 alaricsp [n=alaricsp@217.205.201.45] has joined #scheme 22:11:34 wingo: What's the question? 22:12:49 eli: good evening! my current non-expired question is: i seem to recall that foof wrote a syntax-rules tutorial. do you know where it lives? 22:13:21 wingo: Try searching the chicken mailinglist; that's where it first appeared 22:13:44 No, I don't know of such tutorial, my question was "what's your `syntax-rules' question". 22:14:13 I don't think it was explicitly marked as 'tutorial' 22:14:45 There's Joe's thing, at http://eval.apply.googlepages.com/eccentric.txt 22:14:52 dysinger [n=tim@216.243.14.115] has joined #scheme 22:15:06 But that's kind of going to levels that `syntax-rules' usually should not be taken to. 22:15:07 eli: ah thank you! 22:15:13 yes i agree :) 22:15:18 but it is a nice hack 22:16:00 his tutorial is great, and does not go as far as is practical with syntax-rules, imho 22:16:11 eli: i am reimplementing stklos' `method' macro as something hygienic 22:16:18 and am puzzling through it 22:16:32 What's that? 22:16:39 i'll get there eventually, though i should probably look at your code i guess 22:16:47 (method args body ...) 22:17:01 where args is a possibly improper list 22:17:01 So at least that part is easy. 22:17:13 whose elements are either foo 22:17:15 or (foo bar) 22:17:30 Improper list with (foo bar)? 22:17:41 You mean (method (x y . (foo bar)) ...stuff...)? 22:17:42 eli: e.g. (x y z) 22:17:46 or (x y . z) 22:17:56 or ((x ) (y ) . z) 22:18:24 OK, so why is that difficult? 22:18:45 Or are you saying that you're doing it with `syntax-rules'? 22:19:00 i'm trying to do it with syntax-rules, yes 22:19:10 Then the best advice I can give you is: "don't". 22:19:13 hehe 22:19:18 probably good advice :) 22:19:33 It's tempting to do it with `syntax-rules', but it's really much better to just use `syntax-case'. 22:19:40 yes 22:19:48 One thing is that code will be more straightforward, 22:19:54 unfortunately to get to my goal i think i need to implement quasisyntax 22:19:59 and another is that you'll have much better error reportage. 22:20:02 which guile's fork of psyntax doesn't have yet 22:20:09 yeah. 22:20:11 Do you have `with-syntax'? 22:20:14 yep 22:20:40 The chain is like: `with-syntax' is implemented with `syntax-case'; `quasisyntax' is implemented with `with-syntax'. 22:20:47 ack 22:20:57 -!- ikaros [n=ikaros@g227025075.adsl.alicedsl.de] has quit [Read error: 110 (Connection timed out)] 22:20:58 So you should already have what you need. 22:21:27 ok. 22:21:53 (I have a very small role in quasisyntax's existence -- when PLT switched to syntax I asked Matthew for it, claiming that `with-syntax' is too inconvenient.) 22:22:13 good job, then 22:22:19 with-syntax is a pita 22:22:24 it is spooky action at a distance 22:22:56 Well, not that spooky -- once you realize that `quasisyntax' really just expands to it. 22:23:20 I eventually setteled on a mix of `with-syntax' and `quasisyntax', where the first is used for heavier things. 22:23:39 Also, a benefit of with syntax is that you can match patterns, for example 22:24:01 (with-syntax ([(foo bar ...) (generate-a-non-empty-list-of-stuff)]) ...) 22:24:16 -!- jlongster [n=user@75-148-111-133-Chattanooga.hfc.comcastbusiness.net] has quit [Read error: 60 (Operation timed out)] 22:24:19 wow, i didn't know you could do that 22:24:40 Well, consider the higher link in the chain -- that's implemented with `syntax-case', roughly: 22:24:57 (syntax-case (generate-a-non-empty-list-of-stuff) [(foo bar ...) ...the-body...]) 22:25:07 (syntax-case (generate-a-non-empty-list-of-stuff) () [(foo bar ...) ...the-body...]) 22:25:20 right 22:25:52 i like this new syntax-object destructuring and structuring world quite a bit 22:25:58 but it is as yet foreign 22:26:00 At some point all of this is useful to go over when you have different phases: it helps knowing which expression is going up or down a level. 22:26:05 projections [n=projecti@88.235.101.2] has joined #scheme 22:26:19 i think we're going to pull an ypsilon when it comes to phases 22:26:39 like ikarus but dumber 22:26:47 Of course it also helps when there's no phases too -- even more important because then it's helping prevent bugs creeping in. 22:26:59 -!- hotblack23 [n=jh@p5B0574B2.dip.t-dialin.net] has quit ["Leaving."] 22:26:59 good point 22:27:15 You know that PLT comes with a macro stepper that can help in some difficult cases, right? 22:27:30 i was vaguely aware of this, yet i have not used it. 22:27:33 i should do so. 22:27:53 meanburrito920_ [n=John@76-217-6-100.lightspeed.irvnca.sbcglobal.net] has joined #scheme 22:28:10 the risk of using plt tools is that one loses interest in one's own scheme interpreter 22:28:12 wow, i even have drscheme installed. i've only ever run mzscheme 22:28:16 neilv: heh 22:28:18 You just write the code in the module language (with `#lang scheme' at the top), then click the button. 22:29:01 And you might need to play with the hiding policy -- expanding syntax transformers all the way to the bottom can be very hairy. 22:29:51 i actually enjoyed the point at which someone in plt expanded fully his expression at the ilc at a lightning talk 22:30:05 -!- hkBst [n=hkBst@gentoo/developer/hkbst] has quit [Read error: 104 (Connection reset by peer)] 22:30:10 i was pretty sure the result of full expansion couldn't be scheme 22:30:20 and it seems in practice that's true 22:30:31 at least with plt and chez 22:30:58 i don't recall who was speaking tho 22:32:13 -!- Fare [n=Fare@ita4fw1.itasoftware.com] has quit ["Leaving"] 22:32:32 -!- annodomini [n=lambda@wikipedia/lambda] has quit [] 22:34:23 -!- cracki [n=cracki@sglty.kawo2.RWTH-Aachen.DE] has quit [No route to host] 22:35:10 hey wingo 22:35:18 howdy duncanm :) 22:36:56 i thought of you recently -- pushed a bunch of scheme stuff into one of work's products, and was getting uninformed pushback because of the strange guile <-> readline relationship 22:37:03 licensing, &c 22:37:22 i thought "dammit if me and duncanm had just pounded out that code..." :) 22:38:29 heh 22:41:53 -!- MrFahrenheit [n=RageOfTh@92.36.164.171] has quit [Read error: 101 (Network is unreachable)] 22:45:52 sphex [n=nobody@modemcable185.138-56-74.mc.videotron.ca] has joined #scheme 22:50:34 halfcore [i=support@ip136-63-210-87.adsl2.static.versatel.nl] has joined #scheme 22:52:24 -!- Mr-Cat_ [n=Mr-Cat@93-81-157-139.broadband.corbina.ru] has quit [Remote closed the connection] 22:54:59 mogunus [n=marco@173-9-7-10-New-England.hfc.comcastbusiness.net] has joined #scheme 23:01:34 la la la 23:02:31 -!- neilv [n=user@dsl092-071-029.bos1.dsl.speakeasy.net] has quit ["Leaving"] 23:02:52 -!- sphex_ [n=nobody@modemcable185.138-56-74.mc.videotron.ca] has quit [Read error: 110 (Connection timed out)] 23:03:38 *wingo* resists the syntax->datum urge 23:05:30 -!- MichaelRaskin [n=MichaelR@195.91.224.225] has left #scheme 23:05:58 MichaelRaskin [n=MichaelR@195.91.224.225] has joined #scheme 23:06:03 -!- alaricsp [n=alaricsp@217.205.201.45] has quit [] 23:13:35 wingo: There are a few known cases where `syntax->datum' makes sense. 23:15:10 wingo pasted "with-syntax terrorism" at http://paste.lisp.org/display/80575 23:15:35 eli: does that paste make any sense to you? 23:16:17 assuming the existence of that compile-make-procedure function 23:16:50 ah shit i have those empty `formals' and `specializers' definitions there 23:16:56 how embarrassing ;) 23:17:09 *wingo* blames it on the cava 23:17:22 I just assumed these were -to-be-filled- definitions. 23:17:42 no, because the with-syntax has the relevant info 23:17:53 is that kind of code considered good style? bad style? 23:17:56 So where's the `syntax->datum' urge coming in? 23:17:57 (incorrect?) 23:18:27 eli: only in the sense that it would take me back to my comfortable defmacro world ;) 23:18:34 kilimanjaro [n=kilimanj@70.116.95.163] has joined #scheme 23:18:44 but i need to be in the hygienic world, in this instance. 23:18:44 Ah, in that case your urge-resisting is justified. 23:18:51 Anyway, 23:19:11 One obvious thing that I'd take point off for is repeating the same code twice. 23:19:32 to loop through args, or the make-proc one? 23:19:56 Looping through the arguments, I didn't see another loop... 23:20:17 _JFT_ [n=_JFT_@modemcable183.11-202-24.mc.videotron.ca] has joined #scheme 23:20:25 yes you are right 23:20:37 You could do the two loops in one shot -- it's very easy using a pattern on the LHS. 23:20:49 that code actually has a bug -- specializers needs to be a list, but formals may be an improper list 23:21:01 arguably a bug in the underlying code 23:21:13 hence the double-loopage 23:21:38 BTW, in PLT (define (formals args)) would be a syntax error. 23:21:55 eli: it is in guile also 23:22:09 iirc anyway 23:22:16 hey you would be pleased at this 23:22:20 Oh, and you didn't actually run this code, right? There are some parentheses issues in your `syntax-case'. 23:22:28 scheme@(guile-user)> (foo if) 23:22:28 ERROR: In procedure sc-expand: 23:22:28 ERROR: Source expression failed to match any pattern in if 23:22:43 eli: no; i was asking about style 23:22:54 i did not intend to use you as an expander, that would be rude :) 23:23:14 hmm 23:23:19 Well, I'm not expanding, but hold on a few seconds. 23:24:07 annodomini [n=lambda@c-75-69-96-104.hsd1.nh.comcast.net] has joined #scheme 23:24:13 i'd like to make two functions. one that does some recursive search and the other that jumps back into it 23:24:57 i've been trying to get it working but am having difficulties... 23:25:01 wingo: it also won't work because you don't allow a dotted argument in your iteration. 23:25:15 ikaros [n=ikaros@g230226122.adsl.alicedsl.de] has joined #scheme 23:25:24 wingo: that is -- your patterns have `more ...', which will only work when there's no dot. 23:25:30 for example if the first time the search returned the result was not good enough you could use the second function to have it continue searching 23:25:57 eli: are those `tail' cases not good enough? 23:26:10 ahhhh 23:26:11 rest ... 23:26:17 thank you. 23:26:34 Well, what will happen is that the `rest ...' will not match, so it will fall down to the `tail' catchall case. 23:26:53 And that's another comment btw -- I'd use more fenders to make it more robust. 23:27:11 fenders? 23:27:24 you mean to check that the pattern vars are identifiers 23:27:31 Yes. 23:27:37 good point. 23:27:53 For example, adding an (identifier #'tail) would avoid making it a catchall and leading to hard to find bugs. 23:28:03 Anyway, do you have `syntax->list'? 23:28:15 duncanm: guard expressions for the `syntax-case'. 23:28:21 eli: no! should i implement it? 23:28:32 i was seeing it earlier in plt manuals 23:28:34 Actually, it won't help here, since you might have a dotted list. 23:28:45 yes. 23:28:47 It can be very convenient in lots of places. 23:29:18 the tricky thing about psyntax is that it's not very extensible -- you can't define more methods on syntax objects 23:29:27 without modifying psyntax itsef 23:29:29 *itself 23:29:33 which i don't mind doing 23:29:40 but in practice only maintainers can do that 23:30:14 perhaps we should just expose syntax objects as their own data type like it seems plt does 23:30:21 Well, is there some equivalent to plt's `syntax-e'? 23:30:59 you mean to get at the expression? 23:31:00 no. 23:31:09 you can forge it with vector-ref 23:31:16 not a very nice option :) 23:31:19 I mean to get at the contents of a "wrapped" syntax object. 23:31:26 yes 23:31:39 Well, that's the way to implement a `syntax->list'... 23:31:56 how is that different from syntax->datum? 23:31:57 The idea is that `syntax-e' gives you the immediate contents of a syntax object, 23:32:16 then `syntax->list' does that over the list structure, 23:32:25 -!- CSdread_ [n=danielf@209-188-116-183.taosnet.com] has quit [Read error: 60 (Operation timed out)] 23:32:28 and finally `syntax->datum' goes all the way. 23:32:39 rudybot: eval (syntax-e (syntax (1 2 3))) 23:32:39 eli: your sandbox is ready 23:32:39 eli: ; Value: (# # #) 23:32:49 rudybot: eval (syntax->list (syntax (1 2 3))) 23:32:49 eli: ; Value: (# # #) 23:32:51 ah. 23:32:54 rudybot: eval (syntax->datum (syntax (1 2 3))) 23:32:55 eli: ; Value: (1 2 3) 23:33:02 but... 23:33:11 rudybot: eval (syntax-e (syntax (1 2 3 . (4 5 6)))) 23:33:11 eli: ; Value: (# # # . #) 23:33:34 Notice that it preserves the `.' in the input, which is where `syntax->list' comes in. 23:33:38 rudybot: eval (syntax->list (syntax (1 2 3 . (4 5 6)))) 23:33:38 eli: ; Value: (# # # # # #) 23:33:54 And finally, `syntax->list' doubles as a predicate too: 23:33:58 rudybot: eval (syntax->list (syntax (1 2 3 . (4 5 6 . 7)))) 23:33:58 eli: ; Value: #f 23:34:15 rudybot: eval (syntax->list (syntax (1 2 3 . 4)) 23:34:15 wingo: your sandbox is ready 23:34:15 wingo: error: eval:1:0: read: expected a `)' to close `(' 23:34:17 rudybot: eval (syntax->list (syntax (1 2 3 . 4))) 23:34:17 wingo: ; Value: #f 23:34:27 ah. 23:34:31 i see. 23:34:58 i don't mean to be obsequious, but thank you again. 23:36:11 -!- Lemonator [n=kniu@pool-71-107-56-85.lsanca.dsl-w.verizon.net] has quit [Remote closed the connection] 23:36:19 *eli* had to look that up... 23:36:58 CSdread__ [n=danielf@209-188-116-183.taosnet.com] has joined #scheme 23:39:00 wingo: So what is `compile-make-procedure' supposed to be doing? 23:39:12 -!- araujo [n=araujo@gentoo/developer/araujo] has quit [Read error: 54 (Connection reset by peer)] 23:39:49 any ideas? 23:40:01 eli: if the body of the method calls next-method, rewrite the body such that an appropriate next-method is defined 23:40:09 to which you may pass args, or not 23:40:21 return #f if the body does not reference next-method 23:40:34 And how do you know if it references `next-method'? 23:41:11 eli: a silly tree traversal 23:41:24 araujo [n=araujo@gentoo/developer/araujo] has joined #scheme 23:41:24 ... the dangerous kind? 23:41:32 oh this is guile 23:41:34 (method (x) 'next-method) 23:41:36 that's how we roll 23:41:44 (method (x) (let ((next-method 3)) next-method)) 23:42:02 well. 23:42:08 (method (x) (if #f next-method (* 6 7))) 23:42:08 so it's an outer wrap 23:42:27 so let's say we have (let ((next-method ...)) body ...) 23:42:39 what form of body would actually cause problems? 23:42:42 -!- araujo [n=araujo@gentoo/developer/araujo] has quit [Read error: 104 (Connection reset by peer)] 23:42:55 Anyway, `compile-make-procedure' is a syntax-time utility? 23:43:19 the whole thing is an optimization for the case in which next-method is not referenced, you don't need to generate something that defines a next-method 23:43:25 eli: yep 23:43:39 Oh, and also (define-syntax my-let ...stuff...) (method (x) (my-let ((next-method 3)) next-method)) 23:43:55 -!- sepult [n=sepult@xdsl-87-78-123-188.netcologne.de] has quit ["leaving"] 23:43:59 *`Antonio`* good night 23:44:02 -!- `Antonio` [n=kvirc@92.6.187.78] has quit ["nite nite"] 23:44:28 So if it's a helper, it should probably take (syntax formals) as input, not the quoted formals. 23:44:47 araujo [n=araujo@gentoo/developer/araujo] has joined #scheme 23:44:58 Also, (syntax body ...) is not going to work -- syntax is like quote 23:45:01 eli: good point. 23:45:05 rudybot: eval (syntax 1 2 3) 23:45:05 eli: error: eval:1:0: syntax: bad form in: (syntax 1 2 3) 23:45:15 -!- CSdread__ [n=danielf@209-188-116-183.taosnet.com] has quit ["Ajax isnt that something you clean the bathroom with?"] 23:45:26 And also, it's better to use `body0 body ...' to catch more bugs. 23:45:30 -!- Modius_ [n=Modius@99.179.96.14] has quit [Read error: 104 (Connection reset by peer)] 23:45:40 Modius [n=Modius@adsl-209-30-131-56.dsl.austtx.swbell.net] has joined #scheme 23:45:41 eli: good points, all. 23:46:24 And when you write that `compile-make-procedure', with the current setup, you'll need to make it return #'#f 23:46:29 i think the original macro had a special case for an empty body 23:46:44 because you might want to define a base method that does nothing 23:46:50 (define-method (foo)) 23:46:57 Or you could make it return #f, and make the decision at syntax time. 23:47:00 (not elegant.) 23:47:02 (Which is what I'll used.) 23:47:07 s/ed/e/ 23:47:10 but, avoids no-next-method errors 23:47:26 eli: i think i'll do that, either a syntax or #f. 23:48:29 -!- araujo [n=araujo@gentoo/developer/araujo] has quit [Read error: 104 (Connection reset by peer)] 23:48:53 Modius_ [n=Modius@adsl-209-30-131-56.dsl.austtx.swbell.net] has joined #scheme 23:49:38 ah 23:49:43 minor-mode-keybinding 23:49:51 ...sorry, wrong window 23:50:22 CSdread__ [n=danielf@209-188-116-183.taosnet.com] has joined #scheme 23:51:25 eli annotated #80575 "All of that..." at http://paste.lisp.org/display/80575#1 23:51:43 wingo: ...modulo obvious bugs since I didn't run this thing. 23:52:00 wingo: And BTW, I switched to using brackets to make sense of the parentheses errors. 23:53:10 eli: heresy! 23:53:23 though i should map [] to () 23:53:27 for my wrists. 23:54:59 Well, heresy or not -- they're very useful to debug problem of exactly the kind in your code! 23:55:31 ack. 23:55:40 You can sort of see the problem in the off-by-1-character indentation of your `syntax-case'... 23:55:53 (Both, actually.) 23:56:27 -!- pumpkin [n=pumpkin@Aeropuerto.Kiewit.Dartmouth.EDU] has quit [SendQ exceeded] 23:56:32 perhaps it was a paste error 23:56:40 *wingo* normally just relies on emacs 23:56:56 eli: do you use drscheme for editing? 23:57:04 kniu [n=kniu@pool-71-107-56-85.lsanca.dsl-w.verizon.net] has joined #scheme 23:57:08 Mostly Emacs. 23:57:24 now that is plt heresy. 23:57:25 Way too much invested in my environment, and I'm doing much more than just editing Scheme code. 23:57:30 did you try geiser? :) 23:57:49 Modius__ [n=Modius@adsl-209-30-131-56.dsl.austtx.swbell.net] has joined #scheme 23:57:52 Not yet, I'll need to have another go at some point. 23:58:13 But chances of me seriously using it are slim -- like all hard-wired Emacs hackers... 23:58:22 yeah i break guile too much for it to be useful right now 23:58:24 I couldn't get myself to use paredit even. 23:58:29 but when things are working, it's great 23:58:57 heh, i like paredit sometimes, but it's not my default yet 23:59:03 Well, for my level of keyboard hard-wiring, one key change is something that takes me a month to get adapted to. 23:59:36 -!- athos [n=philipp@92.250.250.68] has quit ["leaving"] 23:59:39 I switched to CUA-mode "recently" (about a year ago) -- that took me a long time to get used to. 23:59:53 wingo: Joe Marshall wrote a good syntax-rules tutorial, I don't recall ever having written one myself.