00:00:00 You want to keep the code in a single file because what you do in one part of the code affects how the other part of the code is written? 00:00:10 I could topologically sort all of the definitions in my code and then organize it by putting all the strongly connected components in their own separate files. 00:00:41 But I don't want to do that, because that has nothing to do with how I actually think about the code. 00:01:38 The problem is that if I am going to separate out the interfaces, I am stuck with not being able to use your primitive.scm file, but instead chunking it out myself, which makes tracking changes to your code difficult. 00:02:13 I could probably create a dirty hack where I bring in the file multiple times in multiple libraries and do something with it, but I don't want to do that. 00:02:40 emma [n=em@unaffiliated/emma] has joined #scheme 00:02:46 Moreover, because you have the record structures defined in that file, chances are that this won't work anyways, because record structures will conflict when they are multiply defined in these libraries. 00:02:49 primitives.sls, (library ... (include "primitive.scm")); suspensions.sls, (library ... (export maybe-resume with-suspension-claimed) (import primitives)) 00:03:25 Riastrad1: But you don't want MAYBE-RESUME exported by the primtives library. 00:03:57 sstrickl_ [n=sstrickl@static-71-250-255-82.nwrknj.east.verizon.net] has joined #scheme 00:04:04 primitive-internal.sls, (library ... (include "primitive.scm")); primitive.sls, (library ... (export make-prv ...) (import primitive-internal)); susension.sls, (library ... (export maybe-resume with-suspension-claimed) (import primitive-internal)) 00:04:24 -!- sstrickl [n=sstrickl@static-71-250-255-82.nwrknj.east.verizon.net] has quit [Nick collision from services.] 00:04:25 -!- sstrickl_ is now known as sstrickl 00:04:26 *arcfide* sighs. 00:05:10 I don't like it, but I suppose it works. 00:05:34 sstrickl, what happened 00:05:50 can you rejoin 00:05:55 I don't like it either -- but it's not my fault that the R6RS fails to separate interfaces from implementations. 00:06:12 -!- ada2358 [n=ada2358@login-linux.ccs.neu.edu] has quit [Read error: 110 (Connection timed out)] 00:07:13 sstrickl_ [n=sstrickl@static-71-250-255-82.nwrknj.east.verizon.net] has joined #scheme 00:07:13 -!- sstrickl [n=sstrickl@static-71-250-255-82.nwrknj.east.verizon.net] has quit [Read error: 104 (Connection reset by peer)] 00:07:15 -!- sstrickl_ is now known as sstrickl 00:08:59 Riastrad1: Also, looking over my locked record type definition, I'm not seeing where it fails. Do you have an example or a case where you think it would fail? 00:09:13 -!- kuribas [i=kristof@d54C43855.access.telenet.be] has quit ["ERC Version 5.2 (IRC client for Emacs)"] 00:09:23 (define-locked-record-type foo (make-foo mutex) foo? with-foo-locked (mutex foo.mutex)) 00:09:40 (foo.mutex (make-foo 'fnord)) 00:10:13 chylli [n=lchangyi@119.181.6.48] has joined #scheme 00:10:31 -!- emma [n=em@unaffiliated/emma] has quit [Read error: 60 (Operation timed out)] 00:13:15 Riastradh: "e-mail" to "email" has gone rather faster. 00:13:33 That's because the `e' is already an abbreviation, jcowan. Nobody writes `electronicmail', though. 00:13:53 `Email' is treated as a single word; `hash table' is certainly still two words. 00:14:48 emma [n=em@cpe-66-65-80-94.nyc.res.rr.com] has joined #scheme 00:16:07 If we move away from the written representation of English to English itself, though, "hash table" is a compound, like "blackbird" (and unlike, say, "black bird", which is pronounced with a different stress pattern). 00:16:41 Riastradh: What did you expect that to return? 00:16:43 I hope that the next Scheme `report' supports operations on the bits of the two's-complement representation of integers, but doesn't name them as stupidly as the R6RS named them. 00:16:51 arcfide, I expect that to return the symbol FNORD. 00:17:01 Likewise, "once-renowned" is a compound, "once-over" is not, despite the similarity in spelling. 00:17:21 The New-York Historical Society is still so named, BTW. 00:17:25 Riastradh: Which is does. What's the bug? 00:17:37 The handle-bar moustache has not completely lost its hyphen. 00:17:49 The upper-cut stroke in boxing, however, has. 00:18:37 arcfide, OK. Can I still lock such a record? E.g., what does (let ((foo (make-foo 'foo))) (with-foo-locked foo (lambda () (foo.mutex foo)))) yield? 00:18:39 In practice, the only way to discover the current spelling of a compound is to look in a dictionary, which reports the results of the Hartree-Fock process that defines English orthography. 00:18:53 Oops: once-over is a compound, once-renowned is not. 00:19:02 I was about to ask about that, jcowan. 00:19:06 Not the hartreeFock? 00:19:10 GAH! 00:19:20 heh 00:19:23 Two names still gets a hyphen. 00:19:36 I hope that respectable English dictionaries NEVER dignify camel case by including entries written with it. 00:19:58 Riastradh: You can still lock it, the above expression you just gave does return the symbol 'foo', which is, I think, what you expect. 00:20:11 Riastradh: A problem with u8-source and u8-sink is that I don't know what to name the port position setter and getter, which (uniquely) should work on either. 00:21:01 arcfide, OK -- in that case, Chez's implementation of DEFINE-RECORD-TYPE is cleverer than I expected. Finally, what if I have two DEFINE-LOCKED-RECORD-TYPEs in a library -- does that work? 00:21:18 jcowan, why not U8-SOURCE-POSITION and SET-U8-SOURCE-POSITION! ? 00:21:22 Lexicographers write down what they observe publishers doing; publishers in turn look to lexicographers for orthographical guidance. The result is that both halves of the system converge on a stable result (or, at least, only unstable over a long time period). 00:21:30 jcowan: what Riastradh said 00:21:41 Riastradh: Because it also gets/sets the position of u8-sinks. 00:21:48 No, it doesn't, jcowan! 00:21:52 US-POSITION 00:22:06 Sources and sinks are completely different types. 00:22:07 er, U8-POSITION. me type pretty one day 00:22:16 Well, then we need to duplicate those procedures too. 00:22:20 Ugh. 00:22:28 I'm already over the Magic 50. 00:22:30 That's right, jcowan, as with any generic operations on ports. 00:23:36 Daemmerung: The US-POSITION is that foreigners are bastards. Some of them are cunning bastards. 00:23:36 I like source and sink, but since we already have `u8' and `input' and `output' as lexemes, I'm reluctant to suggest new ones. Maybe just `u8-input', with the "source" implied. 00:23:54 `u8-input' is not a noun, or at least not the noun you mean. 00:23:59 u8-input? seems a strange predicate. 00:24:19 `u8-input' is input that you got from u8, or that is directed to u8. 00:24:24 It's a bit generic, but not otherwise strange to me. 00:24:27 Adding more than 50 bindings is like pricing your wares over $99.99. 00:24:42 Suddenly you need a whole new level of approval. 00:24:47 So omit (or deprecate) some bindings, jcowan. 00:24:53 Who needs PORT? any longer? 00:25:03 It's not in R5RS, so not in. 00:25:08 Yes, it is. 00:25:35 It may have been a typographical error, but it is most certainly in the R5RS as one of the disjoint type predicates. 00:26:09 Typographical error, or an editor saving keystrokes? I thought the latter. 00:26:10 Not in http://schemers.org/Documents/Standards/R5RS/HTML/r5rs-Z-H-9.html#%_chap_6. 00:26:17 Only input-port? and output-port?. 00:26:40 Hmm, you're right. That's very odd. 00:26:47 There are no generic inputs on ports. 00:26:53 From the R5RS, Section 3.2 `Disjointedness of types', p. 6: `No object satisfies more than one of the following predicates: BOOLEAN? SYMBOL? ... PORT?' 00:26:58 *jcowan* nods. 00:27:07 But not being in Section 6 makes its status suspect. 00:27:09 But PORT? is never defined in the spec otherwise. 00:27:17 As I said, it was probably a typographical error. 00:27:27 But you can still claim to have removed it! 00:27:34 It was an editor being a lazy bastard. not that that's a bad thing. 00:27:56 I need to do something about dinner. 00:28:06 -!- sstrickl [n=sstrickl@static-71-250-255-82.nwrknj.east.verizon.net] has quit [Read error: 104 (Connection reset by peer)] 00:28:06 Or it was an editor being cunning (like a foreigner) as to whether input and output ports are disjoint. 00:28:25 Scheme48 and scsh do not have it. 00:28:36 You can also omit LOAD, TRANSCRIPT-ON, and TRANSCRIPT-OFF. Now I've already accounted for the four bindings I suggested: (SET-)U8-{SOURCE,SINK}-POSITION!. 00:28:56 Going to get some sunshine while there still is some to get. Bye. 00:28:58 Kawa also. 00:29:03 MIT Scheme has it. 00:29:18 (But MIT Scheme also has bidirectional ports.) 00:29:32 Likewise PLT, Gauche, Gambit, Chicken, Bigloo, Guile, Kawa. 00:29:35 Still testing..... 00:29:43 Anyway, I really need to do something about dinner. 00:29:45 *Riastradh* vanishes. 00:29:48 Riastradh: I just defined two records, one the same as the definition you gave above, and the other with s/foo/bar/, and then wrapped those definitions in a module form: (module (x) (define x (cons (foo.mutex (make-foo 'a)) (bar.mutex (make-bar 'b))))) and then tried x and got '(a . b). Is this satsifactory to you? 00:30:17 Also try locking them. 00:30:45 SISC yes, Chez yes, SCM no, VScheme no, SScheme no, Chibi no. 00:30:49 This is to make sure that the definitions of GET-MUTEX did not clobber one another. 00:32:46 In any case, there's nothing you can do with both an input-port and an output-port. 00:33:15 Right. 00:33:18 *Riastrad1* vanishes too. 00:33:41 Riastrad1: I just tried it the same as above but replaced the x definition with the lock expressions above and the appropriat foo/bar substitutions and got the right answer. 00:39:31 -!- outworlder [n=stephen@187-26-165-92.3g.claro.net.br] has quit [Read error: 110 (Connection timed out)] 00:40:24 Riastradh: I believe you are worried about something like (let () (define-syntax make-dummy (syntax-rules () [(_ name val) (begin (define dummy val) (define (name) dummy))])) (make-dummy x 3) (make-dummy y 4) (cons (x) (y))) not evaluating to '(3 . 4), right? 00:40:55 emmy [n=em@cpe-98-14-154-71.nyc.res.rr.com] has joined #scheme 00:51:38 annodomini [n=lambda@c-75-69-96-104.hsd1.nh.comcast.net] has joined #scheme 00:52:33 -!- emma [n=em@unaffiliated/emma] has quit [Success] 00:56:37 sstrickl [n=sstrickl@static-71-250-255-82.nwrknj.east.verizon.net] has joined #scheme 00:58:24 QinGW [n=wangqing@203.86.89.226] has joined #scheme 01:02:33 bombshelter13_ [n=bombshel@76-10-149-209.dsl.teksavvy.com] has joined #scheme 01:07:09 -!- blackened` [n=blackene@ip-89-102-28-224.karneval.cz] has quit [] 01:10:19 -!- MononcQc [n=mononcqc@96.20.225.62] has quit ["DOWNLOADING NEXT VERSION OF INTERNET"] 01:14:12 MononcQc [n=parseido@modemcable062.225-20-96.mc.videotron.ca] has joined #scheme 01:20:20 -!- mrsolo [n=mrsolo@nat/yahoo/x-lhoxkpbuorkypkax] has quit ["Leaving"] 01:30:26 -!- jonrafkind [n=jon@crystalis.cs.utah.edu] has quit [Read error: 113 (No route to host)] 01:34:09 -!- Riastrad1 [n=rias@pool-151-203-199-97.bos.east.verizon.net] has quit [Read error: 110 (Connection timed out)] 01:43:28 dmoerner [n=dmr@89-251.res.pomona.edu] has joined #scheme 01:46:18 -!- mmc [n=mima@cs27122078.pp.htv.fi] has quit [Read error: 110 (Connection timed out)] 01:57:03 Adman65 [n=Adman65@208.54.4.53] has joined #scheme 01:57:21 -!- Adman65 [n=Adman65@208.54.4.53] has quit [Read error: 131 (Connection reset by peer)] 02:00:11 arcfide, yes, I was concerned about that, and about expanding to (MAKE-RECORD-TYPE '(MUTEX MUTEX) ...). 02:04:20 rtra [n=rtra@unaffiliated/rtra] has joined #scheme 02:09:03 -!- bweaver [n=user@24-247-129-155.dhcp.trcy.mi.charter.com] has quit ["ERC Version 5.3 (IRC client for Emacs)"] 02:16:46 Is the question What is an example of a question which is not its own answer? its own answer? 02:19:53 peter_12 [n=peter_12@S0106000f66bc42b9.vn.shawcable.net] has joined #scheme 02:20:36 -!- peter_12 [n=peter_12@S0106000f66bc42b9.vn.shawcable.net] has quit [Client Quit] 02:20:50 peter_12 [n=peter_12@S0106000f66bc42b9.vn.shawcable.net] has joined #scheme 02:29:37 jonrafkind [n=jon@98.202.86.149] has joined #scheme 02:34:10 yome [n=usah@70.48.77.153] has joined #scheme 02:35:28 I'm glad you asked me that question. 02:36:13 synx [i=synx@gateway/gpg-tor/key-0xA71B0C6A] has joined #scheme 02:38:19 -!- xwl_ [n=user@147.243.236.60] has quit [Remote closed the connection] 02:42:56 xmonader [n=ahmed@196.205.141.2] has joined #scheme 02:46:08 Why *shouldn't* a question answer a question with a question? 02:48:45 *yome* glances around nervously. 02:49:07 Glances around nervously? When did offby1 start spelling his name Y-O-M-E? 02:51:19 Darki [i=Darkstar@p57B55166.dip.t-dialin.net] has joined #scheme 02:51:37 -!- Dark-Star [i=Darkstar@87.181.70.239] has quit [Read error: 145 (Connection timed out)] 02:52:37 tjafk2 [n=timj@e176201018.adsl.alicedsl.de] has joined #scheme 02:52:48 Riastradh: could you liberate the PDF of http://doi.acm.org/10.1145/1408681.1408687 , just mentioned by Shiro on r6rs-discuss? 02:53:25 xwl_ [n=user@147.243.236.60] has joined #scheme 02:54:33 I have a copy of that with no notice describing copying terms. I don't know whether it's the same paper, but it has the same title and the same author. 02:55:18 (I don't remember where my copy came from.) 02:56:46 Can you push it to mumble? 02:57:11 Here's the paper I have: 02:57:49 Thanks. 03:09:04 -!- tjafk1 [n=timj@e176196186.adsl.alicedsl.de] has quit [Read error: 110 (Connection timed out)] 03:11:27 QinGW1 [n=wangqing@203.86.89.226] has joined #scheme 03:12:41 -!- yome [n=usah@70.48.77.153] has quit ["Leaving"] 03:14:46 -!- peter_12 [n=peter_12@S0106000f66bc42b9.vn.shawcable.net] has quit [] 03:15:22 -!- kmurph79 [n=kmurph79@ip98-185-210-202.sb.sd.cox.net] has quit [] 03:17:53 Riastradh: So, those two concerns you have mentioned don't apply (or at least, I am fairly sure they do not apply) to Chez, does this surprise you? I guess I've come to expect this behavior, and it would be good if i didn't make assumptions without realizing that they are such. 03:18:03 -!- sstrickl [n=sstrickl@static-71-250-255-82.nwrknj.east.verizon.net] has quit [Read error: 110 (Connection timed out)] 03:24:57 peter_12 [n=peter_12@S0106000f66bc42b9.vn.shawcable.net] has joined #scheme 03:28:17 kmurph79 [n=kmurph79@ip98-185-210-202.sb.sd.cox.net] has joined #scheme 03:28:26 -!- QinGW [n=wangqing@203.86.89.226] has quit [Connection timed out] 03:29:17 saccade_ [n=saccade@65-78-24-131.c3-0.smr-ubr1.sbo-smr.ma.cable.rcn.com] has joined #scheme 03:32:18 sstrickl [n=sstrickl@static-71-250-255-82.nwrknj.east.verizon.net] has joined #scheme 03:34:05 arcfide, ask chandler -- he's the one who has been experimenting with this. 03:35:19 -!- kmurph79 [n=kmurph79@ip98-185-210-202.sb.sd.cox.net] has quit [] 03:37:53 -!- xmonader [n=ahmed@196.205.141.2] has quit ["Leaving."] 03:38:22 optimizer [n=x@unaffiliated/lowlycoder] has joined #scheme 03:41:40 -!- jeapostrophe [n=jay@69.169.141.110.provo.static.broadweavenetworks.net] has quit [] 03:42:08 -!- optimizer [n=x@unaffiliated/lowlycoder] has quit [Client Quit] 03:42:17 -!- sstrickl [n=sstrickl@static-71-250-255-82.nwrknj.east.verizon.net] has quit [Read error: 104 (Connection reset by peer)] 03:42:37 sstrickl [n=sstrickl@static-71-250-255-82.nwrknj.east.verizon.net] has joined #scheme 03:45:39 -!- dmoerner [n=dmr@89-251.res.pomona.edu] has quit ["Leaving"] 03:47:17 -!- MichaelRaskin [n=MichaelR@195.91.224.225] has quit [Remote closed the connection] 03:47:49 QinGW [n=wangqing@203.86.89.226] has joined #scheme 03:56:55 QinGW2 [n=wangqing@203.86.89.226] has joined #scheme 04:05:50 -!- QinGW1 [n=wangqing@203.86.89.226] has quit [Connection timed out] 04:11:51 jcowan, argh. Doing this right requires fixing some other omissions in MIT Scheme. 04:13:11 kmurph79 [n=kmurph79@ip98-185-210-202.sb.sd.cox.net] has joined #scheme 04:13:19 -!- QinGW [n=wangqing@203.86.89.226] has quit [Connection timed out] 04:16:25 -!- MononcQc [n=parseido@modemcable062.225-20-96.mc.videotron.ca] has quit ["DOWNLOADING LATEST VERSION OF THE INTERNET"] 04:20:56 Riastradh, I'm not sure what you're referring to here. 04:21:00 Fixing EXPT. 04:21:09 Ah. 04:21:52 (EXPT 27 2/3) should yield 9, and while that's easy, making (EXPT (EXPT 2 200) 3/200) yield 8 is not so easy. 04:22:26 It's not hard, it's just slow even with the binary search. 04:22:31 It's not *hard*, but it requires a little bit of work, and some of that work really wants some other work to be done too. 04:22:39 From the definition of R5RS LETREC in the report, it seems that my interpretation of the above behavior should be correct for any properly hygienic and referentially transparent implementation. 04:22:44 *offby1* gives the Secret Erlang Salute® to yome 04:23:10 Is that the one that makes you look around nervously, or the one that makes you stare blankly. 04:23:11 ? 04:23:56 it's a secret. 04:25:11 MichaelRaskin [n=MichaelR@213.171.48.239] has joined #scheme 04:26:22 Oh very well, have it your way. 04:27:24 *Daemmerung* loosens his collar with an index finger, just for the hell of it 04:27:45 An index finger of his collection of many, that is. 04:27:48 eww, where'd you get that index finger? 04:27:57 Don't loosen your collar with it; you don't know where it's been 04:28:00 "I have the heart of a little boy. In a jar on my desk." --Harlan Ellison 04:28:12 Scalps take up too much room, you see. 04:29:56 -!- kmurph79 [n=kmurph79@ip98-185-210-202.sb.sd.cox.net] has quit [] 04:30:15 *offby1* ph33rs the creature whose heart is smaller than its scalp 04:31:43 *gnomon* ph33rs comprehensively 04:32:19 jcowan, well, it's not really a binary search. 04:32:55 QinGW [n=wangqing@203.86.89.226] has joined #scheme 04:37:29 -!- sstrickl [n=sstrickl@static-71-250-255-82.nwrknj.east.verizon.net] has quit [Read error: 110 (Connection timed out)] 04:37:37 How not? To raise a rational r to another rational p/q, you get an estimate e of the qth root of r and binary-search the interval 1..e (modulo sign issues), then multiply by p. 04:37:50 This may not be the fastest algorithm, but it's obviously correct. 04:37:53 That is one way to do it, yes. 04:38:25 Another way is to use Newton's method. 04:38:34 *jcowan* nods. 04:38:47 -!- QinGW [n=wangqing@203.86.89.226] has quit [Read error: 54 (Connection reset by peer)] 04:38:51 -!- QinGW2 [n=wangqing@203.86.89.226] has quit [Read error: 145 (Connection timed out)] 04:38:58 QinGW1 [n=wangqing@203.86.89.226] has joined #scheme 04:39:07 Is either clearly faster in all cases? 04:39:29 Yet another way is to use a fancy-dancy paper that is cited in Gambit's source code. 04:41:08 -!- peter_12 [n=peter_12@S0106000f66bc42b9.vn.shawcable.net] has quit [] 04:41:47 But experimenting with this turned up other problems that I want to fix first. 04:42:10 kmurph79 [n=kmurph79@ip98-185-210-202.sb.sd.cox.net] has joined #scheme 04:43:45 -!- pbusser2 [n=peter@ip138-238-174-82.adsl2.static.versatel.nl] has quit [anthony.freenode.net irc.freenode.net] 04:43:45 -!- snurble [n=none@s83-179-14-105.cust.tele2.se] has quit [anthony.freenode.net irc.freenode.net] 04:43:45 -!- Adrinael [i=adrinael@rib4.kyla.fi] has quit [anthony.freenode.net irc.freenode.net] 04:45:58 snurble [n=none@s83-179-14-105.cust.tele2.se] has joined #scheme 04:45:58 pbusser2 [n=peter@ip138-238-174-82.adsl2.static.versatel.nl] has joined #scheme 04:45:58 Adrinael [i=adrinael@rib4.kyla.fi] has joined #scheme 04:47:11 steiger_ [n=steiger@189.105.114.204] has joined #scheme 05:04:44 -!- steiger__ [n=steiger@189.105.114.204] has quit [Read error: 110 (Connection timed out)] 05:05:19 dmoerner [n=dmr@134.173.64.9] has joined #scheme 05:15:16 steiger__ [n=steiger@189.105.114.204] has joined #scheme 05:15:54 -!- ASau [n=user@83.69.227.32] has quit ["off"] 05:16:18 peter_12 [n=peter_12@d75-157-234-75.bchsia.telus.net] has joined #scheme 05:16:29 -!- peter_12 [n=peter_12@d75-157-234-75.bchsia.telus.net] has quit [Client Quit] 05:19:50 QinGW [n=wangqing@203.86.89.226] has joined #scheme 05:24:19 -!- QinGW [n=wangqing@203.86.89.226] has quit [Client Quit] 05:24:59 QinGW [n=wangqing@203.86.89.226] has joined #scheme 05:29:40 rstandy`` [n=rastandy@net-93-144-239-72.t2.dsl.vodafone.it] has joined #scheme 05:30:47 -!- nothingHappens [n=nothingh@173-25-176-111.client.mchsi.com] has quit ["Ex-Chat"] 05:31:34 -!- davazp [n=user@56.Red-79-153-148.dynamicIP.rima-tde.net] has quit [Remote closed the connection] 05:32:57 nowhere_man [n=pierre@nsg93-7-88-164-172-1.fbx.proxad.net] has joined #scheme 05:33:36 -!- steiger_ [n=steiger@189.105.114.204] has quit [Read error: 110 (Connection timed out)] 05:33:41 -!- annodomini [n=lambda@wikipedia/lambda] has quit [] 05:34:22 -!- jcowan [n=jcowan@cpe-74-68-154-139.nyc.res.rr.com] has quit ["Leaving"] 05:34:36 mik8901 [n=mike8901@resnet-46-184.dorm.utexas.edu] has joined #scheme 05:35:28 Is there anything I can define as a base case a a function such that (cons mySymbol ) will be list(not including )? 05:35:56 -!- QinGW1 [n=wangqing@203.86.89.226] has quit [Connection timed out] 05:36:28 -!- Summermute66 [n=scott@c-68-34-67-216.hsd1.dc.comcast.net] has quit [] 05:36:38 basically, I want the base case of the function to be an empty list, but I don't want empty to be part of the list 05:37:22 Um...just return the empty list? 05:37:29 -!- bombshelter13_ [n=bombshel@76-10-149-209.dsl.teksavvy.com] has quit [Client Quit] 05:37:54 but then the empty list will become part of the list 05:38:07 I'll get something like (list empty 5) 05:38:07 No, the empty list does not contain the empt list. 05:38:18 The empty list, even. 05:38:20 so (cons empty 5) will return (list 5) ? 05:38:33 Oh, you are talking about returning something that you are putting in the car of a pair. 05:38:38 In that case, there is no such object. 05:38:45 What's the most elegant way to do what I want? 05:38:55 Use APPEND rather than CONS. 05:39:38 kabob [n=root@c-24-218-111-213.hsd1.ma.comcast.net] has joined #scheme 05:39:43 great, that works. Thanks! :) 05:40:03 Of course, you will need to wrap all your other objects in lists. 05:40:25 And eat the O(n) cost of APPEND instead of the O(1) cost of CONS... 05:40:44 Since the lists are of length 0 or 1, gnomon, n is a constant here. 05:41:28 mik8901 said that he was looking for the base case of a more general kind of procedure, no? I read that as him asking for a general approach that would also work in the specific base case. 05:41:38 Still, I'm probably wrong, there. 05:42:10 lists are not 0 or 1 - this is the base case for a recursive function - but I'm willing to eat O(n) 05:42:33 or, rather 05:42:53 the list I'm appending to is not 0 or 1, but the item I'm appending is either an element or the empty list. 05:43:26 mik8901, if the only change you were making was to omit nil from your final list, then each new list that using APPEND requires you to construct will be of length 1. That is, where you were computing some expression for x in (CONS x ...), you will now compute (LIST ) for x in (APPEND x ...). 05:43:50 (Except in the case when you want to omit any element, in which case you will write '() rather than (LIST ).) 05:44:01 optimizer [n=x@unaffiliated/lowlycoder] has joined #scheme 05:44:04 -!- rstandy` [n=rastandy@net-93-144-230-91.t2.dsl.vodafone.it] has quit [Read error: 110 (Connection timed out)] 05:45:10 annodomini [n=lambda@wikipedia/lambda] has joined #scheme 05:45:11 -!- kabob [n=root@c-24-218-111-213.hsd1.ma.comcast.net] has quit ["leaving"] 05:50:08 -!- jonrafkind [n=jon@98.202.86.149] has quit [Read error: 110 (Connection timed out)] 05:51:45 -!- kmurph79 [n=kmurph79@ip98-185-210-202.sb.sd.cox.net] has quit [] 05:52:50 QinGW1 [n=wangqing@203.86.89.226] has joined #scheme 06:00:14 QinGW2 [n=wangqing@203.86.89.226] has joined #scheme 06:05:13 -!- annodomini [n=lambda@wikipedia/lambda] has quit [] 06:07:31 QinGW3 [n=wangqing@203.86.89.226] has joined #scheme 06:08:50 -!- rstandy`` [n=rastandy@net-93-144-239-72.t2.dsl.vodafone.it] has quit [Read error: 104 (Connection reset by peer)] 06:09:12 rstandy`` [n=rastandy@net-93-144-239-72.t2.dsl.vodafone.it] has joined #scheme 06:09:47 -!- QinGW [n=wangqing@203.86.89.226] has quit [Connection timed out] 06:10:31 -!- arcfide [n=arcfide@adsl-99-50-231-131.dsl.bltnin.sbcglobal.net] has left #scheme 06:10:39 -!- QinGW2 [n=wangqing@203.86.89.226] has quit [Read error: 60 (Operation timed out)] 06:14:07 ASau [n=user@smtp.hosting.microtest.ru] has joined #scheme 06:16:38 -!- QinGW1 [n=wangqing@203.86.89.226] has quit [Connection timed out] 06:17:07 QinGW [n=wangqing@203.86.89.226] has joined #scheme 06:21:28 fusss [n=chatzill@60-241-1-206.static.tpgi.com.au] has joined #scheme 06:21:35 anybody know of well documented systems that implement a "plugin" architecture for user extensions, besides Emacs? 06:23:37 -!- ray [i=ray@drong.notacat.org] has quit [Read error: 54 (Connection reset by peer)] 06:24:16 ray [i=ray@drong.notacat.org] has joined #scheme 06:26:42 QinGW1 [n=wangqing@203.86.89.226] has joined #scheme 06:32:47 -!- QinGW [n=wangqing@203.86.89.226] has quit [Read error: 145 (Connection timed out)] 06:33:30 -!- QinGW3 [n=wangqing@203.86.89.226] has quit [Connection timed out] 06:36:30 -!- fusss [n=chatzill@60-241-1-206.static.tpgi.com.au] has quit ["off to get a rubber duckie"] 06:37:00 Scheme48's built-in CML implementation is buggy. Oh well. 06:40:18 Oh, no, those bugs have been fixed. 06:40:36 -!- Fufie [n=innocent@86.80-203-225.nextgentel.com] has quit ["Leaving"] 06:46:19 Sveklo1 [n=sveklo1@a88-115-8-123.elisa-laajakaista.fi] has joined #scheme 06:46:32 -!- antoszka [n=antoszka@unaffiliated/antoszka] has quit ["+++ killed by SIGSEGV +++"] 06:49:55 Dark-Star [i=Darkstar@p57B55F34.dip.t-dialin.net] has joined #scheme 06:56:23 -!- dmoerner [n=dmr@134.173.64.9] has quit [Read error: 145 (Connection timed out)] 06:59:18 QinGW [n=wangqing@203.86.89.226] has joined #scheme 07:04:17 -!- Darki [i=Darkstar@p57B55166.dip.t-dialin.net] has quit [Read error: 110 (Connection timed out)] 07:14:30 -!- emmy [n=em@cpe-98-14-154-71.nyc.res.rr.com] has quit [Read error: 110 (Connection timed out)] 07:17:48 -!- synx [i=synx@gateway/gpg-tor/key-0xA71B0C6A] has quit [Remote closed the connection] 07:18:15 -!- QinGW1 [n=wangqing@203.86.89.226] has quit [Connection timed out] 07:18:53 synx [i=synx@gateway/gpg-tor/key-0xA71B0C6A] has joined #scheme 07:22:54 Fufie [n=poff@Gatekeeper.vizrt.com] has joined #scheme 07:28:02 -!- rstandy`` [n=rastandy@net-93-144-239-72.t2.dsl.vodafone.it] has quit [Read error: 110 (Connection timed out)] 07:28:42 hkBst [n=hkBst@gentoo/developer/hkbst] has joined #scheme 07:51:47 -!- xwl_ [n=user@147.243.236.60] has quit [Remote closed the connection] 07:59:58 xwl_ [n=user@147.243.236.60] has joined #scheme 08:03:38 kmurph79 [n=kmurph79@ip98-185-210-202.sb.sd.cox.net] has joined #scheme 08:03:52 -!- saccade_ [n=saccade@65-78-24-131.c3-0.smr-ubr1.sbo-smr.ma.cable.rcn.com] has quit ["This computer has gone to sleep"] 08:07:18 saccade_ [n=saccade@65-78-24-131.c3-0.smr-ubr1.sbo-smr.ma.cable.rcn.com] has joined #scheme 08:10:37 -!- QinGW [n=wangqing@203.86.89.226] has quit [Read error: 104 (Connection reset by peer)] 08:11:27 QinGW [n=wangqing@203.86.89.226] has joined #scheme 08:14:26 -!- QinGW [n=wangqing@203.86.89.226] has quit [Read error: 104 (Connection reset by peer)] 08:15:42 mmc [n=mima@esprx02x.nokia.com] has joined #scheme 08:17:15 QinGW [n=wangqing@203.86.89.226] has joined #scheme 08:21:05 rstandy [n=rastandy@net-93-144-48-217.t2.dsl.vodafone.it] has joined #scheme 08:22:17 -!- patmaddox [n=patmaddo@ip68-111-70-47.oc.oc.cox.net] has quit [Remote closed the connection] 08:29:42 QinGW1 [n=wangqing@203.86.89.226] has joined #scheme 08:44:36 where is guile maillist ? I can not see any topics on guile newsgroup 08:46:49 -!- QinGW [n=wangqing@203.86.89.226] has quit [Connection timed out] 08:52:01 QinGW [n=wangqing@203.86.89.226] has joined #scheme 08:54:06 -!- kmurph79 [n=kmurph79@ip98-185-210-202.sb.sd.cox.net] has quit [] 08:57:03 -!- kilimanjaro [n=kilimanj@70.116.95.163] has quit [Remote closed the connection] 08:57:25 -!- QinGW1 [n=wangqing@203.86.89.226] has quit [Read error: 145 (Connection timed out)] 09:00:57 -!- rtra [n=rtra@unaffiliated/rtra] has quit ["leaving"] 09:01:03 pfo_ [n=pfo@chello084114049188.14.vie.surfer.at] has joined #scheme 09:11:38 -!- pbusser2 [n=peter@ip138-238-174-82.adsl2.static.versatel.nl] has quit [anthony.freenode.net irc.freenode.net] 09:11:38 -!- snurble [n=none@s83-179-14-105.cust.tele2.se] has quit [anthony.freenode.net irc.freenode.net] 09:11:38 -!- Adrinael [i=adrinael@rib4.kyla.fi] has quit [anthony.freenode.net irc.freenode.net] 09:11:38 -!- xwl_ [n=user@147.243.236.60] has quit [anthony.freenode.net irc.freenode.net] 09:11:38 -!- mreggen [n=mreggen@cm-84.215.28.167.getinternet.no] has quit [anthony.freenode.net irc.freenode.net] 09:11:39 -!- jay-mccarthy [n=jay@lallab.cs.byu.edu] has quit [anthony.freenode.net irc.freenode.net] 09:11:39 -!- ineiros [n=itniemin@james.ics.hut.fi] has quit [anthony.freenode.net irc.freenode.net] 09:11:39 -!- hosh [n=hosh@c-71-199-176-82.hsd1.ga.comcast.net] has quit [anthony.freenode.net irc.freenode.net] 09:11:39 -!- Fade [i=fade@outrider.deepsky.com] has quit [anthony.freenode.net irc.freenode.net] 09:11:39 -!- felipe [n=felipe@my.nada.kth.se] has quit [anthony.freenode.net irc.freenode.net] 09:11:39 -!- pfo_ [n=pfo@chello084114049188.14.vie.surfer.at] has quit [anthony.freenode.net irc.freenode.net] 09:11:39 -!- Dark-Star [i=Darkstar@p57B55F34.dip.t-dialin.net] has quit [anthony.freenode.net irc.freenode.net] 09:11:39 -!- Sveklo1 [n=sveklo1@a88-115-8-123.elisa-laajakaista.fi] has quit [anthony.freenode.net irc.freenode.net] 09:11:39 -!- chylli [n=lchangyi@119.181.6.48] has quit [anthony.freenode.net irc.freenode.net] 09:11:39 -!- foof` [n=user@FL1-122-131-151-157.osk.mesh.ad.jp] has quit [anthony.freenode.net irc.freenode.net] 09:11:39 -!- qebab [i=finnrobi@caracal.stud.ntnu.no] has quit [anthony.freenode.net irc.freenode.net] 09:11:39 -!- jrtayloriv [n=jrt4@cpe-69-205-162-163.stny.res.rr.com] has quit [anthony.freenode.net irc.freenode.net] 09:11:39 -!- rcassidy [n=rcassidy@zerowing.ccs.neu.edu] has quit [anthony.freenode.net irc.freenode.net] 09:11:39 -!- elf [i=elf@antenora.aculei.net] has quit [anthony.freenode.net irc.freenode.net] 09:11:39 -!- rudybot [n=luser@q-static-138-125.avvanta.com] has quit [anthony.freenode.net irc.freenode.net] 09:11:39 -!- lisppaste [n=lisppast@common-lisp.net] has quit [anthony.freenode.net irc.freenode.net] 09:11:39 -!- Elly [n=pyxystyx@unaffiliated/elly] has quit [anthony.freenode.net irc.freenode.net] 09:11:39 -!- roderic [n=user@bubbles.ccs.neu.edu] has quit [anthony.freenode.net irc.freenode.net] 09:11:39 -!- tizoc [n=user@unaffiliated/tizoc] has quit [anthony.freenode.net irc.freenode.net] 09:11:41 -!- gnomon [n=gnomon@CPE001d60dffa5c-CM000f9f776f96.cpe.net.cable.rogers.com] has quit [anthony.freenode.net irc.freenode.net] 09:11:41 -!- chandler [n=n@opendarwin/developer/chandler] has quit [anthony.freenode.net irc.freenode.net] 09:11:41 -!- linas [n=linas@gnucash.org] has quit [anthony.freenode.net irc.freenode.net] 09:11:41 -!- dlouhy [n=jdlouhy@zerowing.ccs.neu.edu] has quit [anthony.freenode.net irc.freenode.net] 09:11:41 -!- p1dzkl [i=p1dzkl@208.92.234.202] has quit [anthony.freenode.net irc.freenode.net] 09:11:41 -!- mmc [n=mima@esprx02x.nokia.com] has quit [anthony.freenode.net irc.freenode.net] 09:11:41 -!- optimizer [n=x@unaffiliated/lowlycoder] has quit [anthony.freenode.net irc.freenode.net] 09:11:41 -!- MichaelRaskin [n=MichaelR@213.171.48.239] has quit [anthony.freenode.net irc.freenode.net] 09:11:41 -!- Kusanagi [n=Lernaean@unaffiliated/kusanagi] has quit [anthony.freenode.net irc.freenode.net] 09:11:41 -!- TimMc [n=TimMc@login-linux.ccs.neu.edu] has quit [anthony.freenode.net irc.freenode.net] 09:11:41 -!- certainty [n=david@alpha.d-coded.de] has quit [anthony.freenode.net irc.freenode.net] 09:11:41 -!- kazzmir [n=kazzmir@98.202.86.149] has quit [anthony.freenode.net irc.freenode.net] 09:11:41 -!- Mr_Awesome [n=eric@c-98-212-143-245.hsd1.il.comcast.net] has quit [anthony.freenode.net irc.freenode.net] 09:11:41 -!- jao [n=jao@88.6.168.75] has quit [anthony.freenode.net irc.freenode.net] 09:11:44 -!- michaelw [i=michaelw@88.198.49.16] has quit [anthony.freenode.net irc.freenode.net] 09:11:44 -!- XTL [i=t6haha00@rhea.oamk.fi] has quit [anthony.freenode.net irc.freenode.net] 09:11:44 -!- rapacity [n=prwg@unaffiliated/rapacity] has quit [anthony.freenode.net irc.freenode.net] 09:11:45 -!- nasloc__ [i=tim@163.16.211.21] has quit [anthony.freenode.net irc.freenode.net] 09:11:45 -!- tltstc [n=tltstc@76.90.95.39] has quit [anthony.freenode.net irc.freenode.net] 09:11:45 -!- erg [n=erg@69.93.127.154] has quit [anthony.freenode.net irc.freenode.net] 09:11:45 -!- hiyuh [n=hiyuh@124.214.245.222] has quit [anthony.freenode.net irc.freenode.net] 09:11:45 -!- r0bby [n=wakawaka@guifications/user/r0bby] has quit [anthony.freenode.net irc.freenode.net] 09:11:45 -!- makmanalp [n=legato@80.76.201.55] has quit [anthony.freenode.net irc.freenode.net] 09:11:45 -!- hkBst [n=hkBst@gentoo/developer/hkbst] has quit [anthony.freenode.net irc.freenode.net] 09:11:45 -!- ASau [n=user@smtp.hosting.microtest.ru] has quit [anthony.freenode.net irc.freenode.net] 09:11:45 -!- ebzzry [n=ebzzry@124.217.68.128] has quit [anthony.freenode.net irc.freenode.net] 09:11:45 -!- elmex [i=elmex@ist.m8geil.de] has quit [anthony.freenode.net irc.freenode.net] 09:11:45 -!- specbot [n=specbot@common-lisp.net] has quit [anthony.freenode.net irc.freenode.net] 09:11:45 -!- nothere [n=nothere4@cpe-98-14-187-196.nyc.res.rr.com] has quit [anthony.freenode.net irc.freenode.net] 09:11:45 -!- zbigniew_ [n=zb@3e8.org] has quit [anthony.freenode.net irc.freenode.net] 09:11:45 -!- apgwoz [n=apgwoz@216.156.136.2.ptr.us.xo.net] has quit [anthony.freenode.net irc.freenode.net] 09:11:45 -!- Arelius` [n=user@64.174.9.113] has quit [anthony.freenode.net irc.freenode.net] 09:11:45 -!- danking [n=danking@zerowing.ccs.neu.edu] has quit [anthony.freenode.net irc.freenode.net] 09:11:45 -!- m811 [n=user@84-50-207-42-dsl.est.estpak.ee] has quit [anthony.freenode.net irc.freenode.net] 09:11:45 -!- rmrfchik [n=rmrfchik@linuxhacker.ru] has quit [anthony.freenode.net irc.freenode.net] 09:11:45 -!- Poeir [n=Poeir@c-98-222-133-165.hsd1.il.comcast.net] has quit [anthony.freenode.net irc.freenode.net] 09:11:45 -!- poe [n=poe@unaffiliated/poe] has quit [anthony.freenode.net irc.freenode.net] 09:11:45 -!- heat [n=dima@8.21.172.227] has quit [anthony.freenode.net irc.freenode.net] 09:11:47 -!- synx [i=synx@gateway/gpg-tor/key-0xA71B0C6A] has quit [anthony.freenode.net irc.freenode.net] 09:11:47 -!- marcoecc [i=me@gateway/gpg-tor/key-0x9C9AAE7F] has quit [anthony.freenode.net irc.freenode.net] 09:11:47 -!- saccade_ [n=saccade@65-78-24-131.c3-0.smr-ubr1.sbo-smr.ma.cable.rcn.com] has quit [anthony.freenode.net irc.freenode.net] 09:11:47 -!- copumpkin [n=pumpkin@c-24-63-67-154.hsd1.nh.comcast.net] has quit [anthony.freenode.net irc.freenode.net] 09:11:47 -!- sladegen [n=nemo@unaffiliated/sladegen] has quit [anthony.freenode.net irc.freenode.net] 09:11:47 -!- eno [n=eno@nslu2-linux/eno] has quit [anthony.freenode.net irc.freenode.net] 09:11:47 -!- joast [n=rick@76.178.178.72] has quit [anthony.freenode.net irc.freenode.net] 09:11:47 -!- QinGW [n=wangqing@203.86.89.226] has quit [anthony.freenode.net irc.freenode.net] 09:11:47 -!- rstandy [n=rastandy@net-93-144-48-217.t2.dsl.vodafone.it] has quit [anthony.freenode.net irc.freenode.net] 09:11:47 -!- mik8901 [n=mike8901@resnet-46-184.dorm.utexas.edu] has quit [anthony.freenode.net irc.freenode.net] 09:11:47 -!- araujo [n=araujo@gentoo/developer/araujo] has quit [anthony.freenode.net irc.freenode.net] 09:11:47 -!- jedc [n=jedc@c-67-171-246-227.hsd1.or.comcast.net] has quit [anthony.freenode.net irc.freenode.net] 09:11:47 -!- tarbo [n=me@unaffiliated/tarbo] has quit [anthony.freenode.net irc.freenode.net] 09:11:47 -!- metasyntax [n=taylor@75-149-208-121-Illinois.hfc.comcastbusiness.net] has quit [anthony.freenode.net irc.freenode.net] 09:11:47 -!- incubot [i=incubot@klutometis.wikitex.org] has quit [anthony.freenode.net irc.freenode.net] 09:11:47 -!- mornfall [n=mornfall@kde/developer/mornfall] has quit [anthony.freenode.net irc.freenode.net] 09:11:47 -!- ponzao__1 [n=vesam@xdsl-83-150-86-25.nebulazone.fi] has quit [anthony.freenode.net irc.freenode.net] 09:11:47 -!- Fufie [n=poff@Gatekeeper.vizrt.com] has quit [anthony.freenode.net irc.freenode.net] 09:11:49 -!- Riastradh [n=riastrad@tissot.csail.mit.edu] has quit [anthony.freenode.net irc.freenode.net] 09:11:49 -!- saccade [n=saccade_@COMBINATOR.MIT.EDU] has quit [anthony.freenode.net irc.freenode.net] 09:11:49 -!- Adamant [n=Adamant@unaffiliated/adamant] has quit [anthony.freenode.net irc.freenode.net] 09:11:49 -!- thesnowdog [i=thesnowd@114.73.2.213] has quit [anthony.freenode.net irc.freenode.net] 09:11:49 -!- peddie_ [n=peddie@c-67-170-201-38.hsd1.ca.comcast.net] has quit [anthony.freenode.net irc.freenode.net] 09:11:49 -!- offby1 [n=user@q-static-138-125.avvanta.com] has quit [anthony.freenode.net irc.freenode.net] 09:11:49 -!- kiko_ [n=user@67.207.130.53] has quit [anthony.freenode.net irc.freenode.net] 09:11:49 -!- dfeuer [n=dfeuer@wikimedia/Dfeuer] has quit [anthony.freenode.net irc.freenode.net] 09:11:49 -!- z0d [n=z0d@unaffiliated/z0d] has quit [anthony.freenode.net irc.freenode.net] 09:11:49 -!- kniu [n=kniu@ELMUNDO.RES.CMU.EDU] has quit [anthony.freenode.net irc.freenode.net] 09:11:49 -!- rdd` [n=rdd@c83-250-145-223.bredband.comhem.se] has quit [anthony.freenode.net irc.freenode.net] 09:11:49 -!- ski [n=slj@c-2111e055.1149-1-64736c10.cust.bredbandsbolaget.se] has quit [anthony.freenode.net irc.freenode.net] 09:11:49 -!- pfo [n=pfo@chello084114049188.14.vie.surfer.at] has quit [anthony.freenode.net irc.freenode.net] 09:11:49 -!- poucet [n=poucet@li23-146.members.linode.com] has quit [anthony.freenode.net irc.freenode.net] 09:11:49 -!- brx [i=brx@erxz.com] has quit [anthony.freenode.net irc.freenode.net] 09:11:49 -!- guenthr [n=unknown@sahnehaschee.unix-ag.uni-kl.de] has quit [anthony.freenode.net irc.freenode.net] 09:11:49 -!- Pepe_ [n=ppjet@ram94-7-82-232-191-53.fbx.proxad.net] has quit [anthony.freenode.net irc.freenode.net] 09:11:49 -!- duncanm [n=duncan@a-chinaman.com] has quit [anthony.freenode.net irc.freenode.net] 09:11:49 -!- clog [n=nef@bespin.org] has quit [anthony.freenode.net irc.freenode.net] 09:11:49 -!- eli [n=eli@winooski.ccs.neu.edu] has quit [anthony.freenode.net irc.freenode.net] 09:11:49 -!- jyujin [n=mdeining@vs166245.vserver.de] has quit [anthony.freenode.net irc.freenode.net] 09:11:49 -!- acieroid [n=acieroid@ks23738.kimsufi.com] has quit [anthony.freenode.net irc.freenode.net] 09:11:49 -!- Leonidas [n=Leonidas@unaffiliated/leonidas] has quit [anthony.freenode.net irc.freenode.net] 09:11:49 -!- Axioplase_ [n=Axioplas@fortigate.kb.ecei.tohoku.ac.jp] has quit [anthony.freenode.net irc.freenode.net] 09:11:51 -!- ray [i=ray@drong.notacat.org] has quit [anthony.freenode.net irc.freenode.net] 09:11:51 -!- nowhere_man [n=pierre@nsg93-7-88-164-172-1.fbx.proxad.net] has quit [anthony.freenode.net irc.freenode.net] 09:11:51 -!- ada2358_ [n=ada2358@login-linux.ccs.neu.edu] has quit [anthony.freenode.net irc.freenode.net] 09:11:51 -!- leppie [n=lolcow@dsl-243-31-144.telkomadsl.co.za] has quit [anthony.freenode.net irc.freenode.net] 09:11:51 -!- stepnem [n=stepnem@88.103.132.186] has quit [anthony.freenode.net irc.freenode.net] 09:11:51 -!- Khisanth [n=Khisanth@pool-68-237-101-45.ny325.east.verizon.net] has quit [anthony.freenode.net irc.freenode.net] 09:11:51 -!- rotty [n=rotty@nncmain.nicenamecrew.com] has quit [anthony.freenode.net irc.freenode.net] 09:11:51 -!- minion [n=minion@common-lisp.net] has quit [anthony.freenode.net irc.freenode.net] 09:11:51 -!- Arelius [n=indy@64.174.9.113] has quit [anthony.freenode.net irc.freenode.net] 09:13:45 ponzao___ [n=vesam@xdsl-83-150-86-25.nebulazone.fi] has joined #scheme 09:15:05 Axioplase_ [n=Axioplas@fortigate.kb.ecei.tohoku.ac.jp] has joined #scheme 09:15:05 Leonidas [n=Leonidas@unaffiliated/leonidas] has joined #scheme 09:15:05 eli [n=eli@winooski.ccs.neu.edu] has joined #scheme 09:15:05 acieroid [n=acieroid@ks23738.kimsufi.com] has joined #scheme 09:15:05 jyujin [n=mdeining@vs166245.vserver.de] has joined #scheme 09:15:05 clog [n=nef@bespin.org] has joined #scheme 09:15:05 duncanm [n=duncan@a-chinaman.com] has joined #scheme 09:15:05 Pepe_ [n=ppjet@ram94-7-82-232-191-53.fbx.proxad.net] has joined #scheme 09:15:05 guenthr [n=unknown@sahnehaschee.unix-ag.uni-kl.de] has joined #scheme 09:15:05 brx [i=brx@erxz.com] has joined #scheme 09:15:05 poucet [n=poucet@li23-146.members.linode.com] has joined #scheme 09:15:05 pfo [n=pfo@chello084114049188.14.vie.surfer.at] has joined #scheme 09:15:05 ski [n=slj@c-2111e055.1149-1-64736c10.cust.bredbandsbolaget.se] has joined #scheme 09:15:05 rdd` [n=rdd@c83-250-145-223.bredband.comhem.se] has joined #scheme 09:15:05 mornfall [n=mornfall@kde/developer/mornfall] has joined #scheme 09:15:05 marcoecc [i=me@gateway/gpg-tor/key-0x9C9AAE7F] has joined #scheme 09:15:05 kniu [n=kniu@ELMUNDO.RES.CMU.EDU] has joined #scheme 09:15:05 z0d [n=z0d@unaffiliated/z0d] has joined #scheme 09:15:05 eno [n=eno@nslu2-linux/eno] has joined #scheme 09:15:05 dfeuer [n=dfeuer@wikimedia/Dfeuer] has joined #scheme 09:15:05 kiko_ [n=user@67.207.130.53] has joined #scheme 09:15:05 offby1 [n=user@q-static-138-125.avvanta.com] has joined #scheme 09:15:05 metasyntax [n=taylor@75-149-208-121-Illinois.hfc.comcastbusiness.net] has joined #scheme 09:15:05 peddie_ [n=peddie@c-67-170-201-38.hsd1.ca.comcast.net] has joined #scheme 09:15:05 rudybot [n=luser@q-static-138-125.avvanta.com] has joined #scheme 09:15:05 Fade [i=fade@outrider.deepsky.com] has joined #scheme 09:15:05 p1dzkl [i=p1dzkl@208.92.234.202] has joined #scheme 09:15:05 lisppaste [n=lisppast@common-lisp.net] has joined #scheme 09:15:05 hosh [n=hosh@c-71-199-176-82.hsd1.ga.comcast.net] has joined #scheme 09:15:05 ineiros [n=itniemin@james.ics.hut.fi] has joined #scheme 09:15:05 jay-mccarthy [n=jay@lallab.cs.byu.edu] has joined #scheme 09:15:05 rcassidy [n=rcassidy@zerowing.ccs.neu.edu] has joined #scheme 09:15:05 nasloc__ [i=tim@163.16.211.21] has joined #scheme 09:15:05 erg [n=erg@69.93.127.154] has joined #scheme 09:15:05 kazzmir [n=kazzmir@98.202.86.149] has joined #scheme 09:15:05 felipe [n=felipe@my.nada.kth.se] has joined #scheme 09:15:05 rapacity [n=prwg@unaffiliated/rapacity] has joined #scheme 09:15:05 tltstc [n=tltstc@76.90.95.39] has joined #scheme 09:15:05 Mr_Awesome [n=eric@c-98-212-143-245.hsd1.il.comcast.net] has joined #scheme 09:15:05 linas [n=linas@gnucash.org] has joined #scheme 09:15:05 hiyuh [n=hiyuh@124.214.245.222] has joined #scheme 09:15:05 gnomon [n=gnomon@CPE001d60dffa5c-CM000f9f776f96.cpe.net.cable.rogers.com] has joined #scheme 09:15:05 Elly [n=pyxystyx@unaffiliated/elly] has joined #scheme 09:15:05 chandler [n=n@opendarwin/developer/chandler] has joined #scheme 09:15:05 roderic [n=user@bubbles.ccs.neu.edu] has joined #scheme 09:15:05 tizoc [n=user@unaffiliated/tizoc] has joined #scheme 09:15:05 elf [i=elf@antenora.aculei.net] has joined #scheme 09:15:05 dlouhy [n=jdlouhy@zerowing.ccs.neu.edu] has joined #scheme 09:15:05 TimMc [n=TimMc@login-linux.ccs.neu.edu] has joined #scheme 09:15:05 makmanalp [n=legato@80.76.201.55] has joined #scheme 09:15:05 r0bby [n=wakawaka@guifications/user/r0bby] has joined #scheme 09:15:05 certainty [n=david@alpha.d-coded.de] has joined #scheme 09:15:05 XTL [i=t6haha00@rhea.oamk.fi] has joined #scheme 09:15:05 michaelw [i=michaelw@88.198.49.16] has joined #scheme 09:15:05 tarbo [n=me@unaffiliated/tarbo] has joined #scheme 09:15:05 thesnowdog [i=thesnowd@114.73.2.213] has joined #scheme 09:15:05 jrtayloriv [n=jrt4@cpe-69-205-162-163.stny.res.rr.com] has joined #scheme 09:15:05 Kusanagi [n=Lernaean@unaffiliated/kusanagi] has joined #scheme 09:15:05 mreggen [n=mreggen@cm-84.215.28.167.getinternet.no] has joined #scheme 09:15:05 Adamant [n=Adamant@unaffiliated/adamant] has joined #scheme 09:15:05 jedc [n=jedc@c-67-171-246-227.hsd1.or.comcast.net] has joined #scheme 09:15:05 qebab [i=finnrobi@caracal.stud.ntnu.no] has joined #scheme 09:15:05 jao [n=jao@88.6.168.75] has joined #scheme 09:15:05 saccade [n=saccade_@COMBINATOR.MIT.EDU] has joined #scheme 09:15:05 araujo [n=araujo@gentoo/developer/araujo] has joined #scheme 09:15:05 sladegen [n=nemo@unaffiliated/sladegen] has joined #scheme 09:15:05 foof` [n=user@FL1-122-131-151-157.osk.mesh.ad.jp] has joined #scheme 09:15:05 Riastradh [n=riastrad@tissot.csail.mit.edu] has joined #scheme 09:15:05 copumpkin [n=pumpkin@c-24-63-67-154.hsd1.nh.comcast.net] has joined #scheme 09:15:05 chylli [n=lchangyi@119.181.6.48] has joined #scheme 09:15:05 MichaelRaskin [n=MichaelR@213.171.48.239] has joined #scheme 09:15:05 snurble [n=none@s83-179-14-105.cust.tele2.se] has joined #scheme 09:15:05 pbusser2 [n=peter@ip138-238-174-82.adsl2.static.versatel.nl] has joined #scheme 09:15:05 Adrinael [i=adrinael@rib4.kyla.fi] has joined #scheme 09:15:05 mik8901 [n=mike8901@resnet-46-184.dorm.utexas.edu] has joined #scheme 09:15:05 optimizer [n=x@unaffiliated/lowlycoder] has joined #scheme 09:15:05 Sveklo1 [n=sveklo1@a88-115-8-123.elisa-laajakaista.fi] has joined #scheme 09:15:05 Dark-Star [i=Darkstar@p57B55F34.dip.t-dialin.net] has joined #scheme 09:15:05 synx [i=synx@gateway/gpg-tor/key-0xA71B0C6A] has joined #scheme 09:15:05 Fufie [n=poff@Gatekeeper.vizrt.com] has joined #scheme 09:15:05 xwl_ [n=user@147.243.236.60] has joined #scheme 09:15:05 saccade_ [n=saccade@65-78-24-131.c3-0.smr-ubr1.sbo-smr.ma.cable.rcn.com] has joined #scheme 09:15:05 mmc [n=mima@esprx02x.nokia.com] has joined #scheme 09:15:05 QinGW [n=wangqing@203.86.89.226] has joined #scheme 09:15:05 pfo_ [n=pfo@chello084114049188.14.vie.surfer.at] has joined #scheme 09:15:05 rstandy [n=rastandy@net-93-144-48-217.t2.dsl.vodafone.it] has joined #scheme 09:15:33 joast [n=rick@76.178.178.72] has joined #scheme 09:15:40 ray [i=ray@drong.notacat.org] has joined #scheme 09:15:40 nowhere_man [n=pierre@nsg93-7-88-164-172-1.fbx.proxad.net] has joined #scheme 09:15:40 ada2358_ [n=ada2358@login-linux.ccs.neu.edu] has joined #scheme 09:15:40 leppie [n=lolcow@dsl-243-31-144.telkomadsl.co.za] has joined #scheme 09:15:40 stepnem [n=stepnem@88.103.132.186] has joined #scheme 09:15:40 Khisanth [n=Khisanth@pool-68-237-101-45.ny325.east.verizon.net] has joined #scheme 09:15:40 rotty [n=rotty@nncmain.nicenamecrew.com] has joined #scheme 09:15:40 minion [n=minion@common-lisp.net] has joined #scheme 09:15:40 Arelius [n=indy@64.174.9.113] has joined #scheme 09:16:46 dmoerner [n=dmr@89-65.res.pomona.edu] has joined #scheme 09:18:12 -!- dmoerner [n=dmr@89-65.res.pomona.edu] has quit [Client Quit] 09:19:05 StucKman [n=mdione@yami.inria.fr] has joined #scheme 09:23:45 Is there a function in scheme to determine if a list has an element(I know how to do it recursively, but I was just wondering if there was anything built in)? 09:25:15 memq/memv/member 09:28:03 incubot [i=incubot@klutometis.wikitex.org] has joined #scheme 09:28:03 hkBst [n=hkBst@gentoo/developer/hkbst] has joined #scheme 09:28:03 ASau [n=user@smtp.hosting.microtest.ru] has joined #scheme 09:28:03 ebzzry [n=ebzzry@124.217.68.128] has joined #scheme 09:28:03 elmex [i=elmex@ist.m8geil.de] has joined #scheme 09:28:03 specbot [n=specbot@common-lisp.net] has joined #scheme 09:28:03 nothere [n=nothere4@cpe-98-14-187-196.nyc.res.rr.com] has joined #scheme 09:28:03 zbigniew_ [n=zb@3e8.org] has joined #scheme 09:28:03 apgwoz [n=apgwoz@216.156.136.2.ptr.us.xo.net] has joined #scheme 09:28:03 Arelius` [n=user@64.174.9.113] has joined #scheme 09:28:03 danking [n=danking@zerowing.ccs.neu.edu] has joined #scheme 09:28:03 m811 [n=user@84-50-207-42-dsl.est.estpak.ee] has joined #scheme 09:28:03 rmrfchik [n=rmrfchik@linuxhacker.ru] has joined #scheme 09:28:03 Poeir [n=Poeir@c-98-222-133-165.hsd1.il.comcast.net] has joined #scheme 09:28:03 poe [n=poe@unaffiliated/poe] has joined #scheme 09:28:03 heat [n=dima@8.21.172.227] has joined #scheme 09:28:19 -!- optimizer [n=x@unaffiliated/lowlycoder] has quit ["Lost terminal"] 09:29:04 -!- incubot is now known as Guest38526 09:29:53 It looks like memq can return things other than a bool - any function that just returns a bool? 09:35:02 mik8901: Everything is true except #f 09:35:13 Edico [n=Edico@unaffiliated/edico] has joined #scheme 09:35:31 Jafet [n=Jafet@unaffiliated/jafet] has joined #scheme 09:36:35 attila_lendvai [n=ati@catv-89-134-66-153.catv.broadband.hu] has joined #scheme 09:36:52 Actually, better yet, is there a function to find dupes in a list? 09:40:10 no 09:40:58 Find non genuine items? 09:47:09 ejs [n=eugen@nat.ironport.com] has joined #scheme 09:47:40 clhs remove-duplicates 09:47:40 http://www.lispworks.com/reference/HyperSpec/Body/f_rm_dup.htm 09:48:33 there is delete-duplicates in SRFI 1 09:49:44 (oops, wrong window :)) 10:01:02 -!- QinGW [n=wangqing@203.86.89.226] has quit [Read error: 104 (Connection reset by peer)] 10:04:13 hotblack23 [n=jh@p5B0551FD.dip.t-dialin.net] has joined #scheme 10:35:56 jeapostrophe [n=jay@69.169.141.110] has joined #scheme 10:49:00 ormandj [n=ormandj@cpe-72-177-239-168.satx.res.rr.com] has joined #scheme 10:49:08 -!- ormandj [n=ormandj@cpe-72-177-239-168.satx.res.rr.com] has left #scheme 11:01:08 alaricsp [n=alaricsp@217.205.201.45] has joined #scheme 11:13:52 -!- saccade_ [n=saccade@65-78-24-131.c3-0.smr-ubr1.sbo-smr.ma.cable.rcn.com] has quit [Read error: 110 (Connection timed out)] 11:15:33 -!- Sveklo1 [n=sveklo1@a88-115-8-123.elisa-laajakaista.fi] has quit [Remote closed the connection] 11:24:01 steiger_ [n=steiger@189.105.114.204] has joined #scheme 11:27:45 Jafet1 [n=Jafet@unaffiliated/jafet] has joined #scheme 11:28:12 -!- mornfall [n=mornfall@kde/developer/mornfall] has quit [Read error: 104 (Connection reset by peer)] 11:28:18 -!- Jafet [n=Jafet@unaffiliated/jafet] has quit [Read error: 110 (Connection timed out)] 11:28:26 -!- Jafet1 is now known as jafet 11:32:36 mornfall [n=mornfall@anna.fi.muni.cz] has joined #scheme 11:39:06 Sveklo1 [n=sveklo1@a88-115-8-123.elisa-laajakaista.fi] has joined #scheme 11:40:49 const_ptr [n=Staave@net134.186.188-231.dynamic.omskdom.ru] has joined #scheme 11:41:37 -!- const_ptr [n=Staave@net134.186.188-231.dynamic.omskdom.ru] has left #scheme 11:41:46 -!- steiger__ [n=steiger@189.105.114.204] has quit [Read error: 110 (Connection timed out)] 11:50:39 can anyone tell me why a macro wont expand if its in the clause of a case-lambda? 11:50:51 example: (define-syntax zero (syntax-rules () [(_) (() #f)])) 11:51:07 (case-lambda (zero)) <== fails 11:52:12 -!- mornfall [n=mornfall@kde/developer/mornfall] has quit [Read error: 60 (Operation timed out)] 11:55:58 masm [n=masm@bl7-198-59.dsl.telepac.pt] has joined #scheme 12:00:55 Dawgmatix [n=dawgmati@c-68-32-44-191.hsd1.nj.comcast.net] has joined #scheme 12:06:31 leppie: uh... (case-lambda (zero)) -> (lambda zero) 12:06:44 -!- rstandy [n=rastandy@net-93-144-48-217.t2.dsl.vodafone.it] has quit [Read error: 110 (Connection timed out)] 12:06:59 i think I understand why, it's just I never come across that 12:07:34 What would you expect (lambda (zero)) to do? 12:07:59 hoping zero would expand before lambda would get it :p 12:09:16 i was probably approaching the problem wrong 12:09:44 anyways, I got it working like I wanted in another way :) 12:10:14 lisppaste, url 12:10:15 To use the lisppaste bot, visit http://paste.lisp.org/new/scheme and enter your paste. 12:11:01 leppie pasted "generating clauses" at http://paste.lisp.org/display/87638 12:25:58 mornfall [n=mornfall@anna.fi.muni.cz] has joined #scheme 12:31:34 mario-goulart [n=user@67.205.85.241] has joined #scheme 12:41:16 MrFahrenheit [n=RageOfTh@users-38-223.vinet.ba] has joined #scheme 12:44:57 davazp [n=user@56.Red-79-153-148.dynamicIP.rima-tde.net] has joined #scheme 12:46:57 -!- mornfall [n=mornfall@kde/developer/mornfall] has quit [Read error: 110 (Connection timed out)] 12:47:31 -!- pfo [n=pfo@chello084114049188.14.vie.surfer.at] has quit [SendQ exceeded] 12:49:15 annodomini [n=lambda@c-75-69-96-104.hsd1.nh.comcast.net] has joined #scheme 12:54:45 mornfall [n=mornfall@anna.fi.muni.cz] has joined #scheme 13:03:23 -!- mornfall [n=mornfall@kde/developer/mornfall] has quit [Read error: 60 (Operation timed out)] 13:05:05 -!- Dawgmatix [n=dawgmati@c-68-32-44-191.hsd1.nj.comcast.net] has quit [] 13:11:11 cornucopic [n=r00t@202.3.77.134] has joined #scheme 13:13:44 -!- Fufie [n=poff@Gatekeeper.vizrt.com] has quit ["Leaving"] 13:14:01 -!- masm [n=masm@bl7-198-59.dsl.telepac.pt] has quit ["Leaving."] 13:14:29 -!- annodomini [n=lambda@wikipedia/lambda] has quit [] 13:17:26 -!- jeapostrophe [n=jay@69.169.141.110] has quit [] 13:20:23 -!- Sveklo1 [n=sveklo1@a88-115-8-123.elisa-laajakaista.fi] has quit [Remote closed the connection] 13:30:10 mornfall [n=mornfall@anna.fi.muni.cz] has joined #scheme 13:34:07 annodomini [n=lambda@64.30.3.122] has joined #scheme 13:35:17 C-Keen [i=ckeen@pestilenz.org] has joined #scheme 13:36:52 samth [n=samth@nomad.ccs.neu.edu] has joined #scheme 13:38:33 -!- davazp [n=user@56.Red-79-153-148.dynamicIP.rima-tde.net] has quit [Remote closed the connection] 13:39:31 blackened` [n=blackene@ip-89-102-28-224.karneval.cz] has joined #scheme 13:42:52 -!- annodomini [n=lambda@wikipedia/lambda] has quit [] 13:52:51 -!- mornfall [n=mornfall@kde/developer/mornfall] has quit [Read error: 104 (Connection reset by peer)] 13:54:30 mornfall [n=mornfall@anna.fi.muni.cz] has joined #scheme 13:55:06 Sveklo1 [n=sveklo1@a88-115-8-123.elisa-laajakaista.fi] has joined #scheme 13:59:57 -!- steiger_ [n=steiger@189.105.114.204] has quit ["Lost terminal"] 14:02:29 annodomini [n=lambda@130.189.179.215] has joined #scheme 14:05:30 langmartin [n=user@exeuntcha.tva.gov] has joined #scheme 14:07:09 luz [n=davids@139.82.89.70] has joined #scheme 14:12:17 -!- jafet [n=Jafet@unaffiliated/jafet] has quit [Remote closed the connection] 14:14:04 -!- foof` is now known as foof 14:20:23 ventonegro [n=alex@li17-123.members.linode.com] has joined #scheme 14:26:25 masm [n=masm@bl7-39-1.dsl.telepac.pt] has joined #scheme 14:33:00 -!- jrtayloriv [n=jrt4@cpe-69-205-162-163.stny.res.rr.com] has quit ["Leaving"] 14:34:57 ejs1 [n=eugen@77.222.151.102] has joined #scheme 14:39:50 -!- mornfall [n=mornfall@kde/developer/mornfall] has quit [Read error: 104 (Connection reset by peer)] 14:41:55 -!- ejs1 [n=eugen@77.222.151.102] has quit ["This computer has gone to sleep"] 14:45:00 -!- ejs [n=eugen@nat.ironport.com] has quit [Read error: 110 (Connection timed out)] 14:46:25 -!- ASau [n=user@smtp.hosting.microtest.ru] has quit ["off"] 14:47:43 Dawgmatix [n=dawgmati@c-68-32-44-191.hsd1.nj.comcast.net] has joined #scheme 14:48:15 kmurph79 [n=kmurph79@ip98-185-210-202.sb.sd.cox.net] has joined #scheme 14:48:23 morn|eri [n=mornfall@ip-89-103-110-62.karneval.cz] has joined #scheme 14:49:50 -!- kmurph79 [n=kmurph79@ip98-185-210-202.sb.sd.cox.net] has quit [Client Quit] 14:52:27 davazp [n=user@79.153.148.56] has joined #scheme 14:53:54 -!- morn|eri [n=mornfall@ip-89-103-110-62.karneval.cz] has quit [Client Quit] 15:00:17 ejs [n=eugen@213-2-135-95.pool.ukrtel.net] has joined #scheme 15:05:49 jrtayloriv [n=jrt4@cpe-69-205-162-163.stny.res.rr.com] has joined #scheme 15:11:03 -!- mario-goulart [n=user@67.205.85.241] has quit [Remote closed the connection] 15:11:41 -!- Dawgmatix [n=dawgmati@c-68-32-44-191.hsd1.nj.comcast.net] has quit [] 15:24:29 mornfall [n=mornfall@anna.fi.muni.cz] has joined #scheme 15:26:04 -!- jay-mccarthy is now known as mflatt 15:26:23 -!- mflatt is now known as jay-mccarthy 15:30:31 patmaddox [n=patmaddo@ip68-111-70-47.oc.oc.cox.net] has joined #scheme 15:38:46 -!- chylli [n=lchangyi@119.181.6.48] has left #scheme 15:40:21 reprore [n=reprore@ntkngw598092.kngw.nt.ftth.ppp.infoweb.ne.jp] has joined #scheme 15:42:21 -!- langmartin [n=user@exeuntcha.tva.gov] has quit [Remote closed the connection] 15:43:47 -!- ada2358_ is now known as ada2358 15:44:25 jonrafkind [n=jon@crystalis.cs.utah.edu] has joined #scheme 15:46:46 sepult [n=levgue@xdsl-87-78-120-210.netcologne.de] has joined #scheme 15:53:33 -!- mmc [n=mima@esprx02x.nokia.com] has quit [Remote closed the connection] 15:54:28 Jafet [n=Jafet@unaffiliated/jafet] has joined #scheme 15:55:50 bweaver [n=user@24-247-129-155.dhcp.trcy.mi.charter.com] has joined #scheme 15:56:06 ejs1 [n=eugen@213-2-135-95.pool.ukrtel.net] has joined #scheme 15:57:40 -!- MrFahrenheit [n=RageOfTh@users-38-223.vinet.ba] has quit [Read error: 104 (Connection reset by peer)] 15:57:54 MrFahrenheit [n=RageOfTh@users-38-223.vinet.ba] has joined #scheme 15:59:59 RageOfThou [n=RageOfTh@users-38-223.vinet.ba] has joined #scheme 16:00:34 -!- ejs [n=eugen@213-2-135-95.pool.ukrtel.net] has quit [Read error: 60 (Operation timed out)] 16:07:28 Fufie [n=innocent@86.80-203-225.nextgentel.com] has joined #scheme 16:11:50 langmartin [n=user@152.85.133.62] has joined #scheme 16:13:19 -!- davazp [n=user@79.153.148.56] has quit [Remote closed the connection] 16:15:01 Hey, where's incubot? 16:15:24 on strike! 16:15:33 D-: 16:15:35 protesting bad bot conditions 16:16:16 netsplit madness! 16:18:15 -!- MrFahrenheit [n=RageOfTh@users-38-223.vinet.ba] has quit [Read error: 110 (Connection timed out)] 16:21:33 klutometis, incubot went on strike. Just thought I'd let you know. 16:22:05 sctb [n=sctb@S01060016cbc2d41a.cg.shawcable.net] has joined #scheme 16:23:22 Adman65 [n=Adman65@66.240.27.20] has joined #scheme 16:23:26 chandler, I think I have a simpler fix for (some of) MIT Scheme's hygiene. 16:25:52 can ayone gimme a hand with this? http://pastie.org/629153 , say's there is an unbound indent. in eval 16:26:21 You didn't tell EVAL what environment to use. EVAL takes two arguments. What happens when you pass only one is random. 16:26:34 ASau [n=user@83.69.227.32] has joined #scheme 16:26:52 oh 16:26:56 well oops 16:27:29 I think this IS a good example of a macro would do good 16:27:41 ente [i=52e2b3b0@unaffiliated/n0nsense] has joined #scheme 16:27:43 hi 16:27:44 of where a 16:27:49 did anyone here use scsh? 16:27:51 Yes, leppie. 16:28:01 ente, I have used scsh. 16:28:14 Riastradh: can you recommend it? it looks cool 16:28:17 *ente* compiles 16:28:37 but it does not seem to be actively developed 16:28:46 No, I can't recommend it. It had some good ideas. Perhaps it will become useful one day, but it has fallen into disrepair over the past few years. 16:28:50 proq [n=user@38.100.211.40] has joined #scheme 16:28:54 mflatt [n=mflatt@shunat236-8.shu.edu] has joined #scheme 16:29:52 sad 16:29:58 Riastradh: can you guide me? Im a scheme noob. Getting: compile: unbound identifier (and no #%app syntax transformer is bound)" 16:30:20 No, leppie, on second thought, a macro is not appropriate here. 16:30:41 Adman65, sorry, you'll have to show what code is causing that error to be reported. 16:30:50 k, updating pastie 16:31:22 is this not emulating GUARD? 16:31:48 -!- mflatt [n=mflatt@shunat236-8.shu.edu] has quit [Client Quit] 16:32:04 Riastradh: its in the pastie 16:32:11 GUARD is a binding and conditional construct. This just runs some code in some dynamic environment. 16:32:31 mflatt [n=mflatt@shunat236-8.shu.edu] has joined #scheme 16:32:32 You still haven't passed two arguments to EVAL, Adman65. But anyway, why do you want to use EVAL? 16:32:40 according to this: http://download.plt-scheme.org/doc/4.2/html/reference/Evaluation_and_Compilation.html#(def._((quote._~23~25kernel)._eval)) does that mean namespace is assumed to be current-namespace ? 16:32:42 -rudybot:#scheme- http://tinyurl.com/ydauojv 16:32:50 Why not (run-protected (lambda () (+ 5 5))), and (define (run-protected procedure) ... (list (procedure) '()) ...)? 16:33:17 -!- mflatt [n=mflatt@shunat236-8.shu.edu] has quit [Client Quit] 16:33:27 this is the assignment 16:33:35 What is the assignment? 16:34:19 to eval something, if there is an error return (list "" exn) if not ( result-from-eval "") 16:34:32 second one is supposed to be a list 16:34:48 String?? 16:35:04 Are you sure that's your assignment? Can you point me to its description? 16:35:15 oh, the "" should be an empty list 16:36:00 -!- zbigniew_ is now known as zbigniew 16:36:12 -!- ejs1 [n=eugen@213-2-135-95.pool.ukrtel.net] has quit ["This computer has gone to sleep"] 16:37:10 http://cs.sjsu.edu/~martin/152.html, hw2 16:37:23 -!- ASau [n=user@83.69.227.32] has quit [Remote closed the connection] 16:37:41 ASau [n=user@83.69.227.32] has joined #scheme 16:38:43 All I get is a big obnoxious red page saying `This page requires JavaScript to function properly. If you are using Microsoft Internet Explorer you may need to click on the yellow bar above and select ``Allow Blocked Content''. You must then click ``Yes'' on the following security warning.' 16:38:52 lol 16:38:56 ya its javascript only 16:39:03 Well, that's stupid. 16:39:21 http://pastie.org/629169 16:39:24 there is the description 16:40:04 Good grief. 16:40:08 I hope you're not paying money for this class. 16:40:12 In PLT Scheme, there's a method print-cookie (in net/cookie) that turns a cookie object into a string. Is there an inverse function that takes the string description of a cookie (as it's passed in the HTTP headers) and creates the cookie object for it? 16:41:09 `By doing the exercise(s) outlined in this assignment, a student should...demonstrate their ability to code in two functional programming languages, Scheme and JavaScript.' 16:41:13 *Riastradh* blinks. 16:41:29 kmurph79_ [n=kmurph79@ip98-185-210-202.sb.sd.cox.net] has joined #scheme 16:41:37 -!- Adman65 [n=Adman65@66.240.27.20] has quit [] 16:41:49 ... 16:42:37 :O 16:43:19 nothere: That wouldn't make sense; the other information in the cookie object isn't passed back from the client to the server. 16:43:51 nothere: There are procedures `get-cookie' and `get-cookie/single' which return the value(s) associated with the cookie of that name. 16:44:15 offby1` [n=user@q-static-138-125.avvanta.com] has joined #scheme 16:44:37 I feel kind of bad for Adman65 now. 16:44:46 Adman65 [n=Adman65@66-240-27-20.isp.comcastbusiness.net] has joined #scheme 16:45:39 chandler: what if I'm writing code for the client side? I can see how the server doesn't need to construct a cookie object from full information (since the client side only gives it name=value) but if I'm writing a client, shouldn't I be able to grab a cookie and store it from the full description given to me by the server? 16:45:52 rudybot_ [n=luser@q-static-138-125.avvanta.com] has joined #scheme 16:46:01 Ooh, a doctorate from Other US Institution 16:46:14 ejs [n=eugen@88-252-124-91.pool.ukrtel.net] has joined #scheme 16:46:30 nothere: Oh, I don't think there is a procedure supplied for that. 16:49:59 -!- Adman65 [n=Adman65@66-240-27-20.isp.comcastbusiness.net] has quit [] 16:51:30 `Although many Scheme environments allow dotted pairs on input, if yours doesn't you can always use (cons 4 5) to create a cons cell pair on input.' 16:52:19 dstorrs` [n=user@cpe-98-14-187-196.nyc.res.rr.com] has joined #scheme 16:53:14 `For comparison, here are some Ruby examples illustrating tail recursion: int fact(int i) { if (i == 1) then return 1; else int tmp := fact(i-1); tmp := tmp * i; return tmp; endif }' Gee, that's not any Ruby syntax that I'm familiar with... 16:54:00 ... that's not any tail recursion I'm familiar with either! 16:54:02 oh my 16:54:03 Wow. 16:54:18 "By installing Java, you will be able to experience the power of Java" 16:54:50 That's OK, chandler. It's followed by: 16:55:21 `Rewritten using ``result'' accumulator (or CPS): def fact(i) return fact_iter(i, 1); end def fact_iter(i, result) ....' 16:55:24 CPS, you see. 16:55:43 o.O 16:56:00 that one is actually ruby, at least 16:56:45 `CPS - continuation passing style, main idea: forces all calls to be tail recursive.... May require introducing extra loop variables (args for the recursive call). Can always rewrite using CPS. Tail recursion is easily optimized into while loop.' 16:57:51 Adman65 [n=Adman65@66.240.27.20] has joined #scheme 16:58:17 -!- offby1 [n=user@q-static-138-125.avvanta.com] has quit [Read error: 110 (Connection timed out)] 16:58:20 sounds awesome 16:58:34 Adman65, please tell me that you aren't paying money for this course. 16:59:08 -!- rudybot [n=luser@q-static-138-125.avvanta.com] has quit [Read error: 113 (No route to host)] 17:00:15 -!- jonrafkind [n=jon@crystalis.cs.utah.edu] has quit [Read error: 113 (No route to host)] 17:02:10 -!- attila_lendvai [n=ati@catv-89-134-66-153.catv.broadband.hu] has quit [Read error: 110 (Connection timed out)] 17:02:11 Adman65: do you have #lang scheme at the top of your Scheme source file? 17:02:13 * Competency with CONS, CAR, CDR 17:02:17 ya 17:03:08 What are you passing to `eval' as its second argument? 17:03:35 "By doing this exercise, you will learn how to catch exceptions in two languages." 17:03:49 ^ What it should say. 17:04:21 Fulfilling meaningless orders is a valuable life skill. 17:05:02 "By the end of this exercise, you will be swearing in two languages" 17:05:47 there is a javscript portion that i've already done 17:06:47 i tried passing (current-namespace) but got the same thing 17:06:53 -!- Sveklo1 [n=sveklo1@a88-115-8-123.elisa-laajakaista.fi] has quit ["Leaving..."] 17:07:43 hijo de saloppe? 17:08:01 -!- Adman65 [n=Adman65@66.240.27.20] has quit [] 17:08:16 I hope he didn't take that personally :( 17:08:28 Er... 17:08:46 Oh, replying to zbigniew. 17:08:49 I was confused for a minute there! 17:08:58 yeah, sorry! 17:09:05 *copumpkin* washes his mouth out with soap 17:09:27 Now invoke your continuation to the back of the queue, copumpkin. You've been naughty. 17:09:35 :( 17:10:28 rudybot_: init 17:10:30 Daemmerung: your sandbox is ready 17:11:13 (my drscheme.exe ist nun kaputt) 17:11:28 rudybot_: eval (eval '(+ 1 2) (current-namespace)) 17:11:29 Daemmerung: ; Value: 3 17:27:06 mmc [n=mima@cs27122078.pp.htv.fi] has joined #scheme 17:28:34 mrsolo [n=mrsolo@nat/yahoo/x-fugrybpbuoiatmem] has joined #scheme 17:29:02 -!- kmurph79_ [n=kmurph79@ip98-185-210-202.sb.sd.cox.net] has quit [] 17:34:40 -!- Adamant [n=Adamant@unaffiliated/adamant] has quit [Read error: 104 (Connection reset by peer)] 17:34:55 Adamant [n=Adamant@unaffiliated/adamant] has joined #scheme 17:35:06 -!- Jafet [n=Jafet@unaffiliated/jafet] has quit ["Leaving."] 17:39:15 kmurph79 [n=kmurph79@ip98-185-210-202.sb.sd.cox.net] has joined #scheme 17:39:29 -!- kmurph79 [n=kmurph79@ip98-185-210-202.sb.sd.cox.net] has quit [Client Quit] 17:52:02 how are you supposed to open an output port for an existing file in r6rs scheme? 17:52:41 Summermute [n=scott@c-68-34-67-216.hsd1.dc.comcast.net] has joined #scheme 17:52:46 open-file-output-port 17:53:21 (file-options no-create) i think 17:53:40 that will append 17:54:09 jedc: is that what you want? 17:54:34 yea, how do you use the file options? im getting an error with open-file-output-port if the file already exists 17:54:55 Where does the R6RS say that you can append to existing files, leppie? 17:55:05 jonrafkind [n=jon@crystalis.cs.utah.edu] has joined #scheme 17:55:29 -!- mmc [n=mima@cs27122078.pp.htv.fi] has quit [Read error: 110 (Connection timed out)] 17:57:18 hmmmm, it seems you are right Riastradh 17:57:43 I seem to recall one of the file-options doing that 17:57:58 (What impelled the R6RS authors to so thoroughly cover the file options with negatives, both in their names and in their descriptions? `no-create If the file does not already exist, it is not created... no-truncate If the file already exists and the exception with condition type &i/o-file-already-exists has been inhibited by inclusion of no-create or no-fail, the file is not truncated...' 17:58:06 ) 17:58:32 `no-fail If the file already exists, the exception with condition type &i/o-file-already-exists is not raised, even if no-create is not included...' 17:58:51 All this nonsense makes even Common Lisp look sensible! 17:59:51 i never use that stuff 17:59:53 In Common Lisp, you pass open the arguments :IF-EXISTS and :IF-DOES-NOT-EXIST . 18:00:27 I do: (when (file-exists? file) (delete-file file)) 18:00:41 For instance, to append to a file if it exists, or to create it if not: (open :direction :output :if-exists :append :if-does-not-exist :create) 18:00:49 That has a race condition, leppie. 18:01:29 only when you allow it to have one 18:01:36 If, for instance, you are implementing file locks, you really want this open operation to be atomic. 18:01:37 yea, but I want to keep the contents of the file and append to it 18:01:39 What? 18:01:46 the code runs in a single thread 18:01:52 why should i care? 18:01:57 jedc, sorry, I don't think the R6RS lets you do that. 18:02:06 gah :p 18:02:12 leppie, the file system is a resource usually shared between many processes. 18:04:23 -!- sepult [n=levgue@xdsl-87-78-120-210.netcologne.de] has quit [Remote closed the connection] 18:04:23 o well, I have never come across that, but i'll keep it in mind 18:04:30 -!- ventonegro [n=alex@li17-123.members.linode.com] has quit ["leaving"] 18:04:49 minion: memo for jcowan: If the next Scheme report has file I/O, please make the operation to open files sensible like in Common Lisp, not brain-damaged like in the R6RS. 18:04:50 Remembered. I'll tell jcowan when he/she/it next speaks. 18:05:17 Even Windows had multiple processes, last I knew, which all had access to the file system. 18:07:50 what are the file-options you mentioned? 18:10:49 sepult [n=levgue@xdsl-87-78-120-210.netcologne.de] has joined #scheme 18:12:14 -!- sctb [n=sctb@S01060016cbc2d41a.cg.shawcable.net] has quit [Remote closed the connection] 18:13:20 sctb [n=sctb@S01060016cbc2d41a.cg.shawcable.net] has joined #scheme 18:13:33 leppie: as to why this patters, consider the following: (define (update password-file lines) (when (pword-file-exists) (delete pword-file)) (let p ((open-pword-file-or-error)) (for l in lines (write-line p)))) 18:13:37 -!- MichaelRaskin [n=MichaelR@213.171.48.239] has quit [Read error: 110 (Connection timed out)] 18:13:42 s/patters/matters/ 18:14:10 this is a trusted program that deletes your password file if it exists and replaces it with a new version using lines generated elsewhere. 18:14:24 ok 18:14:32 Do you see the potential attack? 18:15:04 yes, but i dont see any attacker! 18:15:17 the attacker is a malicious user on the system. 18:15:24 where?? 18:16:15 It's a multi-user system, and you're trying to store a temporary file in /tmp. 18:16:37 no, i run windows, im the only user 18:17:44 That's fine if you're writing code only for yourself. 18:17:56 exactly 18:17:57 ok. Is it possible that someday, there will be a "guest" account on your machine? Or that a piece of malware will install itself? Or that you will be working on a different machine, that IS multi-user? 18:18:13 sepult` [n=levgue@xdsl-87-78-173-236.netcologne.de] has joined #scheme 18:18:27 i also understand that more considerations need to be taken in a shared resource environment 18:18:30 -!- sepult` [n=levgue@xdsl-87-78-173-236.netcologne.de] has quit [Remote closed the connection] 18:18:32 if any of those conditions might apply, then this is the kind of thing you want to get used to thinking about. 18:19:02 -!- dstorrs` is now known as dstorrs 18:19:07 And the R6RS doesn't give you any way to deal with this. 18:19:21 Sorry, that's not quite right. 18:19:35 well thats rather implementation dependent 18:19:39 The R5RS doesn't; the R6RS is just confusing. 18:19:54 What is? Opening files?? 18:20:12 implementations can extend file-options 18:20:55 Before it should be extended, it should be clear what it's doing. 18:21:59 thats true 18:24:25 What the R6RS doesn't give you is a convenient way to optionally open a file without bringing in the machinery of the condition system. 18:25:12 sepult` [n=levgue@xdsl-87-78-173-236.netcologne.de] has joined #scheme 18:27:05 -!- sepult [n=levgue@xdsl-87-78-120-210.netcologne.de] has quit [Nick collision from services.] 18:27:09 -!- sepult` is now known as sepult 18:31:58 what do you think should happen if opening a file produces an error? 18:32:10 Hmm? 18:38:42 What the R6RS doesn't give you is a convenient way to optionally open a file without bringing in the machinery of the condition system. 18:41:06 -!- RageOfThou [n=RageOfTh@users-38-223.vinet.ba] has quit [Read error: 104 (Connection reset by peer)] 18:41:23 RageOfThou [n=RageOfTh@users-38-223.vinet.ba] has joined #scheme 18:47:19 albacker [n=eni@unaffiliated/enyx] has joined #scheme 18:48:48 -!- mreggen [n=mreggen@cm-84.215.28.167.getinternet.no] has quit ["leaving"] 18:48:57 ve [n=a@94-193-95-252.zone7.bethere.co.uk] has joined #scheme 18:54:06 -!- alaricsp [n=alaricsp@217.205.201.45] has quit ["Leaving."] 18:54:42 Adman65 [n=Adman65@m4e0436d0.tmodns.net] has joined #scheme 18:54:46 hello again 18:55:38 patmaddo_ [n=patmaddo@ip68-111-70-47.oc.oc.cox.net] has joined #scheme 18:56:00 back to that eval thing. How do I decide what second argument to pass to eval? 19:00:54 -!- patmaddox [n=patmaddo@ip68-111-70-47.oc.oc.cox.net] has quit [Read error: 110 (Connection timed out)] 19:01:27 http://pastie.org/629379 19:03:14 -!- patmaddo_ is now known as patmaddox 19:04:49 attila_lendvai [n=ati@catv-89-134-66-153.catv.broadband.hu] has joined #scheme 19:07:17 optimizer [n=x@unaffiliated/lowlycoder] has joined #scheme 19:08:27 rcy [n=rcy@S01060013464aedc3.vc.shawcable.net] has joined #scheme 19:08:37 Fare [n=Fare@ita4fw1.itasoftware.com] has joined #scheme 19:11:32 dstorrs: Can you enlighten me as to how the code you pasted is a security risk? 19:12:40 If the file you are deleting and recreating is not in a public-write area, it seems fine to me. 19:13:53 -!- optimizer [n=x@unaffiliated/lowlycoder] has quit ["Lost terminal"] 19:17:23 glogic1 [n=glogic@97.76.48.98] has joined #scheme 19:19:24 Screw the security issue, imagine what happens if your program crashes while the new password file is incomplete 19:19:55 Well, there are lots of issues with that whole operation. 19:20:02 zbigniew: That's a separate issue. 19:20:37 All I mentioned was the race condition: after FILE-EXISTS? answers true, it may cease to be true before you do anything else with the pathname; after DELETE-FILE returns, the file may be recreated before you open it. 19:20:42 kmurph79 [n=kmurph79@ip98-185-210-202.sb.sd.cox.net] has joined #scheme 19:20:45 glogic2 [n=glogic@97.76.48.98] has joined #scheme 19:21:21 optimizer [n=x@unaffiliated/lowlycoder] has joined #scheme 19:21:22 Yes, there are multiple problems with that code 19:23:41 Adman65_ [n=Adman65@m3e0436d0.tmodns.net] has joined #scheme 19:23:43 how do I write the following using syntax-rules (I need **stack to hit the lexical scope of where the macro is defined) 19:23:50 (define-macro (exec-in-stack . commands) 19:23:51 `(parameterize ((**stack '())) 19:23:51 ,commands)) 19:24:02 Really, there should be a type called `file' corresponding with file descriptors, which OPEN-FILE yields, and from which one can create octet sources and octet sinks. 19:24:30 Riastradh: give me a reading list for learning syntax rules 19:24:39 given that I already know define-macro and scheme 19:24:55 optimizer, I still don't understand what you're trying to accomplish with your whole stack fascination, but probably you want to put at the top level: (define *stack* (make-parameter '())) (define (with-empty-stack procedure) (parametrize ((*stack* '())) (procedure))) 19:25:31 stacks work well with command based interfaces 19:25:38 like vim, where each key stroke gets mapped to a function 19:26:17 s/parametrize/parameterize/ though 19:27:06 Riastradh: give me a cookie 19:27:09 `Parameterize' sounds silly. It also doesn't match with `metrize', as in metrizable topological spaces. 19:27:36 metrizable, you jane 19:27:42 -!- Adman65_ is now known as Adman65|sj 19:29:59 -!- glogic2 [n=glogic@97.76.48.98] has quit ["Leaving."] 19:31:00 glogic2 [n=glogic@97.76.48.98] has joined #scheme 19:35:53 saccade_ [n=saccade@65-78-24-131.c3-0.smr-ubr1.sbo-smr.ma.cable.rcn.com] has joined #scheme 19:36:53 -!- glogic1 [n=glogic@97.76.48.98] has quit [Read error: 110 (Connection timed out)] 19:37:04 -!- glogic2 [n=glogic@97.76.48.98] has quit ["Leaving."] 19:38:24 glogic [n=glogic@97.76.48.98] has joined #scheme 19:40:45 -!- ejs [n=eugen@88-252-124-91.pool.ukrtel.net] has quit ["This computer has gone to sleep"] 19:41:54 -!- Adman65 [n=Adman65@m4e0436d0.tmodns.net] has quit [Read error: 104 (Connection reset by peer)] 19:48:05 -!- jao [n=jao@88.6.168.75] has quit [Remote closed the connection] 19:50:49 glogic1 [n=glogic@32.179.55.254] has joined #scheme 19:53:45 Adman65|sj: you need to give PLT's `eval' a second argument of `(make-base-namespace)' when using it in compiled code, which is what you are doing when loading a file preceding with #lang scheme (as opposed to typing interactively into mzscheme or the drscheme lower pane). You should not have to know that. 19:54:14 rudybot_: eval (eval '(+ 1 2) (make-base-namespace)) 19:54:15 Daemmerung: ; Value: 3 19:54:22 ok 19:54:26 thank you 19:54:36 rudybot_: + 1 2 19:54:37 ente: eh? Try "rudybot_: help". 19:54:47 rudybot_: eval (+ 1 2) 19:54:48 ente: your sandbox is ready 19:54:48 ente: ; Value: 3 19:54:54 nice 19:57:12 Note that rudybot won't show the problem that Adman65|sj was encountering. 20:01:00 glogic2 [n=glogic@97.76.48.98] has joined #scheme 20:04:39 -!- blackened` [n=blackene@ip-89-102-28-224.karneval.cz] has quit [] 20:05:12 Daemmerung: actually, it looks like it did. When you gave it a base-namespace, it immediately gave the return value. When you didn't, you got two messages, implying that it did the make-base-namespace call on its own before processing your code 20:07:04 rudybot_: eval (eval '(+ 1 2)) 20:07:05 samth: your sandbox is ready 20:07:05 samth: ; Value: 3 20:07:34 the difference is, in a module, the value of `current-namespace' is an empty namespace 20:07:59 at the repl, which is where rudybot_ operates, the value of `current-namespace' is what you get from (make-base-namespace) 20:08:18 -!- glogic [n=glogic@97.76.48.98] has quit [Read error: 110 (Connection timed out)] 20:08:28 -!- glogic2 is now known as glogic 20:08:33 samth: the deal is, the OQ got this assignment in a basic programming class. 20:08:35 *Daemmerung* spits 20:08:48 OQ? 20:09:06 original querent. Sorry. 20:09:08 -!- reprore [n=reprore@ntkngw598092.kngw.nt.ftth.ppp.infoweb.ne.jp] has quit [Remote closed the connection] 20:09:14 Not to be confused with O.G. 20:09:14 CURRENT-NAMESPACE is a somewhat confusing name for it. The R5RS's choice of name INTERACTION-ENVIRONMENT, rather than CURRENT-ENVIRONMENT, more clearly reflects that it is intended to be associated with interaction such as a REPL or M-: or something, not that it is related to the `current environment' where it is used. 20:09:20 or QQ 20:09:23 original quangsta 20:09:51 current is just the plt convention for naming dynamic parameters 20:10:07 I know, samth, but it's still confusing. 20:10:11 and namespace and interaction-environment mean roughly the same thing 20:10:13 glogic, qq? 20:10:23 QQ :`( 20:10:27 zeroish [n=zeroish@135.207.174.50] has joined #scheme 20:10:57 Riastradh: those are doing two totally different operations 20:11:01 I think that's supposed to be mascara running. 20:11:04 current-interaction-environment ? 20:11:21 (gah) 20:11:22 `interaction-environment' gets an environment that's the one from the current set of interactions 20:11:47 whereas `current-namespace' is just the value of the parameter that `eval' uses by default 20:12:08 -!- saccade_ [n=saccade@65-78-24-131.c3-0.smr-ubr1.sbo-smr.ma.cable.rcn.com] has quit ["This computer has gone to sleep"] 20:12:22 if you were combining them, you'd want to set `current-namespace' to the value of (interaction-environment) 20:12:42 Sure. But what does the `current namespace' come from, when there's no interaction involved? 20:13:09 it's just one of many parameters that has an initial value 20:13:16 just like `current-output-port' 20:13:46 Right, but the initial value of CURRENT-OUTPUT-PORT (as far as most programs can observe) is usually useful and associated with something meaningful (the operating system's notion of standard output). 20:14:15 right, and at the repl, the initial value of `current-namespace' is the namespace that interaction at the repl is happening in 20:14:39 Sure -- but it's not clear that that ceases to be the case once you stop interacting at a REPL. 20:14:39 but inside a module, there isn't a useful value of `current-namespace' to start with 20:15:21 you could have it be the same inside a module, but then `eval' in a module would bear no neccessary relation to how code was evaluted that was just part of the module 20:15:28 By contrast, whether you build an executable program from some code, or run it at the REPL, the current output port is usually useful in an obvious way. The name `current namespace' doesn't warn you that its initial value is related to the REPL. 20:16:05 how would the name warn you? 20:16:12 It's EVAL. What do you want it to do? 20:17:40 If it were called INTERACTION-ENVIRONMENT (or, e.g., NEAREST-REPL/ENVIRONMENT, which is what MIT Scheme calls it), it would indicate that the program is referring to some property of REPL interaction -- which might change depending on whether you are entering the code interactively, whether the code is being run through a REPL, or whether it's being run some other way (e.g., in an executable program). 20:18:03 but it isn't just about repl interaction 20:18:09 it's for `eval' more generally 20:18:18 -!- Adman65|sj [n=Adman65@m3e0436d0.tmodns.net] has quit [] 20:18:38 I know -- but it's still confusing, especially to novices who call EVAL at the REPL and then try to use it elsewhere! Why doesn't EVAL just require a second argument? 20:19:14 having a default value for `eval' is quite useful 20:19:23 Useful for what? 20:19:32 almost all of the time, the second argument would be (current-namespace) 20:19:43 esp. at the repl 20:19:45 Not if CURRENT-NAMESPACE didn't exist. 20:20:07 then you would just want to recreate it as a user 20:20:24 I would? 20:20:26 also, how would `eval' at the repl work then? 20:21:11 would you not be able to `eval' code and have it affect subsequent repl interactions? 20:21:45 That would be my default expectation. 20:21:54 As we've observed, there is a difference of intent between the names INTERACTION-ENVIRONMENT and CURRENT-NAMESPACE. If there were an interaction environment, but no current namespace, then it would be clear to programs that use the `interaction environment' that they are relying on a resource specifically tied to interaction, to the REPL. If this is not what they want, they would have to specify what environment they mean -- and I can't imagine 20:22:12 cut off at "and I can't imagine" 20:22:24 chandler: that would be a big change from how repls work now 20:22:32 ...and I can't imagine why legitimate programs would just throw their arms in the air and say, `Dynamic environment, grant me a namespace!' 20:23:10 samth, of course I want (eval (interaction-environment)) to affect subsequent REPL interactions -- that's why I passed the interaction environment to EVAL. 20:24:15 But I'd rather tell novices that EVAL takes two arguments: it's not a magic procedure, and you have to procure an environment in which to evaluate the code; you can't just use `the current one' (here I mean the lexical environment of the code calling EVAL, which the `current namespace' almost always is not). 20:24:37 speaking of namespaces, environments, etc.... how does a chunk of code go about determining what platform it is running on? 20:24:37 To be honest, I have never seen a legitimate use of one-argument EVAL. 20:24:49 Riastradh: so your position is just that everyone should be more explicit about `eval' 20:24:49 there is a one argument eval? 20:24:56 which i think is pretty reasonable 20:25:06 but makes some things somewhat less convenient 20:25:08 glogic, in Common Lisp, yes; in PLT Scheme, yes; in the R5RS and the R6RS, no; in Scheme48, no; in MIT Scheme, no. 20:25:09 e.g., in order to know what epoch is being used for CURRENT-SECONDS 20:25:14 samth, what's less convenient? 20:25:36 if you have something which performs many operations on one namespace, you have to repeatedly supply it 20:25:46 rather than dynamically parameterizing 20:25:51 dstorrs: Well, you first have to determine if you are running on a Scheme that supports a mechanism for determining that, which means that you first need to check whether you are running on a Scheme that supports a mechanism for checking whether you are on a Scheme that supports a mechanism for determining the platform, which means... 20:25:55 If you have something which performs many operations on one X, you have to repeatedly supply it -- substitute your favourite data structure for X. 20:26:16 Dynamically parametrizing does much more than that, actually: it means that code you might not even be aware of will also get the same parameter. 20:26:18 dstorrs: If you are working with one specific implementation of Scheme, there may be a better answer. 20:26:21 for the same reason that it's useful to have `current-output-port', even though that isn't always the output port you want 20:26:22 (the same parametrization, that is) 20:26:38 (I'm not happy about CURRENT-OUTPUT-PORT either, by the way -- but it's less confusing than CURRENT-NAMESPACE.) 20:27:01 chandler: :> however, I'm writing the code. So, assume that I can guarantee it is PLT Scheme and I can guarantee the language, requires, etc. 20:27:10 (This is because CURRENT-OUTPUT-PORT doesn't appear to make programs break in bizarre ways once they move from the REPL to a module.) 20:27:25 s/This is because/It's less confusing because/1 20:27:51 if your position is just that dynamic parameterization is bad, that makes sense, but i don't think i'm willing to give up the expressiveness for the specificity 20:28:12 dstorrs: Did you look at the PLT documentation for `current-seconds'? 20:28:19 What useful ideas can you express with CURRENT-NAMESPACE that are difficult to express otherwise? 20:28:59 you can take complicated code that uses `eval', and put it off into its own namespace 20:29:11 for example, there's a sandbox library for plt that does this 20:29:17 as does drscheme itself 20:29:23 there's a paper about this 20:29:35 When I say `confusing', by the way, I don't just mean `hard to understand' like CWCC: I mean that it gives the simulacrum of working the way that someone might expect, sometimes, but at other times fails in ways that are likely to be opaque to those users whom it deceived into thinking that it worked to begin with. 20:29:36 Just passing a namespace to `eval' can't hardly be enough to act as a sandbox. 20:29:37 I do not expect referential transparency in uses of `eval'. I did, for some reason, expect that declaring a new module (module foo scheme ...) would parameterize eval's current-namespace to include the bindings of `scheme' (or `scheme/base' or whatever). But, hey, now I know. 20:30:03 http://www.ccs.neu.edu/scheme/pubs/icfp99-ffkf.pdf 20:30:26 -!- glogic1 [n=glogic@32.179.55.254] has quit [Connection timed out] 20:30:52 samth, sure, first-class namespaces/environments are useful, as are addressing security concerns through lexical scope. (Jonathan Rees wrote a PhD dissertation about that.) But you can express that without a CURRENT-NAMESPACE. 20:31:16 Daemmerung: if you want a namespace from the current module, you want `define-namespace-anchor' 20:31:30 blackened` [n=blackene@ip-89-102-28-224.karneval.cz] has joined #scheme 20:31:37 *Daemmerung* read up on that thang 20:32:03 chandler: yep. So, current-seconds gives you the time. But, if that time was generated on (e.g.) Windows and sent over the network to a machine that happened to be running Unix, they have different epochs. 20:32:06 Perhaps my PDF reader is just not clever enough, but it doesn't turn up a single occurrence of the word `namespace' in that paper, samth. 20:32:25 The recipient would need to know what platform the time generator was on in order to be able to understand it accurately. 20:32:31 dstorrs: Did you read the chapter on Time where `current-seconds' is documented? 20:33:10 chandler: are you talking about this page?: http://doc.plt-scheme.org/reference/time.html 20:33:13 In particular, did you read the documentation for the procedure that is (in my copy of the documentation) immediately following `current-seconds'? 20:33:16 Yes. 20:33:31 Ok, let me read it again. 20:33:39 Riastradh: you seem to be right 20:33:52 there's probably been a change in terminology in the last 10 years 20:33:56 jao [n=jao@75.Red-88-6-168.staticIP.rima-tde.net] has joined #scheme 20:34:21 I don't think the term `namespace' has changed in, well, eight years, anyway. 20:34:39 As a technical term of PLT Scheme, I mean. 20:34:48 dstorrs: You shouldn't need to determine your platform's epoch, but if for some reason you do, you should be able to figure out how to determine the epoch after reading the documentation for the first two procedures listed on that page. 20:35:07 samth, are namespace anchors mutable or immutable? 20:35:08 -!- albacker [n=eni@unaffiliated/enyx] has quit [Read error: 110 (Connection timed out)] 20:35:30 immutable 20:35:36 Hmmm. Can one go back from a date to a number of seconds from the local operating system's epoch? 20:35:57 ...ah, it's called FIND-SECONDS, not DATE->SECONDS. 20:36:20 Riastradh: i think that either eventspaces were playing the role of namespaces as well, or that they don't describe the protections offered by namespaces in that paper 20:36:22 so if I want to get a new anchor I need to (eval '(begin (define blah ...) (define-namespace-anchor new-anchor)) anchor) ? 20:36:42 Fare: what are you trying to do? 20:36:47 Riastradh: I think `find-seconds' could be submitted as evidence of poor procedure naming in PLT. I certainly didn't expect that procedure to have that name either. 20:37:08 samth: possibly unit-testing a defining-macro. 20:37:18 chandler, direct that toward Fare and samth, not toward me! 20:37:30 Riastradh: don't blame Fare 20:37:38 Blame? 20:37:39 but i agree, that's a pretty terrible name 20:37:50 but still direct that at me so I have arguments. 20:37:52 Fare raised the original point; this is the first concrete evidence that I've stumbled upon since then. 20:37:57 ah, yes 20:38:07 I meant `direct it toward Fare and samth because they were discussing it the other day, and he was searching for examples but didn't have many at the time.' 20:38:11 s/he/Fare/1 20:38:19 yes, makes sense 20:38:30 that's not so much inconsistent naming as stupid naming 20:38:52 although, i suppose that naming some things stupidly and some intelligently is inconsistent :) 20:38:58 did anyone here sexpr-parsing in perl? 20:39:03 Come on, "find" is a great verb. Right up there with "do stuff." 20:39:09 Incidentally, DATE-DISPLAY-FORMAT looks like a parameter, but doesn't follow the CURRENT- convention you mentioned earlier. 20:39:31 Riastradh: yes 20:39:34 ente, I think that jrtayloriv was talking about that earlier, but I could have mixed `Perl' up with one of the other languages with which it is so often grouped. 20:39:38 It's inconsistent in that a procedure for converting from thing A to thing B is called A->B, but the procedure that does the reverse is called FIND-A. 20:39:52 Fare, there you go: examples of stupid and inconsistent names. 20:39:54 Riastradh: like scheme? 20:39:57 :D 20:39:59 perhaps the conclusion here is that the whole `scheme/date' library is poorly designed 20:40:20 samth, of course, that's true of almost any date library you'll stumble across! 20:40:34 sadly, yes 20:40:45 Riastradh: point is, I want to use sexpr as format for a tcp-protocol 20:40:48 Well, it's not really anyone's fault but the loonies who came up with our calendar systems. 20:40:50 bleh 20:40:55 I submit that calendrical dates are poorly designed. 20:40:56 *ente* is talking n0nsense 20:41:38 ente: This seems like a bad idea. When designing protocols, it's almost always the case that variable-length data should be preceded by its length, not quoted. 20:41:40 mreggen [n=mreggen@cm-84.215.28.167.getinternet.no] has joined #scheme 20:42:15 chandler: ergh 20:42:24 that was not what I meant 20:42:33 as I said, I'm talking shit 20:42:49 chandler: I meant I want to use sexpr as format for information interchange 20:42:51 So MIT Scheme, for instance, just deals with specific protocols, not with a general time & date library: RFC (2)822 (mail), RFC RFC 2616 (HTTP), RFC 3339 (ISO 8601), XML-RPC (bastard variant of ISO 8601), for dates; and whatever the operating system provides for time. 20:42:56 instead of json or something 20:43:13 or xmlcrap 20:43:33 -!- attila_lendvai [n=ati@catv-89-134-66-153.catv.broadband.hu] has quit [Read error: 110 (Connection timed out)] 20:44:15 Is this intended to be edited by a human, and does it need to stay human-editable once stored or transmitted? 20:44:22 This means that there are half a bajillion procedures for parsing and unparsing dates, but they're all actually used in real protocols that other programs agree on. 20:44:38 Riastradh: What does it unparse dates to? 20:44:46 What format do you want, chandler? 20:45:26 RFC 850 (what I meant when I said 2616)? RFC 2822? RFC 3339? XML-RPC? 20:45:57 I think I meant parse, not unparse there. 20:46:21 chandler: ever read /Calendrical Calculations/? 20:46:38 Well, what format do you have, then? It parses all those, too (except RFC 850, it seems). 20:46:56 (Oh, it has a parser for that, but no exported procedure to invoke it.) 20:47:09 Riastradh: OK. I will skip the words "parse" and "unparse". How would I compare a date from a HTTP header against the current time? 20:47:28 chandler: I want it to be edited by human 20:47:35 or reviewed 20:47:37 plus 20:47:41 I don't like xml 20:48:01 Parse the RFC 850 date to obtain a decoded time, convert it to a universal time (number of seconds since some epoch), and compare it to what you get from (GET-UNIVERSAL-TIME). 20:48:14 are we talking about the same topic? o.io 20:48:31 sorry, I'm a bit confused and strange and blah 20:48:33 (As you can see, originally the time & date routines were copied from Common Lisp.) 20:48:54 ente, sorry, there are several different conversations going on here, of which the dominant one appears to be about time & date. 20:49:08 Riastradh: Yes; that's what I was trying to figure out. So it *does* have a date and time library, which is the same as the one that Common Lisp has, unless I'm misunderstanding what you mean by a date library. 20:49:30 Yes, you're right, chandler. 20:50:10 time and date is simple. just count seconds from 1970 ^^ 20:50:19 ente: Does the on-disk structure or in-transit structure need to be human editable? 20:50:30 chandler: wa? 20:50:43 You mentioned before that this was going to be used for data sent over TCP. 20:50:58 I'm half-asleep and braindead 20:51:06 Perhaps you should go to bed, ente. 20:51:11 Riastradh: nope 20:51:15 it's not even 00:00 20:51:35 (now we are back at date and time :D) 20:51:49 I would send a source code file that was written as S-expressions over TCP, but that would be data embedded in a protocol which used a tag-length-value encoding. S-expressions, like XML and JSON, are unsuitable for use as a network protocol. Quoting inevitably introduces bugs. 20:52:12 chandler: it's kind of source-code 20:52:23 my target is a lisp-subset 20:52:39 s/target/plan/ 20:52:40 MichaelRaskin [n=MichaelR@195.91.224.225] has joined #scheme 20:52:43 kind of rpc 20:53:42 Riastradh: since that paper didn't have what i thought it had, if you want a use of dynamically scoped namespaces, you should look at the sandbox library 20:53:43 http://docs.plt-scheme.org/reference/Sandboxed_Evaluation.html 20:55:58 -!- sctb [n=sctb@S01060016cbc2d41a.cg.shawcable.net] has quit [Read error: 60 (Operation timed out)] 20:56:53 ente: And on the other end, you're planning on parsing this with `read'? 20:58:01 chandler: with perl 20:58:20 there's a Data::SExpression module 20:58:24 samth, I still don't see any value to having a general `current namespace'. Neither MAKE-EVALUATOR not the evaluator it returns appears to use the current namespace. In fact, the only reference to the current namespace on that page is in conjunction with READ-EVAL-PRINT-LOOP, explaining what namespace the REPL uses when it calls EVAL. 20:58:34 ente: And is the use of a human-readable encoding here anything other than a waste of bytes in transit? 20:58:36 and a LISP::... module-collection 20:58:44 I'd first just code up an exact duplicate version of XML-RPC using s-expr's and the Lisp reader. It's a very simple, stable and nice data exchange protocol. 20:59:07 I hope you're not about to pass data from the network to the built-in READ procedure, Summermute. 20:59:08 chandler: zlib, and the user will maybe want to execute code 20:59:14 Riastradh: the sandbox also sandboxes uses of `eval' in the user code 20:59:34 ente: Why compress what wouldn't need to be compressed if you just used an efficient encoding in the first place? 20:59:39 Security concerns? 20:59:46 chandler: I will send text 21:00:08 Then compress the text. But it's probably not worth it for short sequences of text, so you'll want to be able to turn that on or off depending on the length of the sequence. 21:00:09 I want it to be both data type and rpc 21:00:49 yeah, will see 21:00:49 samth, sorry, can you clarify? You mean that it parametrizes CURRENT-EVAL or something? That it blocks invocation of some primitive INTERNAL-EVAL procedure or something? I still don't see what that has to do with having a general current namespace. 21:00:51 Summermute: Argh. No. Quoted formats like XML and S-expressions should *never* be used as network protocols. It was a horrible idea for XML-RPC; it would be a horrible idea if you swapped out XML for S-expressions. 21:01:28 I mean that `eval' inside the sandbox does the "right" thing 21:01:36 What's the `"right"' thing? 21:01:49 ente, Riastradh -- I was writing a Scheme compiler to target Parrot, not writing one in Perl. 21:02:00 it lets you access the things the sandbox allows, and not other things 21:02:15 ente, but you should look at this if you are interested in writing one in Perl -- http://billhails.net/Book/ 21:02:22 jrtayloriv, ah, that's why I made the association. 21:02:22 chandler: them's strong words :-) What do you see is the problem and the alternative? 21:02:28 ente: if you use READ, beware of DoS attacks involving the massive intern'ing of symbols... 21:02:58 (just saying) 21:03:06 samth, so would a lexical binding of the name EVAL whose value is a procedure that does the right thing. What does this have to do with the current namespace? 21:03:40 that wouldn't allow you to use `eval' with other namespaces 21:03:48 Huh? 21:03:51 jrtayloriv, there was this guy at the Lisp conference, said he had written a Lisp (Scheme?) interpreter in Perl to be able to hack rapidly on the platform imposed to him. 21:04:01 Fare: I will implement authentication 21:04:07 Summermute: I see the problem as bugs introduced by the use of quoted data in protocols, as well as pointless inefficiency caused by the use of formats designed as human-editable representations applied to network interchange of data. 21:04:19 jrtayloriv: thanks 21:04:29 Summermute: The solution is to not assume that you can debug any network problem with just `telnet'. 21:04:44 ente: a layer of ssh or ssl can help 21:04:45 So you'd favor stuff like XDR and ONC-RPC etc? 21:05:06 samth, let's imagine a world without any current namespace, and with two-argument EVAL. What do sandboxes do now which they would not be able to do in such a world? 21:05:34 Summermute: Yes, and except for the horrible lexical syntax, ASN.1. 21:05:46 chandler, surely you mean protocol buffers, in this day and age! 21:05:48 Riastradh: but still w/ `interaction-environment'? 21:05:59 I was JUST about to say ASN.1 as well !!! No kidding LOL 21:06:18 samth, sure. The sandbox is welcome to dynamically bind INTERACTION-ENVIRONMENT to something harmless, or to omit it from the lexical bindings available in code evaluated in the sandbox. 21:06:36 Riastradh: Of course, how could I forget the latest wheel reinvention to come out of the genuises at Google. 21:06:53 if we're dynamically binding `interaction-environment', then how is that different from `current-namespace'? 21:07:39 (*cough* ignore that typo) 21:07:58 samth, it seems that there is no difference, for the purposes of the sandbox. I was hoping you might be able to suggest what difference it might make, since you offered sandboxes as an example of the merit of a current namespace. 21:08:19 Riastradh: how about the networked-repl example from the sandbox documentation 21:08:42 su su stdio? 21:08:49 su su su 21:08:53 stdio? 21:08:55 samth, for the networked REPL, you'd pass a harmless environment to READ-EVAL-PRINT-LOOP, or bind INTERACTION-ENVIRONMENT to a harmless environment while calling it. 21:09:02 sudo make sandwich 21:09:07 chandler: yeah, I have no problems with binary formats. I suppose HTTP got the current generation all hopped up on text based data exchange. Oh, and if we recall just prior to '95 or '96 when the Web bloomed, we were all witnessing (or participating in) a CORBA meltdown. Kind of put many folks off any kind of IDL. 21:09:13 (I presume you mean the example just before 13.10.1.) 21:09:14 if `interaction-environment' is a dynamic variable, then (define (my-eval e) (eval e (interaction-environment))) 21:09:21 and you haven't changed anything 21:09:36 samth, sorry, who is defining MY-EVAL, when, where, and for what purpose? 21:09:41 -!- nowhere_man [n=pierre@nsg93-7-88-164-172-1.fbx.proxad.net] has quit [Read error: 60 (Operation timed out)] 21:09:55 Summermute: That is a perfect example of unwarranted extrapolation. CORBA is a mess because of what CORBA is. HTTP is a mess because of what HTTP is, and also because of the "text-based" (which is really binary pretending to be ASCII) protocol. 21:09:59 anyone can do it, provide it as a library, and nothing has changed about the language 21:10:15 glogic: that's how /I/ always hear that song 21:10:18 or you can provide r-eval that requires two arguments 21:10:38 chandler: In this case, it's not an issue of logic but of perception, marketing and behavior 21:10:40 samth, changing CURRENT-NAMESPACE to INTERACTION-ENVIRONMENT (or CURRENT-REPL-NAMESPACE, or whatnot) expresses a difference of intent that is not as likely to confuse novices. 21:10:41 peter_12 [n=peter_12@S0106001310475d12.vn.shawcable.net] has joined #scheme 21:11:07 samth, as does requiring two arguments in EVAL. 21:11:14 why are novices using `eval'? 21:11:24 By mistake. They shouldn't be, of course. 21:11:42 Summermute: Right. My perception is that most engineers would rather shoot themselves in the foot repeatedly rather than spend the time necessary to create tools that would enable them to do things better. I market my views aggressively, but I do not often succeed in changing behavior. 21:12:03 I have, however, seen many novices latch onto the idea that EVAL is the right solution for their problem, and it sort of works at the REPL, and why can't I just use it as is because it works right now and I don't know better? 21:12:16 chandler: keep fighting the good fight 21:12:28 chandler, no, they would rather shoot *each other* in the foot repeatedly. 21:12:45 Riastradh: in the world you're suggesting, novices just learn that (eval e (interaction-environment)) works 21:12:49 it is very likely that eval is the right solution in a small set of cases 21:12:51 Well, their aim is not so good. Many times they are aiming at each others' feet and shooting their own, and vice versa. 21:12:53 it's a coordination problem. 21:12:58 and then that breaks when they try to use it elsewhere 21:13:18 peter_12: yes, when you want to run arbitrary code 21:13:31 peter_12: but that doesn't happen nearly as often as people assume 21:13:37 that isn't the only time 21:13:52 It does not help when an instructor, who should know better, assigns 100-level programming students a task that explicitly requires `eval'. 21:14:00 samth, yes. But CURRENT-NAMESPACE is marketed as a general resource that supplies a default value for EVAL, when really it's a part of the REPL. 21:14:10 no, it isn't part of the repl 21:14:19 it's used by the repl 21:14:23 but it isn't just part of it 21:14:35 In all my days, I don't think I ever gave a single hoot about eval. For me, might as well have not existed (as a user level routine) 21:14:47 Can you show me how it is used except in conjunction with the REPL, samth? 21:15:20 s:how:where/when:1 21:15:39 Riastradh: http://svn.plt-scheme.org/plt/trunk/collects/tests/typed-scheme/unit-tests/typecheck-tests.ss 21:15:41 -rudybot_:#scheme- http://tinyurl.com/yaav6sa 21:15:47 search for current-namespace 21:16:00 chandler, hey, you know you can get the best of *all*three* worlds, ASN.1, XML, and compression, by gzipping XER-encoded ASN.1 objects! 21:16:19 got to go 21:16:21 XER? 21:16:29 samth, sorry, why don't you just pass the namespace as the second argument to EXPAND? 21:16:45 Summermute, XML Encoding Rules. Like DER and PER, but, um, XML. 21:17:23 For extra win, you can do this with an ASN.1 type that was generated from a XML Schema. 21:17:32 Summermute, see the Wikipedia article on ASN.1. XER is just too absurd for me to speak further on it. 21:17:38 Riastradh, and if you use LZW compression, you can send money to UNISYS too. 21:17:59 XER does have a use. Using the mapping specified in X.694 and a set of extensions to ASN.1, you can parse XML input and then re-encode it in something sensible (BER, PER, etc.) 21:18:54 So, if you're dealing with some brain-damaged specification that uses XML as a wire protocol, you can get an information-preserving conversion to ASN.1 for internal network use, and then marshal back to XML at the protocol boundary. 21:19:23 chandler: `date->seconds' would be a good name for a simple conversion function; `find-seconds' is actually doing a binary search so it's really not what you'd expect a `foo->bar' function to do. 21:19:29 chandler: http://svn.plt-scheme.org/plt/trunk/collects/mzlib/date.ss 21:19:40 chandler, on a more serious note, it would be nice if ASN.1 had a readable specification, perhaps one not written by stodgy international standards bureaucrats of the eighties. 21:19:43 date->seconds-from-epoch ? 21:20:12 Fare: It's the `->' that is wrong here. 21:20:20 eli: Oh. What is the binary search for? 21:20:48 Hmm. Since these international standards bureaucrats were mostly French, perhaps I'd be better off trying to read the French version. 21:20:54 samth and eli -- tag team PLT Scheme wrestlers! 21:21:01 seconds-from-epoch<-date ? 21:21:17 chandler: It's a search for the number of seconds that translates to the given date. 21:21:40 search through a leap seconds table? 21:22:16 -!- cornucopic [n=r00t@202.3.77.134] has quit ["so long.."] 21:22:17 Riastradh: It is written well enough that you can actually purport to have some understanding of what the specification says. The ITU is very good at that. If you want something less dry, find a text on the subject; there are several. Personally, I would rather deal with ITU-style specifications than IETF-style RFCs. 21:22:21 chandler: it's just that I had the same reaction you did and thought that this is an odd name -- then I looked through the code, and I saw that it's much more expensive than what I'd thought -- so I'd cnclude that the strange name here was very effective. 21:22:30 but why show the innards of the sausage to the user, who just wants to convert his date from one format to the other? 21:22:43 arcfide [n=arcfide@adsl-99-50-231-131.dsl.bltnin.sbcglobal.net] has joined #scheme 21:22:43 -!- Arelius [n=indy@64.174.9.113] has quit ["leaving"] 21:23:07 chandler, there's a lot of variability in RFCs. Some are downright awful; some are mediocre. I'm trying to think of one that's very well written. 21:23:26 Fare: *Any* arrow is wrong for this -- arrows in Scheme are almost always either computationally simple or obvious in what they do. 21:23:47 -!- ada2358 [n=ada2358@unaffiliated/ada2358] has quit [Read error: 60 (Operation timed out)] 21:23:52 Fare: In this case, if it had an arrow name, I'd never bother looking it up, and I could end up with code that uses it more than needed. 21:24:12 -!- kmurph79 [n=kmurph79@ip98-185-210-202.sb.sd.cox.net] has quit [] 21:25:53 chandler, also, it is perfectly easy to screw up using ASN.1, too. Consider, for example, OpenSSL... 21:26:31 mmc [n=mima@cs27122078.pp.htv.fi] has joined #scheme 21:26:32 Of course. It is possible to screw *anything* up. And the quality of free ASN.1 tools is unbelievably poor. 21:26:42 Microsoft has had issues with this as well. 21:27:24 eli: I still don't understand why the binary search is there. 21:28:02 chandler, see, if the name hadn't thrown you off, you'd never realize that it was performing a weird operation! 21:28:27 sctb [n=sctb@S01060016cbc2d41a.cg.shawcable.net] has joined #scheme 21:28:31 ada2358 [n=ada2358@login-linux.ccs.neu.edu] has joined #scheme 21:29:01 -!- luz [n=davids@139.82.89.70] has quit ["Client exiting"] 21:29:22 kmurph79 [n=kmurph79@ip98-185-210-202.sb.sd.cox.net] has joined #scheme 21:29:27 chandler: I assume that "the OS" doesn't give you such a function, for a possibly "portable way" value of "the OS". Otherwise I don't know why someone would spend that much code on something that can be much easier. 21:29:52 Hmm? POSIX does have such an operation, I thought. 21:30:06 -!- Edico [n=Edico@unaffiliated/edico] has quit ["Ex-Chat"] 21:30:18 But given the style of the code (using explicit `lambda's), it's ancient, so might be due to some obscure problems on some forgotten OS. 21:30:50 No, ISO C has such an operation. 21:30:54 (IIRC, IBM something-6000s where popular at some point in the past when they were at rice.) 21:30:57 (mktime) 21:31:06 (RS 6000, presumably.) 21:31:43 Ah yes, I was about to write "Risc", but that didn't feel right. 21:31:48 (Naturally, mktime has the STUPID bug that it cannot tell you the number of seconds from the epoch on December 31, 1969, at 23:59:59. Clearly that second must not have existed.) 21:31:55 the R in RS is Risc 21:32:16 (S is System) 21:32:21 Yes, but it wasn't "Risc". 21:32:36 I used them also a lot during my ugrad days. 21:32:59 http://en.wikipedia.org/wiki/RS/6000 21:33:11 *eli* is really not that interested 21:33:19 "RS/6000 was renamed eServer pSeries in October 2000" 21:33:28 -!- samth [n=samth@nomad.ccs.neu.edu] has quit [Read error: 113 (No route to host)] 21:33:29 *Riastradh* blinks. 21:33:29 Riastradh: mktime() seems to be something different. 21:33:35 tHe iNner cApitalization oF tHe nEw nAme iS mUch cOoler. 21:33:41 ada2358_ [n=ada2358@login-linux.ccs.neu.edu] has joined #scheme 21:33:46 iBm mArketing cLearly kNows tHeir sTuff. 21:34:11 I bLame aPple. 21:34:44 when you're IBM, you're not trying to look good, just to have a recognizable brand. 21:35:07 Yes. They had it, in RS/6000. 21:35:18 They did the same thing to their mainframes too, and to the AS/400 stuff. 21:35:38 eli, mktime maps dates (struct tm) to times (time_t, seconds from the epoch). 21:35:48 eli, I thought that's what FIND-SECONDS was approximately supposed to do? 21:38:07 peter_12_ [n=peter_12@S0106001310475d12.vn.shawcable.net] has joined #scheme 21:38:14 Blindly using mktime does not work on dates that can't be represented in a time_t. 21:38:44 -!- peter_12 [n=peter_12@S0106001310475d12.vn.shawcable.net] has quit [Read error: 54 (Connection reset by peer)] 21:38:50 Sure, but we don't know the actual mapping for most such dates. 21:38:54 dmoerner [n=dmr@89-65.res.pomona.edu] has joined #scheme 21:39:04 Riastradh: You're right. Whoever wrote that man page should be slapped. 21:39:05 I'm reading over the (DECODE,ENCODE)-UNIVERSAL-TIME source in SBCL, and I remember why I forgot all of this hair. (I'm also reading comments with my name on them that I don't remember writing.) 21:39:32 Riastradh: There is an amusing quote from Dan Barlow in that file: "We assume that timezone rules are trending sane rather than insane." 21:40:27 Oh, there are references to the time base on the Perq here as well. 21:41:19 By the way, a few months ago, NetBSD became what I think is the first free software Unix to have 64-bit time_t everywhere (or perhaps it will as soon as the next version is released). 21:41:53 How (or does) this affect binary compatibility? 21:42:42 Previously compiled programs will still run in just the same way that they always ran when system calls changed. Newly compiled programs will see the new time_t. When your data contain time_t (such as happened with an older version of PostgreSQL), you will need to tread carefully. 21:43:24 (But representing your on-disk data format with time_t is pretty silly to begin with, which is why I think PostgreSQL no longer does that.) 21:45:10 (Sorry, when I said `Unix' earlier, I meand `Unixoid operating system'.) 21:45:36 -!- ada2358 [n=ada2358@login-linux.ccs.neu.edu] has quit [Read error: 110 (Connection timed out)] 21:45:43 (I understood that from context. I won't sic the Open Group on you.) 21:47:21 In SRFI 103, library versions are stored in the name of the specific file referred to by a library. Does anybody actually rename all their files when they bump the versionn number of their `library', i.e. aggregate of components distributed together?? This is pretty ridiculous! 21:48:18 Oh, dear. 21:48:24 Am I the only one who finds it absurd to have a module system that imposes a particular organization of my files on me? 21:48:30 No. 21:48:58 I mean, it's a bit of a moot point: SRFI 103 won't ever affect me (directly), so perhaps I ought not to complain about it. But...what lossage! 21:49:54 Oh dear. There's a section on encoding. It needs to be there, of course, but the mere presence of it suggests that the whole approach is deeply fubared. 21:50:41 MononcQc [n=mononcqc@modemcable062.225-20-96.mc.videotron.ca] has joined #scheme 21:52:44 -!- peter_12_ [n=peter_12@S0106001310475d12.vn.shawcable.net] has quit [] 21:53:34 Also, ^main^. I'm at a loss for words. 21:54:38 I am sure you can come up with some. 21:55:01 Zoog blorgle BLUH? 21:55:10 I kind of like it. They're like little wings by which your code can fly freeeeee. 21:55:25 s/code/sense/1 21:57:33 albacker [n=eni@unaffiliated/enyx] has joined #scheme 22:00:02 -!- mmc [n=mima@cs27122078.pp.htv.fi] has quit [Read error: 110 (Connection timed out)] 22:00:30 Riastradh: You are not alone, the recent suggestions for library systems have been disastrous. 22:02:39 -!- Fare [n=Fare@ita4fw1.itasoftware.com] has quit ["Leaving"] 22:03:37 luz [n=davids@189.122.90.116] has joined #scheme 22:10:35 Riastrad1 [n=rias@pool-141-154-202-88.bos.east.verizon.net] has joined #scheme 22:12:28 -!- kmurph79 [n=kmurph79@ip98-185-210-202.sb.sd.cox.net] has quit [] 22:12:44 -!- Adamant [n=Adamant@unaffiliated/adamant] has quit [] 22:13:27 -!- hkBst [n=hkBst@gentoo/developer/hkbst] has quit [Read error: 104 (Connection reset by peer)] 22:17:02 bombshelter13_ [n=bombshel@76-10-149-209.dsl.teksavvy.com] has joined #scheme 22:21:00 peddie [n=peddie@c-67-170-201-38.hsd1.ca.comcast.net] has joined #scheme 22:22:42 -!- ASau [n=user@83.69.227.32] has quit [Read error: 113 (No route to host)] 22:23:54 how do I concatenate 2 strings? 22:26:38 r5rs string-append 22:26:38 http://www.schemers.org/Documents/Standards/R5RS/HTML/r5rs-Z-H-9.html#%_idx_524 22:26:41 -rudybot_:#scheme- http://tinyurl.com/6a2kv6 22:27:59 tali713 [n=user@c-71-195-45-159.hsd1.mn.comcast.net] has joined #scheme 22:28:20 (Hint: get your Scheme documentation in a format amenable to full-text search.) 22:29:33 -!- arcfide [n=arcfide@adsl-99-50-231-131.dsl.bltnin.sbcglobal.net] has left #scheme 22:32:52 jeapostrophe [n=jay@69.169.141.110] has joined #scheme 22:34:28 jcowan [n=jcowan@cpe-74-68-154-139.nyc.res.rr.com] has joined #scheme 22:34:38 jcowan, boo! 22:36:20 -!- peddie_ [n=peddie@c-67-170-201-38.hsd1.ca.comcast.net] has quit [Read error: 110 (Connection timed out)] 22:36:46 *jcowan* cowers in fear behinds the dahlias. 22:36:51 No, you're supposed to say `eek'. 22:37:03 What imbecilities have I uttered that they applaud me thus? 22:37:03 jcowan, memo from Riastradh: If the next Scheme report has file I/O, please make the operation to open files sensible like in Common Lisp, not brain-damaged like in the R6RS. 22:37:29 kilimanjaro [n=kilimanj@70.116.95.163] has joined #scheme 22:38:00 Can you be more particular? 22:38:17 I mean particularly the `file options' cruft versus :IF-EXISTS and :IF-DOES-NOT-EXIST. 22:38:39 *jcowan* nods. 22:39:03 -!- albacker [n=eni@unaffiliated/enyx] has quit ["Leaving"] 22:39:16 Read the documentation of the file options and count the negatives. Then, without looking, tell me how to open a file and, if it exists, get #F, and if it doesn't, a new one. 22:39:26 (In the R6RS, that is.) 22:39:31 ...of course, this is an output file. 22:40:15 *jcowan* looks at the CLHS instead 22:40:39 charmless [n=charmles@207.47.213.196] has joined #scheme 22:42:21 `...and if it doesn't, [create] a new one.' 22:42:30 Daemmerung: 22:42:39 I don't have documentation, that's the point :D 22:42:41 I can tell you right now how to do that in Common Lisp, without looking, by the way: (open :direction :output :if-exists nil :if-does-not-exist :create) 22:44:01 ente: If you can use IRC, then you have access to documentation. Go get some. 22:45:03 sorry -.-# 22:49:50 I think that's subject to a race condition, at least on systems with Posix semantics. 22:50:02 No, it's not. 22:51:35 POSIX: status = (open (, (O_WRONLY | O_EXCL | O_CREAT))); if (status < 0) { if (errno == EEXIST) /* return #f */; else /* handle interrupts, or deliver an error */; } /* proceed normally */ 22:51:59 *jcowan* nods. 22:52:03 Now, if NFS is involved, all bets are off, but never mind that. 22:52:05 -!- annodomini [n=lambda@wikipedia/lambda] has quit [] 22:52:21 ISTR that there is some combination of CL options that Posix can't do atomically. 22:52:42 Well, with the renaming and superseding and whatnot, sure. 22:52:55 No, apart from versioning. 22:55:30 Well, for :IF-DOES-NOT-EXIST, :CREATE requires that you add O_CREAT, and otherwise you leave it alone. For :IF-EXISTS, :ERROR and NIL require O_EXCL, :OVERWRITE needs nothing (although it would be nice if there were a :TRUNCATE option too), for :APPEND you add O_APPEND, and the others have to do with renaming and versions. 22:56:56 Okay. 22:57:16 In any case, I don't think this matters for Thing One, though I will added to the list of things to be rethought for Thing Two. 22:58:15 MrFahrenheit [n=RageOfTh@91.191.38.223] has joined #scheme 22:58:58 s/added/add it 22:59:15 In SBCL, the only race is concerned with :RENAME and :RENAME-AND-DELETE, which first stat(2) and then rename(2). 22:59:29 The more I look at R6RS, the more I see why it went off the rails. 22:59:43 I see: :SUPERSEDE is interpreted to mean truncation in SBCL. 22:59:48 Rename, that was it. 23:00:06 (When I said `renaming and superseding', I meant `renaming and new-versioning'.) 23:00:06 :S was meant for versioned file systems 23:00:17 Right. But it has been repurposed on Unix for truncation. 23:00:19 A little silly, but oh well. 23:00:46 What does rename-and-delete do to cover the language "deleted but not expunged"? 23:00:49 We can decide to spell it T-R-U-N-C-A-T-E over here in Scheme land. 23:01:04 *jcowan* chuckles. 23:01:22 Just like how "is a subtype of" is spelled e-x-t-e-n-d-s in Javaland. 23:01:55 :RENAME moves foo to foo.bak; :RENAME-AND-DELETE moves foo to foo.bak and then deletes foo.bak when the stream is closed. 23:02:08 *jcowan* nods. 23:02:17 If foo.bak already exists, it gets clobbered. 23:02:28 *jcowan* hopes the deletion is registered with atexit(). 23:02:34 -!- jedc [n=jedc@c-67-171-246-227.hsd1.or.comcast.net] has quit [Remote closed the connection] 23:02:34 Don't think so. 23:02:39 Oopsie. 23:02:54 jamesmkukla [n=jmk@74.207.227.87] has joined #scheme 23:03:18 Nothing in SBCL calls atexit, as far as I know. 23:04:34 *jcowan* hrrmphs, and reflects how it would impede portability to 4.1bsd 23:07:22 Daemmerung: btw, that's not entirely true 23:08:05 I'm online with a dnstunnel 23:08:29 ASau [n=user@83.69.227.32] has joined #scheme 23:08:33 Also, jcowan, please make sure, whatever module system the next Scheme `report' has, that it have a more sensible naming authority and that it not impose rules about how I name and lay out my source files and directories. 23:12:58 annodomini [n=lambda@64.30.3.122] has joined #scheme 23:13:54 I don't know what you mean by "more sensible". The R6RS defines some specific module names and sorta implies that you shouldn't make up your own modules named (rnrs . foo) 23:14:27 -!- RageOfThou [n=RageOfTh@users-38-223.vinet.ba] has quit [Read error: 110 (Connection timed out)] 23:14:48 *jcowan* wonders if he has convinced people on r6rs-discuss or just worn them down. 23:15:26 There was a thread on the subject of `temerity' earlier. It was followed by `timidity'. Now I think `tenacity' is more appropriate. 23:15:44 They are intimidated by the clairvoyance of your signature-scrambler. That's all. 23:16:49 The great thing is that instead of saying merely "Poople-doople" to people's silly arguments, I can now say "See http://r6rs.org/...." 23:16:53 and refer to an earlier email. 23:17:42 Riastradh: Anyhow, what would you propose as a proper naming authority? 23:18:30 I know this isn't likely to be popular, but you could treat module names like XML names, relative to URI-identified namespaces. 23:19:52 s/relative/interpreted relative/1 23:21:06 I seem to remember that proposal coming up in the R6Rs process. 23:22:04 So do I. 23:22:30 -!- optimizer [n=x@unaffiliated/lowlycoder] has quit ["leaving"] 23:22:39 As I recall, the argument against it missed the point of URIs. 23:23:39 Indeed. 23:23:50 As soon as you do that, people expect to be able to download a portable implementation. 23:23:57 (from that URI) 23:24:17 -!- Dark-Star [i=Darkstar@p57B55F34.dip.t-dialin.net] has quit [] 23:24:30 I expect to be able to find some information about it, at least, when I use a URL URI as a URL. 23:25:00 I agree that that's reasonable, but many people don't. 23:25:14 Oh, I remember that an earlier proposal even had libraries named with pseudo-URIs -- URIs with the unregistered URI scheme `scheme'. 23:25:59 Adman65_ [n=Adman65@m4e0436d0.tmodns.net] has joined #scheme 23:26:00 SRFI 83 23:26:03 -!- MrFahrenheit [n=RageOfTh@91.191.38.223] has quit [Read error: 145 (Connection timed out)] 23:26:03 Aha: SRFI 83 was left in that state. 23:27:16 Not pseudo. An URI that meets the URI syntax RFC is perfectly valid, even if you don't know the URI scheme. 23:27:27 LegendaryPenguin [n=ginkeq@pool-96-244-240-168.bltmmd.fios.verizon.net] has joined #scheme 23:27:32 (Between URI and Uri, and scheme and Scheme, I hardly know when to push the shift key these days.) 23:27:51 `Uri' is an eastern European name, particularly that of a well-known nutcase. 23:27:57 (A certain Geller, to be precise.) 23:28:28 what is `irU' then? ^^ 23:28:34 Him too, but I was thinking of the Swiss canton. 23:28:56 Plus the fact that my employer treats acronyms as words for the purpose of camelCasing, so I type "getUri" and the like a lot. 23:30:26 `The URI syntax defines a grammar that is a superset of all valid URIs, allowing an implementation to parse the common components of a URI reference without knowing the scheme-specific requirements of every possible identifier. This specification does not define a generative grammar for URIs; that task is performed by the individual specifications of each URI scheme.' 23:31:07 Curiously, I expected the `x-' prefix to be mentioned in RFC 3986, but it isn't. Nor is it mentioned in BCP 35. 23:31:29 It's entirely unofficial, like the %-hack, which is not documented anywhere, including here. 23:31:35 The %-hack? 23:31:41 (the email %-hack, not the URI %-encoding) 23:31:47 OK. 23:32:08 I have seen, and even perpetrated, sentences of the above form: "not documented anywhere, including here" 23:32:13 in several contexts 23:33:06 The trouble with the x- prefix is that if the whatever-it-is catches on, you are stuck with it, and if it gets standardized, you are stuck with *two* variants. 23:33:30 When gzip encoding became usable in Internet mail, people duly used the token x-gzip in a header to indicate it. 23:33:40 gzip was later standardized, since anything of the form x- cannot be standardized. 23:33:41 OK. I see nothing particularly wrong with that. 23:33:45 Now all mailers must handle both. 23:34:01 Better to have boldly used gzip and let standardization follow you. 23:34:23 -!- Adman65_ is now known as Adman65|sj 23:35:43 In any case, introducing a new URI scheme with neither semantics nor the intent to register it was rather silly. 23:36:17 I agree. 23:38:57 Hmm. A good deal of the point-missage was on the part of bear. 23:39:09 -!- Adman65|sj [n=Adman65@m4e0436d0.tmodns.net] has quit [Read error: 104 (Connection reset by peer)] 23:39:10 This is the point at which I say something witty about me and surprise. 23:39:25 Adman65_ [n=Adman65@m3e0436d0.tmodns.net] has joined #scheme 23:41:38 http://www.r6rs.org/r6rs-editors/2006-May/001231.html 23:42:36 -!- masm [n=masm@bl7-39-1.dsl.telepac.pt] has quit ["Leaving."] 23:43:15 *TimMc* daydreams about pushing LISP into a woodchipper 23:43:34 (symbolp NIL) ;-> T 23:43:36 Well, lookit the point-missage fly by. PLaneT and CPAN are themselves naming authorities, based on central (if mirrored) registries of names to modules. 23:45:03 But that (say, PLaneT) works only because the PLT team agreed on what `(require (planet ...))' should mean. We don't get the same kind of authority with whatever arbitrary names programmers start with, so you get nonsense such as `I chose ``xitomatl'' because it's a word I like and it seems to have a reasonably high chance of never being used by anyone else to start library names.' 23:45:06 I suddenly have a new understanding of R5RS's strict language on disjoint types. o.O 23:46:08 Ha! 23:46:45 optimizer [n=x@unaffiliated/lowlycoder] has joined #scheme 23:46:48 On the library system, and using scheme://r6rs to identify libraries' languages: `I don't think ``heavyweight'' is a problem, as this is primarily a distribution mechanism. In fact, one deficiency of SRFI 83 is that this fact hasn't been obvious to many people on the mailing list, even though it's been explained multiple times.' 23:48:13 -!- optimizer [n=x@unaffiliated/lowlycoder] has left #scheme 23:48:54 Well, Java bootstraps on the DNS supplemented by local conventions and by some Sun-dictated hacks and a few unofficial bypasses (people who implement Foo for the JVM often grab foo.lang in imitation of java.lang). 23:48:58 I have no problems with that. 23:49:09 Actually, that's a little bit different. 23:49:19 I think that I'd rather see a model like XML namespaces. 23:49:33 (Much as `like XML namespaces' sends alarm klaxons ringing in my head.) 23:50:27 Name modules with symbols, or something simple like that, but interpret those names relative to some globally identified namespace. 23:50:32 -!- hotblack23 [n=jh@p5B0551FD.dip.t-dialin.net] has quit ["Leaving."] 23:50:50 This is a discussion that needs participation from Jonathan Rees. 23:52:10 (Participation from? By? With? What preposterosition?) 23:53:37 When in doubt, go with "around". 23:53:41 *Daemmerung* leaves for exercise 23:54:34 The reason I want a model more like XML namespaces is that for very little code will it make much sense to give every module a global name. Many modules will be intended to be internal to the implementation of a library of modules. For instance, in a C library in Unix land, you deal with libz, not with the source files that implement it; you haven't a clue how the source code was organized. 23:54:35 mejja [n=user@c-49b6e555.023-82-73746f38.cust.bredbandsbolaget.se] has joined #scheme 23:55:55 On the other hand, in the Unix land, you get the pretty dumb model of library names whereby you just have to know that `z' is for compression routines. 23:56:50 -!- ve [n=a@94-193-95-252.zone7.bethere.co.uk] has quit ["leaving"] 23:59:09 But the way that I choose to name my modules still ought not to imply anything about how I organize my files -- because in Scheme land, the modules in a library will be a part of the library's interface, and as such are used for the dual purposes of organizing code internally and exposing an interface. 23:59:22 Anyway, I need to do something about dinner.