00:00:45 joast [n=rick@76.178.178.72] has joined #scheme 00:00:56 Assuming left to right in both, the answer would be (3 3 2 3 3 2 3); assuming left to right in the syntax, and right to left in the body: (2 3 2 3 3 3 3); right to left syntax, left to right body: (3 1 2 1 3 2 1); right to left everything: (2 1 2 1 3 3 1), and this is of course, what Chez gives. 00:01:32 chandler: Do I win? 00:01:36 :-P 00:02:53 I think you win a "this program makes no sense in the first place" award. 00:03:11 chandler pasted "does this pin down the order of evaluation adequately?" at http://paste.lisp.org/display/87031 00:03:23 chandler: But, given any specific order of evaluation, you can know what it will do. 00:04:06 Good grief! Yechhh! 00:04:57 chandler: No, it does not. 00:05:02 Wait... 00:05:32 chylli [n=lchangyi@60.211.214.32] has joined #scheme 00:05:47 The right-hand side of the `let*'s might be expanded in any order, right? 00:06:50 chandler: I believe that's possible, I'm not sure. I've never thought about it. I would have to examine the definition of let*. 00:07:34 chandler: I'm not sure I understand what you think is confusing about this. Maybe you may think that it is the wrong way to do it, but knowing the semantics, I don't see it as being particularly unclear. 00:08:20 -!- syntropy_ [n=who@unaffiliated/syntropy] has quit [Read error: 104 (Connection reset by peer)] 00:08:37 chandler: As to your annotation to that first paste. 00:09:38 What is strange here? You're in the REPL, it doesn't have R6RS top-level program semantics in Chez. 00:10:08 This is Chez 7.4d, and the sentence I quoted was from the R5RS. 00:10:51 Oh, okay. 00:11:00 It still doesn't have top-level semantics, I think. 00:11:15 And I get the same observable difference from `load'ing a file. 00:11:21 I don't think that Chez's REPL has ever claimed that, but I could be proven very wrong. 00:11:41 chandler: Yes, because LOADing a file in 7.4 was the same as typing them into the REPL. 00:14:52 -!- MononcQc [n=parseido@modemcable062.225-20-96.mc.videotron.ca] has quit ["DOWNLOADING LATEST VERSION OF THE INTERNET"] 00:15:45 blackened`_ [n=blackene@ip-89-102-28-224.karneval.cz] has joined #scheme 00:17:02 syntropy [n=who@unaffiliated/syntropy] has joined #scheme 00:19:08 arcfide: I guess that is the problem. If you know the semantics of something, it probably isn't unclear to you. 00:19:31 -!- synx [i=synx@gateway/gpg-tor/key-0xA71B0C6A] has quit [Remote closed the connection] 00:19:40 chandler: Yes. 00:19:46 synx [i=synx@gateway/gpg-tor/key-0xA71B0C6A] has joined #scheme 00:20:19 Actually, I get confused by PLT Scheme all the time, not because they're innately wrong or something, but because the behavior is different. 00:20:22 Loading a file *should* be the same as typing it into the REPL. 00:20:52 jcowan: Right. What arcfide is saying is that typing two forms at the REPL is not the same as if those forms were surrounded by `begin'. 00:20:55 Chez now has a LOAD-PROGRAM and a LOAD. The former expects to load in a top-level R6RS program, and the latter takes normal Scheme files. 00:21:05 I think this contradicts at least the spirit of the R5RS. 00:21:20 chandler: Sure, it's the same, assuming that they're being evaluated in the same environment. Wrap them in a LET, and that's different. 00:21:39 *jcowan* wants INCLUDE, dammit. 00:21:41 ... No, it's not the same, because I just pointed out an observable behavioral difference. 00:21:51 One will give you an unbound error, and the other will give you an out of context error. 00:22:03 jcowan: `include' is what `load' should have been. 00:22:35 arcfide: Hm? The example I gave works in 7.4d if I remove the `begin' and promote the forms to top-level forms. 00:22:40 Well, no, because "load" has traditionally handled compiled files as well. 00:23:30 chandler: Are you sure you're not assuming a specific evaluation order? 00:24:04 What's more, include is syntax, not a procedure. 00:24:11 chandler: If you expand the b right hand side first, you won't get an error, if you evaluate the c right hand side first, you'll get an error. 00:24:18 jcowan: Right. I'm saying that this is what they *should* have included. 00:25:13 Who are "they" in this context? 00:25:48 -!- mejja [n=user@c-49b6e555.023-82-73746f38.cust.bredbandsbolaget.se] has quit [Remote closed the connection] 00:26:34 chandler: You may have expected to get an unbound identifier error regardless, but you forget that in the top-level REPL on Chez Scheme, all variables are implicitly bound, and SET!ing a variable not previously DEFINEd will work because of this constraint. 00:27:12 Thus, the only change in behaviour you are seeing is the expander taking liberties in evaluation order, which it is, of course, allowed to do. 00:27:12 jcowan: You know, "them". :-) 00:27:23 arcfide: Oh. I didn't realize that it was an evaluation order problem. 00:27:53 chandler: Yes, the code you wrote is good for messing people up because it leads people down one path, and brings out their assumptions about how code is expanded. :-) 00:30:23 -!- blackened` [n=blackene@ip-89-102-28-224.karneval.cz] has quit [Read error: 110 (Connection timed out)] 00:42:45 sphex_ [n=nobody@modemcable244.185-56-74.mc.videotron.ca] has joined #scheme 00:49:05 arcfide: Did you read my message about Chicken's one-pass semantics? 00:49:42 chandler: I'm still getting through the stuff right now. 00:49:46 Ah. 00:49:51 IT's...lot's. 00:49:55 s/t's/ts/ 00:50:04 I think it provides the answer to the question you just asked me. 00:51:53 chandler: I'm not sure if it's the R6RS "them" or the Chez "them". 00:52:38 jcowan: Is this my earlier quoted use of "them"? If so, it's "the standardizers I would have preferred, who saw things My Way". 00:52:50 (re `include' and `load', that is) 00:53:12 annodomini [n=lambda@pool-141-154-58-196.bos.east.verizon.net] has joined #scheme 00:54:11 chandler: You know that include can be written in R6RS very easily? 00:54:38 Yes, of course. 00:54:56 chandler: Of course, it would have been nice to have it required as a simple and important piece to libraries, but.... 00:56:55 -!- sphex [n=nobody@modemcable244.185-56-74.mc.videotron.ca] has quit [Read error: 110 (Connection timed out)] 00:57:17 -!- copumpkin is now known as Meow 00:59:36 chandler: I don't understand your explanation. 00:59:53 Can you want me through the expansion of the example, both using a let-syntax and a let with a lambda? 01:00:26 -!- singhv [n=vsingh@CPE0014bf4af6c2-CM000a739caee2.cpe.net.cable.rogers.com] has quit [] 01:00:27 MononcQc [n=mononcqc@modemcable062.225-20-96.mc.videotron.ca] has joined #scheme 01:01:42 Why aren't `letrec-syntax' and `letrec' allowed in the one-pass semantics? The definition that Aziz gave didn't seem to have anything to do with that. 01:02:02 It has to do with whether or not any expansion is deferred - which is not the case in Chicken. 01:02:11 Maybe I misunderstood Aziz. 01:03:50 I think he's saying that you can't possible resolve the reference of the f in the definition of g to the internal definition of f without passing over the evaluation of (f) more than once. 01:04:29 In other words, if you expand each form as you encounter them, you can't expand (DEFINE G (F)) into a reference to the internal F because that F is not known yet. 01:05:10 singhv [n=vsingh@CPE0014bf4af6c2-CM000a739caee2.cpe.net.cable.rogers.com] has joined #scheme 01:05:11 ... Oh. 01:05:24 But what Chicken is doing is definitely not what he described as "two pass" either. 01:05:33 So what is it? One-and-a-half-pass? 01:05:35 -!- Meow is now known as copumpkin 01:05:42 It's just a simple syntactic thing. You could express it using `syntax-rules' I think. 01:06:04 chandler: I don't understand what chicken is doing by your description. 01:07:36 chandler: Actually, I'd like to understand how chicken does it's expansion process. 01:07:50 chandler: If you went over the small examples there piece by piece it might help. 01:08:29 And this two pass stuff is really just saying that you defer some expansion until you have passed over the rest of the form. 01:08:40 I think that's the definition that Aziz is using. 01:09:09 Right. Aziz just replied with clarification: he believes it's not one-pass, but it isn't two-pass either. 01:09:13 So, you encounter some syntax that you ignore until later. The expansion still ocurs in one "pass", but expansion of one form isn't necessarily complete until all the other forms have been examined. 01:09:43 I think that maybe this one pass two pass stuff is just bad terminology. 01:09:59 Yes. 01:10:06 Especially since it could get confused with expansion time version run time phases. 01:10:11 *offby1* makes an awkward pass at arcfide 01:10:28 There is one sensible order to expansion, up to permutation of subexpressions of combinations, and that is what riaxpander implements! 01:15:31 Riastradh: How's this extra CML stuff coming? I'd like to get a socket rendezvous going some time, and reading over io-rv has helped, but I'm not sure I understand the behavior, semantics, and the limitations, such as they are. 01:16:35 Now that I have removed all the race conditions I have discerned, I realize that there's a lot of common structure to the *-suspend.scm files that I think I can factor out in order to make the code easier to understand (and therefore easier to reason about and analyze and prove absent of race conditions). 01:17:45 Riastradh: Great! 01:17:59 I hacked up a workable Sockets setup for myself that will suffice for now, so there is no rush. 01:18:01 chandler pasted "pass the chicken, please" at http://paste.lisp.org/display/87034 01:18:16 rudybot: init http://paste.lisp.org/display/87034/raw 01:18:17 chandler: your "http://paste.lisp.org/display/87034/raw" sandbox is ready 01:18:22 rudybot: eval 'my-output-please 01:18:22 chandler: ; Value: my-output-please 01:18:23 chandler: ; stdout: "(1 2)" 01:18:26 i'd like to use this CML stuff, however, as an integral component that I provide for sockets input/output sometime this semester. :-) 01:18:48 arcfide: Hopefully that explains the Chicken semantics better. 01:19:35 chandler: I'll take a look at it once I clean my "Send Reply" box. 01:20:32 QinGW [n=wangqing@203.86.89.226] has joined #scheme 01:21:06 -!- MononcQc [n=mononcqc@modemcable062.225-20-96.mc.videotron.ca] has left #scheme 01:21:28 arcfide: That's not *quite* the chicken semantics, mind you. 01:22:21 arcfide: You'll have to assume that each of the body forms is expanded in turn during the process until it can be determined if it is a `define' or `define-syntax'. 01:23:41 ... Hm. Maybe that does make it into a two-pass, but not quite the same way as the R6RS. 01:23:44 I give up. 01:31:18 *jcowan* lets all this grind on over his head while he does the donkey work of what features are in what feature groups. 01:31:58 I'm *this* close to concluding that internal `define's are a horrible idea in the first place. I never liked them anyways. 01:32:36 chandler: You seem to be very perturbed by this stuff, I'm not sure why. :-) 01:32:40 I'm still waiting for the serious example of (let (...) (let-syntax ...)) 01:34:14 arcfide: It doesn't fit into a clear box in my head. I understand the simple model of inner `define's without inner `define-syntax' by analogy to `letrec', but this two-pass thing makes my head hurt. 01:34:21 I shouldn't have to think this hard. 01:35:30 *arcfide* shrugs. 01:36:05 Is there something about the R6RS expansion process that is unclear? 01:36:16 Or is it just that it seems like more mental work than it should be? 01:36:21 The latter. 01:36:28 *arcfide* ponders. 01:36:38 I would actually *prefer* an N-pass process, I think. 01:37:48 -!- blackened`_ [n=blackene@ip-89-102-28-224.karneval.cz] has quit [] 01:37:57 I don't know, I guess, the only time that I fel like this could be a lot of mental effort was when I was actually going through Aziz's experimental slides on the process of expansion at the marks and wraps level in formal notation. 01:38:31 That took some effort, but I don't do that when I'm thinking about things normally, I just think in terms of scope and evaluation order. 01:38:55 -!- annodomini [n=lambda@wikipedia/lambda] has quit [] 01:41:06 Now comes the *really* brutal part. 01:41:51 Making sure that the 191 identifiers I think are bound in R5RS are all of them. 01:42:36 arcfide: I guess what I don't like is the different visibility rules for things on the right-hand side of a `define' vs. complete forms. 01:42:49 arcfide: I understand *why* it is the way it is, but it feels like half of a solution. 01:43:19 arcfide: What if (let () (foo v 1) (define-syntax foo (identifier-syntax define)) v) worked? 01:44:33 .... 01:44:52 Is that even tractable? 01:45:36 -!- skinnylover [n=chatzill@195.238.188.231] has quit ["ChatZilla 0.9.85 [Firefox 3.5.3/20090824101458]"] 01:47:02 arcfide: Sure, provided that in (let-syntax ((foo (syntax-rules () ((_ v n) (define v 2))))) (let () (foo v 1) (define-syntax foo (identifier-syntax define)) v)) the first use of `foo' refers to the outer binding. 01:48:03 arcfide: Basically, I'm suggesting that things which look like expressions should be deferred until they can be determined for sure to be expressions. 01:48:59 -!- Axioplase_ is now known as Axioplase 01:49:05 chandler: You're saying to defer expansion until they can be verified that their expansion will not be a definition? That's not possible assuming that expansion is required to determine whether something expands into a definition. 01:50:15 arcfide: I must be missing something here. 01:50:27 In any event, I'm probably too tired to see what it is at this point. 01:50:36 Well, sleep tight. :-) 01:55:58 -!- bzzbzz [n=franco@modemcable240.34-83-70.mc.videotron.ca] has quit ["leaving"] 02:09:25 I'm about to push a bunch of changes, arcfide.. 02:26:44 annodomini [n=lambda@pool-141-154-58-196.bos.east.verizon.net] has joined #scheme 02:28:54 Riastradh: Have you pushed those changes? 02:29:30 Not yet. 02:31:17 Alright. 02:32:06 -!- ski_ [n=md9slj@remote1.student.chalmers.se] has quit ["Lost terminal"] 02:34:54 syntropy_ [n=who@unaffiliated/syntropy] has joined #scheme 02:38:53 -!- copumpkin [n=pumpkin@c-24-63-67-154.hsd1.nh.comcast.net] has quit [] 02:44:26 -!- annodomini [n=lambda@wikipedia/lambda] has quit [] 02:45:58 Summermute [n=scott@c-68-34-67-216.hsd1.dc.comcast.net] has joined #scheme 02:46:05 -!- luz [n=davids@189.122.90.116] has quit ["Client exiting"] 02:52:17 -!- syntropy [n=who@unaffiliated/syntropy] has quit [Read error: 110 (Connection timed out)] 02:52:31 tjafk2 [n=timj@e176199129.adsl.alicedsl.de] has joined #scheme 02:54:39 I have run into a problem with Darcs. I'm submitting a bug right now, but I have a workaround. 02:57:05 -!- Adamant [n=Adamant@unaffiliated/adamant] has quit [] 03:03:54 Good morning #scheme! 03:07:10 hello foof 03:09:19 -!- tjafk1 [n=timj@e176223189.adsl.alicedsl.de] has quit [Read error: 110 (Connection timed out)] 03:13:24 hey guys 03:13:52 Howdy 03:14:04 ehlo 03:14:42 steiger pasted "help with macro" at http://paste.lisp.org/display/87035 03:14:51 can someone help me with the paste above? 03:15:14 I'm taking a brief break from scheme (relatively verbose and prefix) to explore J - the very terse and super infix operator oriented. J is pretty cool 03:15:55 That's a very good question, steiger. Unfortunately, the answer is basically `it doesn't work that way'. 03:16:16 Riastradh: can you tell me more? 03:17:43 -!- QinGW [n=wangqing@203.86.89.226] has quit [Read error: 104 (Connection reset by peer)] 03:18:50 PLT Scheme will read the text `#hash([stuff])' as a hash table, long before it starts trying to interpret what it just read as Scheme. So the `#hash' syntax sees the `...', and doesn't know what it's supposed to do with that, because what you write after `#hash' is supposed to be a literal list of pairs -- this is long before SYNTAX-RULES even gets involved. 03:18:52 Summermute: J syntax looks like brainfuck's syntax 03:19:43 -!- eno [n=eno@nslu2-linux/eno] has quit [Read error: 60 (Operation timed out)] 03:20:15 But, steiger, I think that is a good question to stimulate discussion on a mailing list such as the r6rs-discuss mailing list (about lexical extensibility) or the plt-scheme mailing list. 03:20:30 (Ha! Did I just recommend stimulating discussion on r6rs-discuss?) 03:20:35 (Oh, dear. I'm sorry.) 03:20:47 Riastradh: ahahaha 03:21:01 wasn't J that language based on a MUD? 03:21:51 QinGW1 [n=wangqing@203.86.89.226] has joined #scheme 03:22:01 synx, no; no, not at all. 03:22:26 synx, in fact, I would be very surprised if anyone involved at all in the J development process had ever played a MUD. 03:23:02 haha yeah it looks pretty... uh... something 03:24:22 eno [n=eno@nslu2-linux/eno] has joined #scheme 03:25:24 Riastradh: this sounds like a major wart. is there something against changing it? i guess i will post to r6rs-discuss ;P 03:25:24 synx, don't discount the language simply because of the syntax. 03:27:38 I would worry though gnomon, the unnecessary limitation of staying within the ASCII character set. 03:37:11 adriyel [i=adriyel@anapnea.net] has joined #scheme 03:43:41 -!- r2q2 [n=user@dhcp-vlan3242-31-12.wireless.uic.edu] has quit [Read error: 104 (Connection reset by peer)] 03:44:12 -!- adriyel [i=adriyel@anapnea.net] has left #scheme 03:44:55 -!- syntropy_ is now known as syntropy 03:49:07 scheme is verbose? Hrm... 03:49:46 -!- kilimanjaro [n=kilimanj@70.116.95.163] has quit ["Leaving"] 03:51:05 -!- arcfide [n=arcfide@adsl-99-50-231-131.dsl.bltnin.sbcglobal.net] has left #scheme 03:51:26 arcfide [n=arcfide@adsl-99-50-231-131.dsl.bltnin.sbcglobal.net] has joined #scheme 03:51:26 -!- arcfide [n=arcfide@adsl-99-50-231-131.dsl.bltnin.sbcglobal.net] has left #scheme 03:55:19 dunno about scheme, but #scheme certainly is 03:58:16 a limerick's never averse 03:58:21 to summarizing in a terse 03:58:26 economical style, and yet all the while 03:58:30 a limerick's always a verse! 03:59:49 OK 03:59:58 let's see if I can remember jcowan's favorite 04:00:49 http://www.democraticunderground.com/discuss/duboard.php?az=show_mesg&forum=105&topic_id=3673750&mesg_id=3675306 04:00:51 -rudybot:#scheme- http://tinyurl.com/nb79ra 04:01:44 -!- davazp [n=user@56.Red-79-153-148.dynamicIP.rima-tde.net] has quit ["ERC Version 5.3 (IRC client for Emacs)"] 04:02:46 eh, scansion's just a bit off 04:04:14 bingo, offby1. 04:04:28 synx: where? 04:04:51 I wanted to say "Bach's Bach Toccata" for instance 04:06:16 Also it was difficult not to accent the "what" in "What was sex" 04:07:00 I do respect Aasimov though, because he could think up new limericks on the spot. 04:08:12 My favorite limerick is this: 04:08:13 A tutor who tooted a flute 04:08:13 Was teaching two tutors to toot. 04:08:25 Said the two to the tutor izzit tougher to toot 04:08:32 Or to tutor two tutors to toot? 04:08:56 Mine is the following by Edward Gorey: 04:09:05 A dreary young bank clark named Fennis 04:09:09 Wished to foster an aura of menace. 04:09:13 To make people afraid, 04:09:17 He wore gloves of grey suede, 04:09:21 And white footgear intended for tennis. 04:10:37 *foof* shudders 04:10:59 (It is incomplete without the illustration, naturally, but the text will have to do for IRC.) 04:12:13 -!- araujo [n=araujo@gentoo/developer/araujo] has quit [Read error: 104 (Connection reset by peer)] 04:13:31 This, by Ogden Nash, is also excellent: 04:13:37 There was an old man from Calcutta 04:13:41 Who coated his tonsils in butta, 04:13:44 Thus converting his snore 04:13:48 araujo [n=araujo@gentoo/developer/araujo] has joined #scheme 04:13:49 From a thunderous roar 04:13:55 -!- araujo [n=araujo@gentoo/developer/araujo] has quit [Read error: 104 (Connection reset by peer)] 04:13:56 To a soft, oleaginous mutta. 04:15:49 araujo [n=araujo@gentoo/developer/araujo] has joined #scheme 04:16:25 -!- araujo [n=araujo@gentoo/developer/araujo] has quit [Read error: 104 (Connection reset by peer)] 04:16:45 QinGW [n=wangqing@203.86.89.226] has joined #scheme 04:17:44 -!- singhv [n=vsingh@CPE0014bf4af6c2-CM000a739caee2.cpe.net.cable.rogers.com] has quit [] 04:18:05 MononcQc [n=Ferd@modemcable062.225-20-96.mc.videotron.ca] has joined #scheme 04:18:25 araujo [n=araujo@gentoo/developer/araujo] has joined #scheme 04:20:12 synx: Omitting the first syllable of the first foot in a limerick line is canonical (or any kind of anapestic line in English, in fact) 04:20:46 -!- araujo [n=araujo@gentoo/developer/araujo] has quit [Read error: 54 (Connection reset by peer)] 04:22:29 sphex [n=nobody@modemcable244.185-56-74.mc.videotron.ca] has joined #scheme 04:22:46 Riastradh: that actually _sounds_ like Edward Gorey. 04:22:52 -!- QinGW1 [n=wangqing@203.86.89.226] has quit [Read error: 145 (Connection timed out)] 04:23:17 araujo [n=araujo@gentoo/developer/araujo] has joined #scheme 04:23:30 When boiling, baking, or stewing 04:23:31 It helps to know what you are doing. 04:23:32 I once use to cook 04:23:33 Without using a book -- 04:23:34 My consommes needed some chewing. 04:23:43 I'm workin on a program that is meant to represent and simplify polynomials. For a given polynomial, should I define a new record-type, or should I stick with something like (lambda terms `('+ ,@terms)) to represent them? 04:23:45 mike8901 [n=mike@resnet-46-184.dorm.utexas.edu] has joined #scheme 04:23:48 Twas a mouse that woke miss Dowd 04:23:55 And she screamed so very loud 04:24:00 Then the happy thought hit her 04:24:01 Does apply return a list of return values? 04:24:11 To scare off the critter 04:24:20 syntropy: I assume a record would be easier to pick apart 04:24:33 She sat up in bed and meowed. 04:24:41 mike8901: apply returns whatever the function in question returns. 04:24:41 offby1: I'm not much used to them though, so it would be a learning experience. 04:24:54 syntropy: you say that like it's a bad thing :) 04:24:59 offby1: er, I should clairify: apply run on a list 04:25:06 mike8901: same answer 04:25:15 rudybot: eval (apply + (list 1 2 3)) 04:25:16 *offby1: ; Value: 6 04:25:22 rudybot: eval (apply list (list 1 2 3)) 04:25:23 *offby1: ; Value: (1 2 3) 04:25:37 Are you with me so far? 04:25:51 ah, so apply doesn't evaluate the method on each individual argument :/ 04:25:56 Is there anything that would do that? 04:26:01 .oO("method"?) 04:26:12 hmm? 04:26:12 yes mike8901, fold 04:26:18 or for-each, or map 04:26:24 rudybot: eval (map (lambda (thing) (list 'hey 'look 'its thing)) (list 1 2 3)) 04:26:24 *offby1: ; Value: ((hey look its 1) (hey look its 2) (hey look its 3)) 04:26:44 rudybot: eval (foldl (lambda (item result) (+ item result)) 1 '(2 3 4 5 6)) 04:26:45 synx: your "http://paste.lisp.org/display/86023,1/raw" sandbox is ready 04:26:45 synx: ; Value: 21 04:26:46 synx: nooooo, loop through length of the list and cons each entry! 04:27:04 each *result. 04:27:11 so map will return a list? 04:27:15 sure _sounds_ like you want "map". 04:27:17 mike8901: yes. 04:27:20 rudybot: help map 04:27:20 *offby1: help [], version, quote, source, seen , uptime, init [], eval ..., give ..., apropos ..., desc , doc , later "tell" ..., join , part , tell ..., emote ..., for ..., ghost , nick , system ..., top-eval ... 04:27:26 rudybot: doc map 04:27:26 *offby1: http://docs.plt-scheme.org/reference/pairs.html#(def._((lib._scheme%2Fprivate%2Fmap..ss)._map)) 04:27:27 cool, that's exactly what I wanted :) 04:27:37 map is kind of like a special case of fold. It maps items 1:1 from a list to a list. 04:27:44 *nod 04:27:48 synx: well said, sir/madam 04:28:25 for-each is like a special case of fold, but optimized to not collect any results at all. 04:28:44 And you can perform the same thing as fold, for-each, and map, using only named lets. 04:28:52 s/fold/map/ in the above 04:28:58 -!- MononcQc [n=Ferd@modemcable062.225-20-96.mc.videotron.ca] has quit [Remote closed the connection] 04:29:04 well, 04:29:05 -!- jeapostrophe [n=jay@69.169.141.110.provo.static.broadweavenetworks.net] has quit [] 04:29:06 maybe 04:29:06 more fundamental than that and it gets too wizardly for my liking 04:29:12 offby1: map is a special case of map? 04:29:34 synx: I _meant_ that "for-each" is a special case of "map", not of "fold"; but maybe you were right. 04:29:42 ohh gotcha 04:30:00 I don't like to play "gotcha". 04:30:01 mike8901: kewl ^.^ 04:31:26 Okay, feature groups posted to the list. 04:31:40 And supporting spreadsheet at http://tinyurl.com/feature-groups 04:32:05 I think there will be only two more posts: Thing One libraries and string-set!-must-die 04:32:16 Does anyone implement SRFI 18? I don't remember. 04:32:27 Definitely. 04:32:33 Chicken does, using call/cc-based threads. 04:32:39 I see. 04:32:44 Oh, I suppose Gambit probably does, too. 04:32:52 But of course http://tinyurl.com/scheme-s5 tells the tale 04:34:08 Gauche, Gambit, Chicken, Bigloo, SISC, STklos, RScheme, S7. 04:36:48 8 implementations; the median number of implementations for the SRFI set is 7. 04:37:39 (across my 37 implementations, that is. 04:37:42 ) 04:38:46 -!- sphex_ [n=nobody@modemcable244.185-56-74.mc.videotron.ca] has quit [Read error: 110 (Connection timed out)] 04:41:20 Gah. I almost Googled call-with-current-continuation.org to go to Chicken's web site. 04:42:32 It wouldn't hurt to do so. It's the first hit, as usual when you Google a domain name. 04:43:01 The next hit is the WP page on call/cc. 04:43:16 That doesn't make it not absurd. 04:43:43 offby1: I meant I understand you, as in "I got what you were saying to me." 04:44:53 Current count of proposed additional features is now 45, after I added make-list. 04:45:09 LOOOOL 04:45:30 *syntropy* remotely bluescreened his friend's Win7 RC installation. 04:46:10 *syntropy* must get around to writing Microsoft that thank you letter for reintroducing the fun stuff. 04:46:32 -!- mike8901 [n=mike@resnet-46-184.dorm.utexas.edu] has quit [] 04:52:58 -!- ASau [n=user@83.69.240.52] has quit ["off"] 04:57:02 -!- jcowan [n=jcowan@cpe-74-68-154-139.nyc.res.rr.com] has quit ["Leaving"] 04:59:14 -!- thesnowdog [i=thesnowd@114.73.162.79] has quit ["Leaving"] 05:08:06 -!- kssreeram [n=kssreera@122.174.70.188] has quit [] 05:12:27 Argh! 05:12:36 Gambit loses. 05:13:13 PLT wins. 05:13:14 chandler: 05:13:38 That should work. But it doesn't in Gambit. 05:13:53 (even if I change the Scheme48 lock procedures to SRFI 18 mutex procedures, of course) 05:15:43 Naturally, it also doesn't work in MIT Scheme, either, or in any other Scheme system with broken top-level hygiene. 05:19:03 -!- ski [n=slj@c-9011e055.1149-1-64736c10.cust.bredbandsbolaget.se] has quit [Read error: 110 (Connection timed out)] 05:22:49 ski [n=slj@c-9011e055.1149-1-64736c10.cust.bredbandsbolaget.se] has joined #scheme 05:25:09 ski_ [n=md9slj@remote1.student.chalmers.se] has joined #scheme 05:31:50 Somebody asked me earlier why I included the poll operation in Scheme-CML, when it was removed from Concurrent ML. I don't remember who asked, or whether I answered. 05:32:54 The answer is that the poll operation is easy to define both internally to Scheme-CML (its definition is much smaller than that of the synchronize operation, and hence perhaps helpful to understand the code), and externally using just the exposed interface of CML, by using a zero-duration timeout rendezvous. 05:40:36 -!- sstrickl [n=sstrickl@pool-151-199-30-68.bos.east.verizon.net] has quit [] 05:41:03 steiger: What's your purpose? 05:43:58 ct2rips [n=ct2rips@dslb-092-073-160-174.pools.arcor-ip.net] has joined #scheme 05:54:31 zanes [n=zane@c-66-31-22-14.hsd1.ma.comcast.net] has joined #scheme 05:58:33 -!- zanes [n=zane@c-66-31-22-14.hsd1.ma.comcast.net] has quit [Client Quit] 06:06:55 -!- jonrafkind [n=jon@98.202.86.149] has quit [Connection timed out] 06:13:38 -!- rstandy [n=rastandy@net-93-144-217-229.t2.dsl.vodafone.it] has quit [Read error: 60 (Operation timed out)] 06:46:11 -!- foof [n=user@dn157-046.naist.jp] has quit ["ERC Version 5.2 (IRC client for Emacs)"] 06:50:41 dmoerner [n=dmr@69.26.214.2] has joined #scheme 06:52:04 ASau [n=user@77.246.230.132] has joined #scheme 07:06:01 thesnowdog [i=thesnowd@114.73.162.79] has joined #scheme 07:09:13 foof [n=user@dn157-046.naist.jp] has joined #scheme 07:10:30 rstandy [n=rastandy@pc212-189-140-32.unile.it] has joined #scheme 07:21:12 -!- synx [i=synx@gateway/gpg-tor/key-0xA71B0C6A] has quit [Remote closed the connection] 07:22:25 synx [i=synx@gateway/gpg-tor/key-0xA71B0C6A] has joined #scheme 07:26:00 -!- rstandy [n=rastandy@pc212-189-140-32.unile.it] has quit [Remote closed the connection] 07:26:47 rstandy [n=rastandy@pc212-189-140-32.unile.it] has joined #scheme 07:27:43 MichaelRaskin [n=MichaelR@213.171.48.239] has joined #scheme 07:32:39 -!- synx [i=synx@gateway/gpg-tor/key-0xA71B0C6A] has quit [Remote closed the connection] 07:34:19 synx [i=synx@gateway/gpg-tor/key-0xA71B0C6A] has joined #scheme 07:34:41 -!- thesnowdog [i=thesnowd@114.73.162.79] has quit ["Leaving"] 07:50:10 -!- ASau [n=user@77.246.230.132] has quit [Read error: 104 (Connection reset by peer)] 07:54:04 ASau [n=user@77.246.230.132] has joined #scheme 07:58:55 -!- ct2rips [n=ct2rips@dslb-092-073-160-174.pools.arcor-ip.net] has quit [anthony.freenode.net irc.freenode.net] 07:58:55 -!- offby1 [n=user@pdpc/supporter/monthlybyte/offby1] has quit [anthony.freenode.net irc.freenode.net] 07:58:55 -!- steiger [n=steiger@189.105.104.187] has quit [anthony.freenode.net irc.freenode.net] 07:58:55 -!- emma [n=em@unaffiliated/emma] has quit [anthony.freenode.net irc.freenode.net] 07:58:55 -!- metasyntax [n=taylor@pool-71-127-125-129.aubnin.fios.verizon.net] has quit [anthony.freenode.net irc.freenode.net] 07:58:55 -!- tarbo [n=me@unaffiliated/tarbo] has quit [anthony.freenode.net irc.freenode.net] 07:58:55 -!- abbyz [n=adkulkar@unaffiliated/abbyz] has quit [anthony.freenode.net irc.freenode.net] 07:58:55 -!- tessier [n=treed@kernel-panic/sex-machines] has quit [anthony.freenode.net irc.freenode.net] 07:58:55 -!- rotty [n=rotty@nncmain.nicenamecrew.com] has quit [anthony.freenode.net irc.freenode.net] 07:58:55 emma_ [n=em@cpe-98-14-154-71.nyc.res.rr.com] has joined #scheme 07:58:58 tessier_ [n=treed@mail.copilotco.com] has joined #scheme 07:58:58 rotty_ [n=rotty@nncmain.nicenamecrew.com] has joined #scheme 07:59:02 offby1 [n=user@q-static-138-125.avvanta.com] has joined #scheme 07:59:05 steiger [n=steiger@189.105.104.187] has joined #scheme 07:59:09 ct2rips [n=ct2rips@dslb-092-073-160-174.pools.arcor-ip.net] has joined #scheme 08:00:01 rstandy` [n=rastandy@pc212-189-140-32.unile.it] has joined #scheme 08:00:55 tarbo [n=me@unaffiliated/tarbo] has joined #scheme 08:04:01 abbyz [n=adkulkar@travertine.cs.indiana.edu] has joined #scheme 08:07:23 -!- patmaddox [n=patmaddo@213.sub-75-215-64.myvzw.com] has quit [Read error: 110 (Connection timed out)] 08:15:42 hkBst [n=hkBst@gentoo/developer/hkbst] has joined #scheme 08:18:25 attila_lendvai [n=ati@catv-89-132-189-132.catv.broadband.hu] has joined #scheme 08:18:30 metasyntax [n=taylor@pool-71-127-125-129.aubnin.fios.verizon.net] has joined #scheme 08:21:16 mmc1 [n=mima@esprx02x.nokia.com] has joined #scheme 08:22:53 ejs [n=eugen@77.222.151.102] has joined #scheme 08:24:33 -!- jao [n=jao@80.31.223.29] has quit [Read error: 110 (Connection timed out)] 08:25:52 -!- rstandy [n=rastandy@pc212-189-140-32.unile.it] has quit [No buffer space available] 08:30:42 leppie|work [i=52d2e3c8@gateway/web/freenode/x-jxhtugaasyqknwou] has joined #scheme 08:37:03 npe [n=npe@195.207.5.2] has joined #scheme 08:37:12 -!- dmoerner [n=dmr@69.26.214.2] has quit ["Leaving"] 08:41:47 -!- leppie [n=lolcow@dsl-244-199-242.telkomadsl.co.za] has quit [Read error: 131 (Connection reset by peer)] 08:57:30 leppie [n=lolcow@dsl-244-199-242.telkomadsl.co.za] has joined #scheme 09:06:41 masm [n=masm@bl9-114-121.dsl.telepac.pt] has joined #scheme 09:08:00 kssreeram [n=kssreera@61.247.251.10] has joined #scheme 09:08:26 Is there a routine in Scheme that'll negate an integer? 09:08:35 Something like: (negate 1) 09:09:14 (- 1) 09:10:26 OK. Thanks. 09:13:40 -!- leppie [n=lolcow@dsl-244-199-242.telkomadsl.co.za] has quit [Remote closed the connection] 09:20:24 jao [n=jao@74.Red-80-24-4.staticIP.rima-tde.net] has joined #scheme 09:24:30 -!- MichaelRaskin [n=MichaelR@213.171.48.239] has quit [Remote closed the connection] 09:26:20 MichaelRaskin [n=MichaelR@213.171.48.239] has joined #scheme 09:43:42 QinGW1 [n=wangqing@203.86.89.226] has joined #scheme 09:44:58 -!- Axioplase is now known as Axioplase_ 09:48:58 QinGW2 [n=wangqing@203.86.89.226] has joined #scheme 09:51:36 -!- syntropy [n=who@unaffiliated/syntropy] has quit [Remote closed the connection] 09:51:41 syntropy [n=who@unaffiliated/syntropy] has joined #scheme 09:51:50 -!- guenthr [n=unknown@sahnehaschee.unix-ag.uni-kl.de] has quit [Remote closed the connection] 09:51:53 guenthr [n=unknown@sahnehaschee.unix-ag.uni-kl.de] has joined #scheme 09:57:25 emma [n=em@cpe-98-14-154-71.nyc.res.rr.com] has joined #scheme 09:59:06 leppie [n=lolcow@41.244.199.242] has joined #scheme 09:59:35 QinGW3 [n=wangqing@203.86.89.226] has joined #scheme 09:59:35 -!- QinGW2 [n=wangqing@203.86.89.226] has quit [Read error: 104 (Connection reset by peer)] 10:00:14 -!- QinGW [n=wangqing@203.86.89.226] has quit [Connection timed out] 10:03:32 -!- emma_ [n=em@cpe-98-14-154-71.nyc.res.rr.com] has quit [Success] 10:03:58 QinGW [n=wangqing@203.86.89.226] has joined #scheme 10:05:49 -!- QinGW1 [n=wangqing@203.86.89.226] has quit [Connection timed out] 10:07:37 -!- QinGW3 [n=wangqing@203.86.89.226] has quit [Read error: 60 (Operation timed out)] 10:08:52 -!- QinGW [n=wangqing@203.86.89.226] has quit [Read error: 104 (Connection reset by peer)] 10:28:53 -!- ejs [n=eugen@77.222.151.102] has quit [Read error: 104 (Connection reset by peer)] 10:29:10 ejs [n=eugen@77.222.151.102] has joined #scheme 10:34:37 -!- ejs [n=eugen@77.222.151.102] has quit [Read error: 104 (Connection reset by peer)] 10:36:24 jeapostrophe [n=jay@69.169.141.110.provo.static.broadweavenetworks.net] has joined #scheme 10:49:20 -!- mapreduce [n=ricky@varenka.cime.net] has quit [Read error: 104 (Connection reset by peer)] 10:49:36 ejs [n=eugen@77.222.151.102] has joined #scheme 10:53:59 -!- leppie [n=lolcow@41.244.199.242] has quit [Read error: 131 (Connection reset by peer)] 10:59:33 -!- ejs [n=eugen@77.222.151.102] has quit [Read error: 104 (Connection reset by peer)] 10:59:41 ejs [n=eugen@77.222.151.102] has joined #scheme 11:00:46 -!- rcy [n=rcy@S01060013104bf489.ok.shawcable.net] has quit [Read error: 104 (Connection reset by peer)] 11:01:10 leppie [n=lolcow@dsl-244-199-242.telkomadsl.co.za] has joined #scheme 11:13:47 -!- kssreeram [n=kssreera@61.247.251.10] has quit [] 11:30:11 -!- npe [n=npe@195.207.5.2] has quit [] 11:38:05 -!- metasyntax [n=taylor@pool-71-127-125-129.aubnin.fios.verizon.net] has quit [Remote closed the connection] 11:38:15 metasyntax [n=taylor@pool-71-127-125-129.aubnin.fios.verizon.net] has joined #scheme 11:44:36 kuribas [i=kristof@d54C437BA.access.telenet.be] has joined #scheme 11:47:59 -!- metasyntax [n=taylor@pool-71-127-125-129.aubnin.fios.verizon.net] has quit [Client Quit] 11:48:14 -!- leppie [n=lolcow@dsl-244-199-242.telkomadsl.co.za] has quit [Remote closed the connection] 12:08:09 Nshag [i=user@Mix-Orleans-106-2-164.w193-248.abo.wanadoo.fr] has joined #scheme 12:09:13 Jafet [n=Jafet@unaffiliated/jafet] has joined #scheme 12:10:25 -!- emmy [n=em@cpe-98-14-154-71.nyc.res.rr.com] has quit [anthony.freenode.net irc.freenode.net] 12:10:25 -!- Riastradh [n=rias@pool-141-154-58-196.bos.east.verizon.net] has quit [anthony.freenode.net irc.freenode.net] 12:10:25 -!- JKGpp [n=juergen@dslb-088-065-192-074.pools.arcor-ip.net] has quit [anthony.freenode.net irc.freenode.net] 12:10:25 -!- pbusser2 [n=peter@ip138-238-174-82.adsl2.static.versatel.nl] has quit [anthony.freenode.net irc.freenode.net] 12:10:25 -!- saccade [n=saccade_@COMBINATOR.MIT.EDU] has quit [anthony.freenode.net irc.freenode.net] 12:10:25 -!- mornfall [n=mornfall@kde/developer/mornfall] has quit [anthony.freenode.net irc.freenode.net] 12:10:26 -!- Adrinael [i=adrinael@rib4.kyla.fi] has quit [anthony.freenode.net irc.freenode.net] 12:12:06 emmy [n=em@cpe-98-14-154-71.nyc.res.rr.com] has joined #scheme 12:12:06 Riastradh [n=rias@pool-141-154-58-196.bos.east.verizon.net] has joined #scheme 12:12:06 JKGpp [n=juergen@dslb-088-065-192-074.pools.arcor-ip.net] has joined #scheme 12:12:06 pbusser2 [n=peter@ip138-238-174-82.adsl2.static.versatel.nl] has joined #scheme 12:12:06 saccade [n=saccade_@COMBINATOR.MIT.EDU] has joined #scheme 12:12:06 mornfall [n=mornfall@kde/developer/mornfall] has joined #scheme 12:12:06 Adrinael [i=adrinael@rib4.kyla.fi] has joined #scheme 12:14:49 mornfall_ [n=mornfall@anna.fi.muni.cz] has joined #scheme 12:17:04 -!- mornfall [n=mornfall@kde/developer/mornfall] has quit [Connection reset by peer] 12:20:03 -!- leppie|work [i=52d2e3c8@gateway/web/freenode/x-jxhtugaasyqknwou] has quit ["Page closed"] 12:21:54 leppie|work [i=52d2e3c8@gateway/web/freenode/x-xninrvzdjmagkxey] has joined #scheme 12:24:47 kssreeram [n=kssreera@122.174.67.43] has joined #scheme 12:25:57 leppie [n=lolcow@dsl-244-199-242.telkomadsl.co.za] has joined #scheme 12:32:10 hey all...does anyone have experience running the PLT web server in a production environment? 12:32:20 -!- mornfall_ is now known as mornfall 12:33:57 -!- leppie [n=lolcow@dsl-244-199-242.telkomadsl.co.za] has quit [Read error: 104 (Connection reset by peer)] 12:35:12 I'm wondering a few basic things about it like, e.g., where did you do it ? (e.g. linnode) does it automatically daemonize itself or did you set it up under inetd, etc? 12:35:47 the web server docs I see off of http://docs.plt-scheme.org/ are Guide style. Is there a Reference style anywhere for the web server? 12:36:42 annodomini [n=lambda@c-75-69-96-104.hsd1.nh.comcast.net] has joined #scheme 12:44:17 blackened` [n=blackene@ip-89-102-28-224.karneval.cz] has joined #scheme 12:45:45 -!- jeapostrophe [n=jay@69.169.141.110.provo.static.broadweavenetworks.net] has quit [] 12:47:59 dstorrs`: (a) ask on the plt mailing list; (b) it's best to run it as a service (or just in the background from a user account); (c) I'm not sure about hosting services but there are some that people have used -- and it's usually easy to run via apache if you need both; (d) look down the page and you'll see the two references (one for its internals, and one for writing applications for it) -- at docs.plt-scheme.org/w 12:47:59 eb-server and .../web-server-internal. 12:51:30 eli: oh, oops. Sorry, I must have missed the -internals list; apologies. 12:52:33 leppie [n=lolcow@dsl-244-199-242.telkomadsl.co.za] has joined #scheme 12:58:12 ok, I'm signed up for list and will ask there. Thanks for the pointer. 13:01:15 -!- blackened` [n=blackene@ip-89-102-28-224.karneval.cz] has quit [anthony.freenode.net irc.freenode.net] 13:01:15 -!- leppie [n=lolcow@dsl-244-199-242.telkomadsl.co.za] has quit [anthony.freenode.net irc.freenode.net] 13:01:15 -!- pbusser2 [n=peter@ip138-238-174-82.adsl2.static.versatel.nl] has quit [anthony.freenode.net irc.freenode.net] 13:01:15 -!- JKGpp [n=juergen@dslb-088-065-192-074.pools.arcor-ip.net] has quit [anthony.freenode.net irc.freenode.net] 13:01:15 -!- saccade [n=saccade_@COMBINATOR.MIT.EDU] has quit [anthony.freenode.net irc.freenode.net] 13:01:15 -!- Adrinael [i=adrinael@rib4.kyla.fi] has quit [anthony.freenode.net irc.freenode.net] 13:01:15 -!- Riastradh [n=rias@pool-141-154-58-196.bos.east.verizon.net] has quit [anthony.freenode.net irc.freenode.net] 13:01:15 -!- emmy [n=em@cpe-98-14-154-71.nyc.res.rr.com] has quit [anthony.freenode.net irc.freenode.net] 13:02:21 leppie [n=lolcow@dsl-244-199-242.telkomadsl.co.za] has joined #scheme 13:02:21 blackened` [n=blackene@ip-89-102-28-224.karneval.cz] has joined #scheme 13:02:21 emmy [n=em@cpe-98-14-154-71.nyc.res.rr.com] has joined #scheme 13:02:21 Riastradh [n=rias@pool-141-154-58-196.bos.east.verizon.net] has joined #scheme 13:02:21 JKGpp [n=juergen@dslb-088-065-192-074.pools.arcor-ip.net] has joined #scheme 13:02:21 pbusser2 [n=peter@ip138-238-174-82.adsl2.static.versatel.nl] has joined #scheme 13:02:21 saccade [n=saccade_@COMBINATOR.MIT.EDU] has joined #scheme 13:02:21 Adrinael [i=adrinael@rib4.kyla.fi] has joined #scheme 13:04:54 npe [n=npe@195.207.5.2] has joined #scheme 13:12:44 cornucopic [n=r00t@202.3.77.134] has joined #scheme 13:21:42 arcfide [n=arcfide@adsl-99-50-231-131.dsl.bltnin.sbcglobal.net] has joined #scheme 13:22:27 metasyntax [n=taylor@75-149-208-121-Illinois.hfc.comcastbusiness.net] has joined #scheme 13:24:30 -!- annodomini [n=lambda@wikipedia/lambda] has quit [] 13:38:36 MrFahrenheit [n=RageOfTh@users-38-128.vinet.ba] has joined #scheme 13:40:18 Guest98518 [n=moe@p54A0CDB9.dip.t-dialin.net] has joined #scheme 13:42:55 apgwoz [n=apgwoz@216.156.136.2.ptr.us.xo.net] has joined #scheme 13:44:06 arcfide: "I don't reply to things if I can't say at least a little something that hasn't already been covered or if I already understand them" ? 13:46:17 -!- Guest98518 [n=moe@p54A0CDB9.dip.t-dialin.net] has quit ["Ciao..."] 13:46:49 -!- MrFahrenheit [n=RageOfTh@users-38-128.vinet.ba] has quit [Read error: 104 (Connection reset by peer)] 13:54:00 eli: I knew someone was going to bring that up. 13:54:57 But at least I didn't do that on the mailing list. 13:55:08 (With a cute note saying that by saying it I'm doing the same thing.) 13:56:14 eli: That probably wasn't clear. Basically, in an effort to filter out and keep up with the discussion, I limit the things to which I respond to either messages for which I can say something "new" or messages that I do not understand, and for which I need clarification. Since I have been asked about it before, I figured I would post it. 13:56:38 eli: Indeed, but I wouldn't have minded if you did post it on the list. :-) It's not like one is less private than the other, if someone cares, and I suspect most don't. 13:57:38 Well, IRC is much more ignorable than email... 13:58:12 The real question is why wouldn't whoever is in charge of it allow it to be gmaned. 13:59:03 elf: I have no idea. 13:59:28 arcfide: How do I get Opera to show me my inbox minus mailing lists? 13:59:35 s/f/i/ 14:01:24 Perhaps we should all mail the list administrator and suggest that he or she allow Gmane. 14:02:33 *eli* +1s chandler 14:02:40 Yes. 14:03:16 Of course by the time this will get anywhere, traffic will be down to it's usual 0.05 messages/day 14:04:09 chandler: In Opera, a new filter is automatically created for every mailing list. If I wanted to pay attention to my main mail, I would just deselect the "Show mailing lists" box from the Unread Messages view. 14:04:28 Ah, that's what I was looking for. 14:04:52 Opera also allows me to tag messages, so if I want to get to a mailing list post I usually tag it with "Send Reply". 14:04:54 I'm already using Opera on my Windows systems; perhaps it's time to switch my Macs as well. 14:05:33 And Opera's filters can automatically learn from what are put in and take out from them, so my mail is now automatically sorted for me, and I see new messages that are important into filters like School, Work, Records, Family. 14:06:22 Does that auto-filter thing sync itself over IMAP? If not, it might be more of a hassle than it's worth. 14:06:28 *eli* wonders where the emacs enthusiasm disappeared. 14:06:54 chandler: If you are using IMAP, it won't work with your IMAP folders. It's only Opera filters, I think. 14:06:57 I *should* set up server-side filtering at some point. 14:07:16 You'd have to either keep everything in one mailbox and filter it with Opera or do something else like that, I don't play with IMAP and Opera much. 14:07:32 eli: I've never particularly liked emacs, and especially not for reading mail and news. 14:07:59 However, if you do keep all your messages in the IMAP inbox, or Opera will show you messages from every folder in IMAP in its received box, you could probably make it work just fine. 14:08:08 eli: You know me, I've been Emacs free for some time. 14:08:10 Server-side filtering is really what I want, so that this stuff never even hits my phone. 14:08:21 Your phone....Aaaah. 14:08:23 Hehehehe. 14:08:27 arcfide: i cant gopher from work, so i'll try from home again tonite, the content looked like something that was text encoded, not tar.gz or such, tried redownloading, renaming, etc in case FF was auto decompressing 14:08:45 leppie|work: It's XZ compressed. 14:09:04 Gopher?! 14:09:04 wtf is XZ? 14:09:15 yes chandler I ask myself that too :) 14:09:19 leppie|work: LZMA, 7-Zip, and such. 14:09:26 chandler: Hey, don't diss the rodent! 14:09:50 Never, but why did it come up? 14:10:00 I have never heard of XZ compression, is that a new, or very old thing? 14:10:26 *chandler* was very happy when OmniWeb added Gopher support on April 1st... 14:10:44 leppie|work: Slackware has started using it to compress its packages, and it has better compression, but not the overhead of BZip2. 14:11:04 chandler: I use Gopher instead of Web Indexes in Apache. 14:11:16 Or, more like a proper, nice FTP. 14:11:33 leppie|work: There are UNIX packages out there, and 7-Zip should handle it. 14:11:46 i see arcfide, is it also a stream compressor like gzip or bz2? or a solid one like zip/rar ? 14:11:50 If people really don't like it, I'd consider using Gzip again, but I'd like to see how it flies. 14:12:04 leppie|work: I don't really know. 14:12:08 ok 14:12:15 i'll try in a few hours 14:12:50 leppie|work: Sorry about that! You know, you can use the Gopher Web proxy. 14:13:58 leppie|work: Floodgap has a web proxy that works in a pinch, though of course you should use a real client when you can. 14:14:19 chandler: I wish people would stop trying to kill Gophers. :-) It really works quite well for what it was designed. 14:15:24 Riastradh: I have pulled your changes and will start examining them later today. 14:15:29 Riastradh: Thanks. 14:17:52 7-Zip is garbage 14:18:32 foof: Okay, 14:18:42 foof: Tell us how you really feel. 14:20:48 foof: Still, XZ compression Arcrepo => 672K; GZ compressiong => 1.2M. 14:21:18 I'm thinking more of the 7-Zip implementation. 14:22:13 That could very well be. 14:22:29 I usually use it, though, when working in Windows. 14:24:09 Well, I'm outta here. :-) 14:24:24 leppie|work: Please email me if you continue to have trouble. 14:24:29 -!- arcfide [n=arcfide@adsl-99-50-231-131.dsl.bltnin.sbcglobal.net] has left #scheme 14:25:02 foof: why is 7-zip bad? 14:25:51 The implementation is a hideous mess with no standard API, and different packagings of it provide different incompatible interface layers. 14:26:39 (And I mean hideous even by C++ standards.) 14:26:45 Ah, so it's nothing to do with the actual compression scheme, right? 14:26:54 nope 14:27:16 Is it also the same (bad) source that is used on linux? 14:36:18 patmaddox [n=patmaddo@247.sub-75-214-215.myvzw.com] has joined #scheme 14:37:47 -!- ejs [n=eugen@77.222.151.102] has quit [Read error: 110 (Connection timed out)] 14:38:42 luz [n=davids@139.82.89.70] has joined #scheme 14:38:57 Kaonashi [n=Tanami@CPE-121-220-128-148.sa.bigpond.net.au] has joined #scheme 14:39:40 -!- Kaonashi is now known as Mr_Vile 14:41:42 "Write once fail anywhere" 14:45:54 hmm 14:46:11 write never fail anywhere 14:49:49 davazp [n=user@56.Red-79-153-148.dynamicIP.rima-tde.net] has joined #scheme 14:51:04 -!- cornucopic [n=r00t@202.3.77.134] has quit ["so long.."] 14:56:39 -!- Piratero [i=18074048@gateway/web/freenode/x-fshmwxbluybgkyin] has quit [Ping timeout: 180 seconds] 15:03:31 jlongster [n=user@75-148-111-133-Chattanooga.hfc.comcastbusiness.net] has joined #scheme 15:06:28 foof, amen to the opinion of 7-Zip and XZ. Those tools give LZMA a bad name. 15:08:11 hotblack23 [n=jh@p5B054B75.dip.t-dialin.net] has joined #scheme 15:10:13 -!- kniu [n=kniu@ELMUNDO.RES.CMU.EDU] has quit [Read error: 110 (Connection timed out)] 15:10:32 Fare [n=Fare@ita4fw1.itasoftware.com] has joined #scheme 15:12:54 -!- davazp [n=user@56.Red-79-153-148.dynamicIP.rima-tde.net] has quit ["ERC Version 5.3 (IRC client for Emacs)"] 15:13:05 kniu [n=kniu@CMU-284828.WV.CC.CMU.EDU] has joined #scheme 15:19:25 sphex_ [n=nobody@modemcable244.185-56-74.mc.videotron.ca] has joined #scheme 15:20:26 -!- sphex [n=nobody@modemcable244.185-56-74.mc.videotron.ca] has quit [Read error: 60 (Operation timed out)] 15:22:12 -!- ski_ [n=md9slj@remote1.student.chalmers.se] has quit ["Lost terminal"] 15:23:32 davazp [n=user@56.Red-79-153-148.dynamicIP.rima-tde.net] has joined #scheme 15:23:34 Phaze [n=PhazeDK@0x5da32b16.cpe.ge-0-1-0-1104.soebnqu1.customer.tele.dk] has joined #scheme 15:24:34 -!- danfowler1 [n=Dfowler@ip-66-9-231-201.autorev.intellispace.net] has quit [Read error: 104 (Connection reset by peer)] 15:28:15 PhazeDK [n=PhazeDK@0x5da32b16.cpe.ge-0-1-0-1104.soebnqu1.customer.tele.dk] has joined #scheme 15:28:29 Edico [n=Edico@unaffiliated/edico] has joined #scheme 15:29:56 -!- kniu [n=kniu@CMU-284828.WV.CC.CMU.EDU] has quit [Read error: 60 (Operation timed out)] 15:30:29 minion: memo for jcowan: this is just plain bad. 15:30:29 Remembered. I'll tell jcowan when he/she/it next speaks. 15:30:53 eli: hi! 15:31:04 Fare: Good morning. 15:31:23 Fare: BTW, I've been forwarding your blog post a few times in various places. 15:31:58 It's a good demonstration of the whole `eval-when' mess and the "everything is in the toplevel" thing. 15:32:22 -!- Mr_Vile [n=Tanami@CPE-121-220-128-148.sa.bigpond.net.au] has left #scheme 15:32:53 danfowler [n=Dfowler@ip-66-9-231-201.autorev.intellispace.net] has joined #scheme 15:34:47 Hello Fare. 15:35:04 eli: In your memo to jcowan, is your "this" referring to his ports proposal? 15:35:32 Yes. 15:36:02 Yeah. But in fairness I haven't seen a proposal for this type of thing that doesn't have significant warts. 15:36:44 -!- edwardk [n=edwardkm@209-6-103-127.c3-0.smr-ubr1.sbo-smr.ma.cable.rcn.com] has quit [Read error: 104 (Connection reset by peer)] 15:36:58 edwardk [n=edwardkm@209-6-103-127.c3-0.smr-ubr1.sbo-smr.ma.cable.rcn.com] has joined #scheme 15:37:22 I'll note that this proposal assumes that ports are bivalent, which is not necessarily an easy thing to deal with. I'd rather that the specification assumed one or another, and left it up to a library to implement bivalent ports for the users that want it. 15:37:26 I have no interest in even looking at the details, but the main thing which is broken is how it lumps two separate concepts -- custom ports and a kind of dynamic record thing with its own hard-wired defaults and behaviors. 15:37:47 Narrenschiff [n=ritchie@vpn100.its.manchester.ac.uk] has joined #scheme 15:38:03 Well, he's trying to hammer gray streams into a Scheme-size hole. 15:38:58 chandler, hi. 15:39:10 It's exactly the kind of thing which will lead to generalization attempts (when people find it useful for other things) when its too late (since too much hard-wiring happens with this one). Not a good design for any size of a scheme, either bogus or not. 15:41:06 I'm not sure why this needs to be specified like this anyway. Why not just have `port-set-read-procedure!', `port-set-write-procedure!', etc? Why the generalized symbol list thing? 15:41:35 Yes, that's my point. 15:41:44 And I can answer that too, I think. 15:41:57 jcowan is in identifier-counting mode -- new names are expensive. 15:42:26 So he's basically named some procedures with two symbols instead of one. It doesn't help. 15:42:46 And I'm in character counting mode, I say we replace those long names with `psrp!' and `pswp!' 15:42:51 An extreme version of this would be removing `+' `-' etc, and replacing them with (arith '+ 1 2 3) etc. 15:42:56 Let's get in character 15:43:04 eli: Right. 15:43:30 .oO( "gray" streams? ) 15:43:45 foof: a powerful voting bloc; piss them off at your peril 15:44:33 foof: Sorry, I meant Gray streams. 15:44:38 eli, sure, just like BOOLE! 15:44:39 minion: tell foof about Gray streams 15:44:40 foof: have a look at Gray streams: "Gray Streams" are a generic function wrapping of the COMMON-LISP streams in the standard library, allowing for further specialization by end users. http://www.cliki.net/Gray%20streams 15:44:44 rudybot: limpid? 15:44:44 Riastradh: eh? Try "rudybot: help". 15:44:48 Wrong bot. 15:44:50 incubot: limpid 15:44:53 I've heard BOOLE is the crowning jewel perched precariously upon the perfect peak of programmer prowess, casting its limitless limpid light over the lands of those who scuff and wallow in the dreary dust of digital depravity and unbounded wilful ignorance of the testament of Our Lord God as channeled through the X3J13 committee. 15:45:15 -!- patmaddox [n=patmaddo@247.sub-75-214-215.myvzw.com] has quit [Read error: 110 (Connection timed out)] 15:45:21 Custom ports are easy. The real trick is layered ports, which are needed to implement R6RS transcoded ports. 15:45:50 sstrickl [n=sstrickl@dublin.ccs.neu.edu] has joined #scheme 15:46:04 Does anyone here know how to make Gambit drop me into a break loop when some thread other than the REPL thread signals an error, rather than just saying `Gronk! Deadlock!' when it can't go on because that thread has terminated? 15:46:23 I was just wondering the same thing. 15:46:36 Riastradh: I have no idea what you mean by `BOOLE', and incubot didn't help much. 15:46:39 Riastradh: does it aactually say Gronk? 15:46:42 clhs boole 15:46:42 http://www.lispworks.com/reference/HyperSpec/Body/f_boole.htm 15:46:43 This is pretty frustrating -- unbound variable errors and wrong number of argument errors are being masked by `Gronk! Deadlock!'. 15:46:54 eli, it's from Common Lisp. 15:46:59 eli, see chandler's link. 15:47:03 It's brilliant. 15:47:13 It is, in fact, exactly what you described about arithmetic, but for bitwise operations. 15:47:24 It's one of the dark corners of Common Lisp that nobody actually uses in anger, like `PROG'. 15:47:32 Ah, that one. (Very distant memories kick in.) 15:47:56 dysinger [n=dysinger@24.18.234.48] has joined #scheme 15:48:00 I suspect that if every implementation's `BOOLE' were broken, nobody would notice. 15:48:04 -!- Phaze [n=PhazeDK@0x5da32b16.cpe.ge-0-1-0-1104.soebnqu1.customer.tele.dk] has quit [Read error: 105 (No buffer space available)] 15:48:17 Elly, no, I'm afraid not, although if you think it should, I wholeheartedly agree. 15:48:17 Instead it really says: `*** ERROR IN ##thread-deadlock-action! -- Deadlock detected' 15:48:42 honestly, I think most user errors should be greeted with 'GRONK' 15:48:48 kniu [n=kniu@ELMUNDO.RES.CMU.EDU] has joined #scheme 15:49:43 I was able to elicit the error by running (THREAD-JOIN! #the-number-of-the-thread-that-stopped), but only the general type of the error. 15:51:36 GRONK! Deadlock detected in Scheme standardization process! 15:52:55 Can I invoke the debugger from an exception handler, perhaps? 15:53:05 GRONK! Homey don't play dat! 15:54:13 jonrafkind [n=jon@crystalis.cs.utah.edu] has joined #scheme 15:54:59 -!- dstorrs` [n=user@cpe-98-14-187-196.nyc.res.rr.com] has quit ["ERC Version 5.2 (IRC client for Emacs)"] 15:55:12 Summermute, synx - if either of you were interested, the jeval bot in #jsoftware may interest you. 15:58:55 -!- mmc1 [n=mima@esprx02x.nokia.com] has quit [Remote closed the connection] 16:01:20 -!- abbyz [n=adkulkar@travertine.cs.indiana.edu] has quit [Read error: 104 (Connection reset by peer)] 16:04:02 -!- npe [n=npe@195.207.5.2] has quit [] 16:04:33 jcowan [n=jcowan@cpe-74-68-154-139.nyc.res.rr.com] has joined #scheme 16:04:49 Hello jcowan. 16:04:58 Just as a warning, you're about to be strung up over your ports proposal. 16:05:00 Hey there. 16:05:00 jcowan, memo from eli: this is just plain bad. 16:05:06 Oh, good. 16:05:07 ... and there we go! 16:05:40 The great thing about planting a stake in the ground is that it generally stays there until you move it, but you *can* move (or remove) it. 16:06:00 what is your ports proposal? 16:06:09 putting stake in the ground is waste of good meat 16:06:35 *jcowan* meats leppie and defenestrates him/her. 16:06:35 *eli* seconds leppie 16:06:53 *jcowan* awaits evisceration. 16:07:03 *leppie* looks for a dictionary 16:07:52 Elly: http://lists.r6rs.org/pipermail/r6rs-discuss/2009-September/005301.html 16:07:54 *gnomon* suggests immolation 16:07:59 Ouch! 16:08:02 That hurts! 16:08:07 Only if you weigh the same as a duck. 16:08:25 *jcowan* weighs the same as a good many ducks; does that count? 16:08:38 -!- rstandy` [n=rastandy@pc212-189-140-32.unile.it] has quit [Read error: 110 (Connection timed out)] 16:08:52 I think that lets you off the hook. 16:09:05 Either you're on the hook, or you're off the hook. 16:09:27 But if you're off the hook too long, a loud bzzzzt bzzzzt bzzzzt bzzzzt sound is heard. 16:09:56 OK, I just sent my reply. Basically, I don't like anything about your proposal. :-) 16:12:12 "I do not like thee, Dr. Fell ..." 16:12:38 I like jcowan's proposal, but my opinion is uninformed :P 16:12:47 Tell us the reason why 16:13:15 never! 16:13:53 foof, I found the answer to my question: pass the run-time option `da' to Gambit. That makes it so that `uncaught exceptions will be treated as ``errors'' in all threads', i.e. you get a break loop. 16:14:13 `Da'? Gambit speaks Russian? 16:14:23 dzhus [n=sphinx@93-81-149-191.broadband.corbina.ru] has joined #scheme 16:15:07 Da. Vuy nye znali? 16:18:52 Gambit govorit po-russkiy ochen horrorshow. 16:19:00 *jcowan* giggles. 16:19:39 Riastradh: I don't even understand why Gambit doesn't like that `define-locked-record-type' syntax. You're not defining anything with an introduced name. 16:19:52 Yes, I am, chandler: %CONSTRUCTOR and OBJECT.MUTEX. 16:19:54 hmm I found a new R6RS, lGears 16:20:00      . 16:20:17 leppie: Link? 16:20:30 dunno :) was googling code :p 16:20:33 http://github.com/redchrom/lgears ? 16:20:35 github.com/redchrom/lgears.git/ 16:20:37 , it would be. 16:20:41 yes 16:20:53 Can I pass default declarations to Gambit when invoking COMPILE-FILE? 16:21:36 lol, and it seems it is suspended... 16:21:39 "What, upon compulsion? 'Zounds, an I were at the strappado, or all the racks in the world, I would not tell you on compulsion. Give you a reason on compulsion! If reasons were as plentiful as blackberries, I would give no man a reason upon compulsion, I." 16:21:41 --Falstaff 16:22:23 I wasn't sure that  was the chess term, but apparently so. 16:22:38 jcowan: Yeah, I just checked that on wp :) 16:22:57 Riastradh: Oh, right. OK, yes, that's completely broken. 16:25:02 Oh, great. 16:25:12 % gsc -:s,da 16:25:13 Gambit v4.4.4 16:25:13 > (load "gambit-compile") 16:25:13 zsh: bus error gsc -:s,da 16:25:24 Thanks, Gambit, for such a helpful failure mode! 16:25:37 All software has bugs. 16:26:35 chandler: I think many of your objections are well-taken, but two need discussion. 16:27:17 -!- PhazeDK [n=PhazeDK@0x5da32b16.cpe.ge-0-1-0-1104.soebnqu1.customer.tele.dk] has quit [Read error: 110 (Connection timed out)] 16:27:25 1) I really detest the R6RS kludge whereby a binary port can be made to cough up a corresponding text port, but with a side effect that the binary point, though still open, looks closed to the public interface. 16:27:28 -!- ada2358 [n=ada2358@unaffiliated/ada2358] has quit ["leaving"] 16:27:38 ada2358 [n=ada2358@login-linux.ccs.neu.edu] has joined #scheme 16:27:55 I would prefer irreversibly mutating the port to be a text port the first time you do a text operation on it. 16:28:06 -!- leppie [n=lolcow@dsl-244-199-242.telkomadsl.co.za] has quit [Read error: 104 (Connection reset by peer)] 16:28:26 I would prefer just having binary ports, and codec objects that create a layered text port that performs binary operations on the port. 16:28:39 leppie [n=lolcow@dsl-244-199-242.telkomadsl.co.za] has joined #scheme 16:28:46 It *is* useful to mix text and binary I/O, but you can get there without mixing them in the same port, or forbidding binary operations once you do a text operation. 16:28:54 That breaks the IEEE Scheme procedures, which are spec'd to work on ports. 16:29:31 And I strongly disagree about mixing text and binary I/O. Once you are doing text I/O, you have to assume that there are hidden translation buffers, so you can't ever go back. 16:29:32 -!- Jafet [n=Jafet@unaffiliated/jafet] has quit [Remote closed the connection] 16:29:41 So make strings octet vectors and do Unicode text some other way. 16:29:55 IEEE Scheme does not specify binary I/O, does it? 16:29:59 Whatever a port is, read and write have to work on it. 16:30:00 No. 16:30:08 er; chandler: no 16:30:39 Right. So, binary ports will have to respond with #f to `port?'. 16:30:52 Which doesn't exist. 16:31:08 It's a R6RS extension. 16:31:11 Oh. 16:31:19 To INPUT-PORT? and to OUTPUT-PORT?, then. 16:32:00 Note that this commits you to a wholesale duplication of procedures, instead of just adding {read,peek,write}-u8. 16:32:20 RnRS tends to be schizophrenic about a Lisp vs ML attitude of generic operations vs algebraically narrow operations. 16:32:30 jcowan: I don't understand what you mean by a duplication of procedures. 16:32:51 To with-input-from/output-to-file, you add with-input-from/output-to-binary file. 16:33:04 To open-input/output-file you add open-input-output-binary file. 16:33:05 Etc. etc. 16:33:09 but w/o a good module/unit system, the algebraic way isn't going to cut it. 16:33:35 you'll get a proliferation of special-case procedures. 16:33:37 Small Scheme will have a module system by SC fiat; whether it's good will, of course, be a matter of opinion. 16:33:45 what's SC ? 16:33:51 The Scheme Steering Committee. 16:34:19 *Fare* would like to have a pretense to join the working group 16:34:25 jcowan: I think you can just add another argument to those procedures. (with-input-from-file file thunk #t) can provide a binary input port. 16:34:42 Bleech. 16:34:47 but I haven't been really involved with scheme in a while, and have only written but a few thousand lines of Scheme code. 16:34:51 *jcowan* hates boolean parameters. 16:35:01 OK. Let's drag in keyword arguments. 16:35:08 chandler, at least, use keyword arguments! 16:35:17 That's just duplication, only with the extra added feature of greater cost at run time. 16:35:37 Fare: I was being sarcastic. Keywords are not going to make it in Small Scheme, I think. 16:35:46 No. 16:35:49 hopefully not 16:35:49 I think not. 16:35:58 but then, what if big scheme uses them? 16:36:06 hum. 16:36:12 Fare: If you are interested in my personal proposals, see http://tinyurl.com/thing-one . 16:36:15 Little Scheme and Big Scheme would be better names. 16:36:28 They aren't names, just descriptions. Names are yet to be found. 16:36:44 Little Scheme also is a nice reference to Little Schemer. 16:36:47 *jcowan* is still fond of the name "Diamond" for small Scheme. 16:37:03 and "Coal" for the big one? 16:37:26 Guh? How do I load files defining syntax for COMPILE-FILE to use in Gambit? 16:37:30 I also proposed School and Fool. 16:37:57 jcowan: I'm not suggesting that the R6RS got all of these fiddly little details right, but if they didn't it's even more evidence that the whole issue should be steered around. 16:38:16 *jcowan* would like to see the small Scheme report called something like "Report On The Algorithmic Language Diamond", with none of this "Revised Revised Revised Revised Revised Revised Revised" crap. 16:38:51 I like this idea - "binary ports, and codec objects" 16:39:09 jcowan: On a Scheme providing just binary ports and support for the full 21-bit Unicode space, it's quite possible to provide text I/O layered on the binary port using entirely user-defined encodings - and someone will no doubt write this library. 16:39:11 It's clean, and it's what should have been done. But the costs are high. 16:39:37 minion: flexistreams? 16:39:38 chandler: Of course it's possible. It's even what implementations will do. But the cost of cutting features from IEEE Scheme is high. 16:39:38 Sorry, I couldn't find anything in the database for ``flexistreams''. 16:39:42 minion: flexi-streams? 16:39:42 flexi-streams: FLEXI-STREAMS is a library which implements "virtual" bivalent streams that can be layered atop real binary/bivalent streams. http://www.cliki.net/flexi-streams 16:39:47 I'm only trying to cut one, and I expect a battle over that. 16:39:58 Backward compatibility *counts*, as a lot of people dogpiled on me to tell me. 16:40:17 Haven't you been dogpiled over whether fexprs and (THE-ENVIRONMENT) count, too? 16:40:24 (Obviously, they don't.) 16:40:28 No. 16:40:32 jcowan: I don't think that I really want to cut features from IEEE Scheme - but I think that the concepts of text and binary ports should be cleanly separated. 16:40:44 But I spoke scornfully of R4RS and have been subjected to compulsory re-education. 16:40:50 what about we remove "let" from the small language, since it can be macro expressed with lambda? 16:41:04 The behavior of the text ports provided by the IEEE Scheme-style procedures should be up the implementation. 16:41:13 It is. 16:41:26 Fare: no can do. 16:42:00 I have identified 15 feature groups of optional stuff in the Small Scheme base (quite apart from any SRFIs or other libraries), 16:42:05 but there's plenty else that's not. 16:42:24 The point of standardizing things like "let" is that we don't want everyone building his own subtly incompatible version; it makes other people's code too hard to read. 16:42:28 That's a risk in Scheme at all times. 16:42:46 Also, would anyone notice if transcripts just disappeared? 16:42:49 No, chandler. 16:42:56 Some implementations provide them. 16:43:04 Whether anyone uses them is a question. 16:43:14 They aren't in R6RS at all, even in the (rnrs r5rs) library 16:43:34 The R6RS does not specify an interactive top level, so there is really no place for them. 16:44:27 text/binary streams can be layered on top of the binary stream/codec mechanism 16:44:53 Yes, Summermute, but we're stuck with textual ports because of required backward compatibility. 16:45:00 It's in the spirit of continuations - rip the implementation out of the runtime system and put it under user control 16:45:33 jcowan: Right. So they should be just underspecified enough that they exist and do something that can be used for loading program text. 16:47:06 So now we add binary points, with a whole new set of procedures, and then *new* textual ports layered over the binary ports, with or without new procedures. Feh. 16:47:42 No; I think you just need a form of user-defined textual (only) ports. 16:47:45 And it's still not clean to access both a text port and its underlying binary port, for reasons given. 16:47:49 It's up to the user to implement the codecs that bring the two together. 16:48:14 When the text port is created, the binary port is crap thereafter. So it might just as well be implemented as a mutation of the binary port. 16:48:22 And I'll just point out that the obvious primacy of text file and in/out/err input/output is a relic of time sharing systems designed in the late '60s and '70s :-) 16:48:33 That's not true. There are useful bivalent port systems that buffer. 16:48:44 Whoop, that primacy in programming languages 16:49:01 ACL is probably the best thing to look at here. They also did quite a lot of work to make user-defined (bivalent) streams efficient. 16:49:29 binary points? you mean ports? 16:49:35 text ports would be in a standard library, built on the binary/codec mechanism 16:49:42 -!- Narrenschiff [n=ritchie@vpn100.its.manchester.ac.uk] has quit [] 16:50:07 Summermute, so even the small language should have a core and a library? 16:50:13 (Why did they choose the term `bivalent' to mean something that the word doesn't remotely mean?) 16:50:18 with a standard implementation of the library on top of the core? 16:50:37 s/standard/reference/ 16:50:38 (Chandler chose it, Riastradh) 16:50:50 (No, jcowan, chandler is merely using a term that others chose long ago.) 16:50:54 Narrenschiff [n=ritchie@vpn7.its.manchester.ac.uk] has joined #scheme 16:50:54 (Oh.) 16:51:04 Fare: I'm proposing a twofold factoring: 16:51:04 Well, there are routines in "core" scheme that need not be "primops" assq assv ??? 16:51:20 hence "diamond"? 16:51:25 a core, feature groups of optional items, and then libraries. Libraries are in their own namespaces, whereas feature groups are in the core namespace. 16:51:25 A library would be better, I'll dare say 16:51:26 is it confluent? 16:51:40 -!- rcassidy [n=rcassidy@pinball.ccs.neu.edu] has quit [Remote closed the connection] 16:51:40 -!- shawnps [n=shawn930@129.10.116.123] has quit [Remote closed the connection] 16:51:40 -!- dlouhy [n=jdlouhy@pinball.ccs.neu.edu] has quit [Remote closed the connection] 16:51:41 Is what confluent with what? 16:51:42 -!- danking [n=danking@pinball.ccs.neu.edu] has quit [Read error: 104 (Connection reset by peer)] 16:51:47 what's a "feature group"? 16:52:06 (I'll make the meta statement that it's probably necessary to digest everything that's been done with user-defined streams in the CL world, as well as the R6RS ports chapter, before moving anything forward on the subject of user-defined ports.) 16:52:12 %bignums is an example: if you support that feature group, you have bignums. 16:52:20 If you support %files, you have procedures relevant to files. 16:52:32 what if a library item depends on an unsupported library? 16:52:44 COND-EXPAND is your friend. 16:52:55 I'm not suggesting putting any specific libraries in the standard. 16:53:20 If you mean "libraries" strictly, then it's all about IMPORT. 16:53:48 How do I define my own feature groups? 16:54:02 How do I state a library's dependency on a feature group? 16:54:11 You don't. They are an artifact of the Standard, formalizing the notion of "optional procedure" in the right margin. 16:54:20 Well, that's silly. 16:54:22 how do I store in the compiled object which features it was expanded with? 16:54:32 "Expanded with"? 16:54:54 No sillier, perhaps, than the `optional procedure' designation, but silly nevertheless. 16:55:23 As small as scheme is compared to CL, sometimes i look at many std routines and just see a desire to write a reasonably fast interpreter by coding the std routines in some language other than (the target) scheme 16:55:28 The SC wants optionality and IEEE, thus optionality and IEEE they shall have. 16:55:53 one of the original ideas of Lisp was that there should be no special feature of the implementation that users couldn't reimplement and/or extend reasonably efficiently in userland without magic. 16:55:54 And they want much more optionality than R5RS provides. Very good. 16:55:54 Oh well. I want a useful programming language that is easy to understand, but maybe I also want a pony. 16:56:20 So get an implementation that provides all feature groups. Except %transcripts. 16:56:27 Ponies! 16:56:36 Fare: That's a general principle, yes, but in practice it's not always possible. 16:56:38 The point about declaring a library's dependency on a f.g. is a very good one that I had overlooked. 16:56:53 On a finitely generated...? 16:56:56 Oh, feaure group. 16:57:11 Feature groups are definitely finite. 16:58:02 http://fare.tunes.org/files/samples/And%20a%20pony.mp3 16:58:08 I wanted to complete that as `finitely generated module', since `module' makes sense both in this discussion and after `finitely generated', although the whole term `finitely generated module' didn't make a whit of sense in this discussion about Scheme language design. 16:58:09 Feature groups are artifacts of the language spec, right? Groups of features optional to implement - like bignums or something, right? 16:58:16 -!- ASau [n=user@77.246.230.132] has quit ["off"] 16:58:43 (I'm still waiting to hear a good argument for *not* implementing bignums.) 16:59:02 chandler, running on an 8-bit microcontroller? 16:59:20 Nothing against bignums :-) let's say leaving I/O out of a scheme targeted at embedded systems 16:59:22 executing the enemies of speed, stalin-style? 16:59:26 -!- chylli [n=lchangyi@60.211.214.32] has quit [Remote closed the connection] 16:59:59 -!- Fare [n=Fare@ita4fw1.itasoftware.com] has quit ["Leaving"] 17:00:04 Whoops. He's gone. 17:00:38 My argument agains that is that such a limited implementation of Scheme can simply be called "Scheme, except with a limit on the representable exact integers." 17:00:52 And nobody will care. 17:01:18 On the other hand, making it mandatory will encourage implementors who have no good reason *not* to provide them to do so. 17:02:13 Yeah, but in scheme's "minimalist" tradition, still it's C that has the *library* 'stdio.h' 17:02:29 In C *all* standard procedures are in libraries without exception. 17:02:45 That works because C has a lot more special operators. 17:02:57 Granted. 17:03:25 One good thing about that is that there probably are few (or no) C implementations too slow to implement the standard library !!! 17:03:56 Summermute: that's exactly what feature groups are. 17:04:09 cky [n=cky@cpe-024-211-255-249.nc.res.rr.com] has joined #scheme 17:04:18 But they are exposed in the sense that you can use COND-EXPAND to do things differently depending on which feature grouops are available. 17:04:36 Yeah, 17:04:48 chandler: The reason for not doing bignums is that some people *want* overflows to become inexact, because they need limited space. 17:05:02 That's a legitimate kind of small Scheme system. 17:05:03 I can see that as sort of similar to compiler specific #define's or #pragmas 17:05:05 Some users, or some implementors? 17:05:13 Users. 17:06:30 I presume cond-expand would be a compile time evaluated macro (special form, whatever)? 17:06:37 Riastradh: Your division proposal is obviously not ripe for standardization, but I find it very difficult to resist the pull of its extraordinary beauty. 17:06:41 I must be missing something. In this case, why wouldn't you be working with inexact numbers in the first place? As you pointed out to me the other day, assuming the implementation is using IEEE doubles, you've got a large number of actually-exact integers to work with. 17:06:42 Summermute: Yes. 17:06:56 Finally we'd get conditional compilation :-) 17:06:58 ...what's my division proposal? 17:07:04 Summermute: SRFI-0. 17:07:15 Oh! Numerical division, not division of features or committees or labour or anything. 17:07:18 Right. 17:07:27 I'll peek again 17:07:29 What is the proposal? 17:07:51 (or where!) 17:07:58 http://mumble.net/~campbell/tmp/division.txt 17:08:36 It generalizes each of floor, ceiling, truncate, round, and Euclidean into a pair of division operators, a quotient and a remainder. 17:08:48 (Ceiling is kind of useless.) 17:09:34 -!- Narrenschiff [n=ritchie@vpn7.its.manchester.ac.uk] has quit [] 17:10:06 uh... 17:10:08 wouldn't round-remainder always be 0? 17:10:15 No. 17:10:49 If anyone wants a copy of the paper cited in that document, I can supply it -- it bears the following notice: `Permission to copy without fee all or part of this material is granted provided that the copies are not made or distributed for direct commercial advantage, the ACM copyright notice and the title of the publication and its date appear, and notice is given that copying is by permission of the ACM.' 17:11:38 I just often get one of those "design notions" that one could define an even smaller scheme'ish / ML'ish core language powerful enough to develop the rest of r5rs with good performance in one (or more if you like) library. 17:12:38 We all get design notions sometimes, but with some castor oil and plenty of rest, we eventually get better. 17:12:45 Indeed. That's a common implementation technique. But primitiveness is not the only ground, nor even a sufficient ground, for standardization. 17:12:46 ;-) 17:12:53 so what would round-remainder, ceiling-remainder and floor-remainder be, if not 0? 17:12:54 Ewwww. 17:13:08 synx, you do the math. 17:13:08 Read the paper, synx. 17:13:25 Example: Divide 21 by 4, all five different ways. 17:13:54 I'm reading and I still don't see it... 17:14:17 synx, quick: floor-divide 21 by 4; what are the quotient and remainder? 17:14:18 (ceiling-quotient 21 4) => 6, (ceiling-remainder 21 4) => 0 17:14:29 OK, ceiling-divide, that's fine. 17:14:34 5 and 0 17:14:53 So you say q = 6 and r = 0. We want q and r to satisfy 21 = 4 q + r. Now, is that the case when q = 6 and r = 0? 17:15:16 I summarize the five fundamentals thus: floor rounds toward -inf, ceiling rounds toward +inf, truncate rounds toward 0, round rounds to the nearest even value, and Euclidean rounds negative numbers toward -inf and positive numbers toward +inf, sort of the opposite of truncation. 17:15:21 Is that correct, Riastradh? 17:15:33 By my computation, 4 q + r = 24 when q = 6 and r = 4. 17:15:47 floor, ceiling and round all exist to remove the remainder, either adjusting the quotient up or down. 17:15:47 uh... 17:15:49 jcowan, almost: round rounds to the nearest integer breaking ties by rounding to the nearest even one. 17:15:58 What I meant, yes. 17:15:59 So you're saying it gets a remainder of -3? 17:16:02 I was being excessively terse. 17:16:23 synx, yes: q = 6, r = -3, for ceiling division. 17:16:43 I guess that could be useful... 17:16:50 jcowan, that looks right. You can simplify the description of Euclidean by saying `Euclidean rounds away from 0'. 17:16:57 *jcowan* nods. 17:17:09 why use those adjustments at all, if you can handle an exact answer anyway? 17:17:30 These are exact answers, synx. 17:18:02 Integer division is a two-valued process, a quotient and a remainder. It's all about how much goes in the quotient and how much in the remainder, and the various answers are useful for different purposes. 17:18:07 Yes, but why not just use regular division? 17:18:30 You mean rational division? We *have* that. 17:18:40 (/ 1 2) => 1/2. 17:18:49 But integer division has its uses. 17:19:18 I mean the euclidean thingy where 0 <= r < |n| 17:19:21 If the others are equivalent, what use are they? 17:19:31 They're not equivalent in the answers provided. 17:20:16 Most of our intuitions are about positive divisors and dividends, where the results are consistent. 17:20:21 The division of a by n into q and r exactly satisfies a = n q + r. 17:20:21 Note that q is always an integer, which is often a desirable property when one is dealing with, say, array indices; and if a and n are both integers, then r is an integer, too. 17:20:22 This IRC server appears to be losing badly. 17:20:23 -!- Riastradh [n=rias@pool-141-154-58-196.bos.east.verizon.net] has quit ["Changing server"] 17:20:29 bweaver [n=user@75-148-111-133-Chattanooga.hfc.comcastbusiness.net] has joined #scheme 17:20:36 It's *exactly* what to do when either or both are negative that matters. 17:20:40 Riastradh [n=rias@pool-141-154-58-196.bos.east.verizon.net] has joined #scheme 17:20:52 [replay] It's *exactly* what to do when either or both are negative that matters. 17:20:54 Let's see whether this is any better. 17:21:11 Maybe I'm just not mathy enough. I don't see how it would matter, unless you needed to throw away the remainder. 17:21:16 m811 [n=user@84-50-207-42-dsl.est.estpak.ee] has joined #scheme 17:22:05 Does anyone know how to implement rationalize in a flonum-only system? 17:22:12 If you want to use the remainder as an index into an array, you almost certainly want to use Euclidean division, because what it guarantees is precisely that the remainder is a valid index into an array of length |n|. 17:22:17 dmoerner [n=dmr@89-151.res.pomona.edu] has joined #scheme 17:22:35 *jcowan* remembers being bitten many years ago because in Basic INT() is floor. 17:23:11 On the other hand, you may want to use the remainder as an adjustment to some index, perhaps, in which case a negative remainder may be what you want, depending on the sign of the dividend or the divisor. 17:23:34 jcowan, why is it any different between a flonum-only implementation and any other? 17:24:02 I don't know. In fact, I have no clue how to implement it at all. 17:24:12 There's a reference implementation in IEEE 1178, I believe. 17:24:38 It starts on p. 72. 17:24:48 I don't have access to that, I don't think. Google does ACM DL but not IEEE. 17:25:00 Didn't someone send you a copy? 17:25:19 Oh, is that Scheme? Yes. 17:25:21 *jcowan* looks. 17:25:31 npe [n=npe@94-224-251-223.access.telenet.be] has joined #scheme 17:25:31 I was thinking 754 for some brain-dead reason. 17:25:34 (RATIONALIZE covers the last two pages, in fact.) 17:25:47 (Well, spans, anyway, not covers.) 17:26:14 patmaddox [n=patmaddo@dsl081-087-111.lax1.dsl.speakeasy.net] has joined #scheme 17:26:27 Gosh, the typography is bad in that document. 17:26:38 Indeed. 17:27:10 Not to mention the typophy -- the mass of typos. 17:27:32 I particularly like the (char-alphabet icy char) procedure. 17:27:58 At least this PDF has text, not just a raw scan. 17:28:24 I was rather wondering why char-alphabetic? was missing from IEEE. 17:28:55 *jcowan* reads Appendixes B and C, which are new to him. 17:30:00 It's discouraged, they say, to make Schemes that don't have negative fixnums! Discouraged. 17:30:56 What is this talk of exact real arithmetic? It's preposterous. 17:31:23 You evaluate (sqrt 2) and it returns an exact transcendental value? 17:31:43 Sure, perhaps in its continued fraction representation. 17:32:03 *jcowan* nods. 17:32:05 Quite so. 17:32:12 *jcowan* looked up the footnote. 17:33:04 But trivially the whole real number set cannot be represented by any representation whatsoever, so even that can't work in all cases. 17:33:12 Naturally, not all real numbers have a computable such representation; indeed, only countably many do, and uncountably many are uncomputable, but you seldom encounter those bizarre uncomputable beasts in real life anyway. 17:33:21 *Riastradh* coughs. 17:34:18 Unintended, I insist. 17:34:45 What was unintended? 17:34:52 The puns of `natural' and `real' in that sentence. 17:36:46 It occurs to me that I don't know whether the continued fraction representation covers all computable real numbers, in which case it should suffice for any exact real arithmetic you will ever need on a finite computer. 17:36:59 copumpkin [n=pumpkin@c-24-63-67-154.hsd1.nh.comcast.net] has joined #scheme 17:37:25 That paper is in a conference proceedings, so it may not be in the DL 17:37:28 *jcowan* looks 17:37:57 -!- saccade_ [n=saccade@65-78-24-131.c3-0.smr-ubr1.sbo-smr.ma.cable.rcn.com] has quit ["This computer has gone to sleep"] 17:38:26 I'd expect even uncomputable real numbers could be represented in terms of each other. But again, I'm not all that mathy so... 17:39:43 (that is, the part of the DL I have access to) 17:40:01 Before you represent one in terms of another, synx, you need to have one to begin with. Particular uncomputable real numbers are utterly useless; the set of uncomputable real numbers `exists' only because it is useful for theoretical purposes when considering the complete set of real numbers in aggregate, or complete intervals of real numbers in aggregate. 17:41:20 albacker [n=eni@unaffiliated/enyx] has joined #scheme 17:42:38 mrsolo [n=mrsolo@nat/yahoo/x-upwpxnnvixvntaru] has joined #scheme 17:43:00 For example, it is useful to know that a continuous real-valued function on a closed interval always attains a maximum value. Now, the point at which it attains that maximum value, or the maximum value it attains, might be an uncomputable real number. 17:43:28 If that theorem were false, most of calculus and geometry would fall apart. 17:46:20 INRIA is still cranking, deciding whether they'll let me download the green copy of the paper 17:46:39 does "computable" mean "algorithmic", here ? 17:46:42 The paper does not have a notice on it like that about division operators. 17:46:56 You snarfed it already? 17:46:59 I mean: like the one about division operators had. 17:47:00 Yes. 17:47:29 Apparently Google doesn't buy the conference proceedings, or maybe I just can't do it remotely -- I've tried wget and lynx. 17:47:39 In fact, this doesn't have any copyright notice on it at all. 17:47:47 -!- kssreeram [n=kssreera@122.174.67.43] has quit [Read error: 104 (Connection reset by peer)] 17:47:49 No need for one. 17:48:08 *jcowan* restarts in case the server thread is wedged. 17:48:08 Oh, yes it does: (C) 1990 IEEE 17:48:21 kssreeram [n=kssreera@122.174.67.43] has joined #scheme 17:48:45 Ah, it's a problem with FTP sites vs. Google Chrome. Wget works here. 17:50:10 Let's hear it for green open access! 17:50:45 chandler: ping 17:56:16 -!- kssreeram [n=kssreera@122.174.67.43] has quit [] 17:56:57 kssreeram [n=kssreera@122.174.67.43] has joined #scheme 17:57:21 -!- MichaelRaskin [n=MichaelR@213.171.48.239] has quit [Remote closed the connection] 18:02:08 saccade_ [n=saccade@c-66-31-201-117.hsd1.ma.comcast.net] has joined #scheme 18:02:46 Guest2434 [n=moe@p54A0CDB9.dip.t-dialin.net] has joined #scheme 18:07:26 mario-goulart [n=user@67.205.85.241] has joined #scheme 18:08:05 jcowan: Pong. 18:08:44 -!- copumpkin [n=pumpkin@c-24-63-67-154.hsd1.nh.comcast.net] has quit ["Leaving..."] 18:12:16 -!- davazp [n=user@56.Red-79-153-148.dynamicIP.rima-tde.net] has quit [Read error: 104 (Connection reset by peer)] 18:12:56 -!- albacker [n=eni@unaffiliated/enyx] has quit ["Leaving"] 18:15:12 I've replied meekly to your diatribe and I'm just about to post part 7 bis. 18:16:52 mmm, diatribe 18:17:10 ASau [n=user@83.69.240.52] has joined #scheme 18:18:04 No more bivalent ports 18:18:41 jcowan: Sorry if that came across as a diatribe :-) 18:18:44 but still the same design around binary ports that mutate to become textual. There will be a separate part about that so people can flagellate me therewith. 18:18:51 No problem, diatribes like that are good. 18:19:06 From "Sounds great!" I learn nothing. 18:19:08 bivalent ports! 18:21:19 Sent. 18:22:51 Related question: the specification of `call-with-(input|output)-file' states that the port can be closed when it is possible to prove that it will never be used again for reading or writing. Does this also apply to the port returned by `open-(input|output)-file'? 18:23:37 Does it matter, chandler? 18:24:29 It does to an implementor, doesn't it? 18:24:49 It's just GC: you remove an object when you can prove it will never be referenced again. 18:25:17 How could a user observe the difference, chandler? 18:25:25 There are even systems that GC threads on the same principles. 18:25:30 Through their operating system, presumably. 18:25:36 This isn't "just" GC; it's finalization. 18:26:14 Finalization is something a GC does to communicate its conclusions to the non-GCed outside world. 18:26:43 That's like saying you can observe ordinary GC behavior by monitoring memory allocations/deallocations from another process. 18:26:54 So you can, but we still think of GC as a transparent process. 18:27:32 For that matter, some GCs might "finalize" simple objects by free()ing them, or the arenas they live in. 18:27:34 I don't think the analogy quite holds. Yes, you can observe ordinary GC behavior that way. However, the side effects of closing (or not closing) a file are a bit more obvious in some circumstances. 18:27:51 And then there's the question of ports that are, say, used to perform network I/O. 18:27:58 You can also detect whether a Scheme system does garbage collection, chandler, by asking the operating system. (Is this process's memory growing without bound?) 18:28:08 *jcowan* thinks he said that. 18:28:17 I was eating lunch while you said that, jcowan. 18:28:39 I'm time-sharing here. Lunch is on the other side of the table, and context-switching is too expensive for me to read what has just been said. 18:28:48 *jcowan* chuckles. 18:28:55 Excuse me a moment while I take a bite. Please block all discussion until I return. 18:29:00 Right. I'm trying to raise this question because I think it has an impact on the subject of user-defined ports. Shouldn't there be a procedure which is called when the port is reaped, in order to allow a custom port to duplicate the semantics of ordinary ports? 18:29:21 I conjecture that your move is connected with a new appointment, and if so, I congratulate you on the appointment. 18:30:07 chandler: Reaped, or closed, or both? 18:30:23 For an ordinary object, there is no side-effect of reaping beyond making storage available for other objects. You can view thread reaping in much the same way. However, port reaping seems a bit different to me. 18:30:38 jcowan: Both. 18:30:50 Precisely because ports have external relations. 18:31:05 Now a custom port could have them too, so I'd say your argument is compelling. 18:31:22 -!- dzhus [n=sphinx@93-81-149-191.broadband.corbina.ru] has quit [Remote closed the connection] 18:31:32 That would call for adding close-port to the list of known operations, and making sure that it is called when the port is reaped as well as explicitly closed. 18:31:57 gaah. 18:32:11 Ah. But now you need to arrange to have the operation not itself retain the port. :-) 18:32:18 You're basically right: I'm out of my depth here, and I need to study a lot more. 18:32:30 That's true of all finalization systems. 18:32:36 No, it's not, jcowan. 18:32:52 -!- jao [n=jao@74.Red-80-24-4.staticIP.rima-tde.net] has quit [Read error: 110 (Connection timed out)] 18:32:54 How not? 18:33:18 jeapostrophe [n=jay@lallab.cs.byu.edu] has joined #scheme 18:33:18 It is very easy to design, and even implement with nothing but weak cells (and no special GC support or anything), a system of finalization that guarantees that no object ever zombiefy. 18:33:37 There are finalization systems that explicitly pass the object being reaped to the finalizer, and even ones which allow the finalizer to resurrect the object. 18:33:44 (This is different, of course, from zombie processes, which can be avoided too.) 18:33:58 You just need to separate the finalizable object from the information the finalizer needs. 18:34:13 Hold a weak reference to the former and a strong to the latter. 18:34:25 Interrupt -- back to lunch-time! 18:36:00 Not what I meant -- I know about those. Java has one, which allows resurrection of the zombie, and guarantees never to finalize it a second time. 18:36:21 Right. I think Riastradh answered the question you actually asked, and which I misread. 18:36:26 My point is that there's no way to prevent a hostile finalizer from storing a strong reference to the object. 18:36:44 mmc1 [n=mima@cs137104.pp.htv.fi] has joined #scheme 18:36:45 What? This doesn't involve any resurrection at all -- the object is already collected before the finalizer runs. 18:36:56 So there is no chance for the finalizer to resurrect the object. 18:36:59 -!- saccade_ [n=saccade@c-66-31-201-117.hsd1.ma.comcast.net] has quit ["This computer has gone to sleep"] 18:37:03 Right. I answered the wrong question, and then brought up the question of resurrection. 18:37:08 Ah. 18:37:32 (This is what MIT Scheme uses, by the way, to garbage-collect file descriptors.) 18:37:51 The R6RS doesn't seem to address this point. They basically say just enough to allow implementations to close ports when they are reaped, but this behavior is definitely *not* mandatory. 18:38:04 MIT Scheme does not, however, finalize ports by closing them or anything, because most port-closing procedures don't do anything interesting. 18:38:11 What's interesting, really, is the external resources that might be associated with ports. 18:38:23 This is one of the places where C# (but not Java) has resurrected dynamic extent. 18:38:26 Or they might not be associated with ports -- ports are just a red herring. 18:38:44 moe [n=moe@p54A0D083.dip.t-dialin.net] has joined #scheme 18:39:12 -!- moe is now known as Guest14710 18:39:34 -!- attila_lendvai [n=ati@catv-89-132-189-132.catv.broadband.hu] has quit [Read error: 113 (No route to host)] 18:42:14 Adamant [n=Adamant@unaffiliated/adamant] has joined #scheme 18:46:36 *jcowan* is going to propose the hosing of multiple inexact precisions from small Scheme. 18:46:43 And maybe from large Scheme too. 18:47:59 "Without a reasonable approximation to the real numbers the usefulness of complex numbers is suspect, and it is preferable to omit them entirely." --IEEE 18:50:21 jcowan: Is there anything in the R5RS preventing the use of different bases for the different float precisions? 18:50:22 -!- Nshag [i=user@Mix-Orleans-106-2-164.w193-248.abo.wanadoo.fr] has quit [Remote closed the connection] 18:50:48 While I haven't seen a Scheme that does this, I would be very interested in an implementation that provided both decimal and binary floats. 18:51:43 I'd like to see one that uses continued fractions for exact real numbers. 18:51:48 Defining RATIONAL? might be interesting, though. 18:53:03 -!- Guest2434 [n=moe@p54A0CDB9.dip.t-dialin.net] has quit [Read error: 110 (Connection timed out)] 19:02:07 -!- leppie|work [i=52d2e3c8@gateway/web/freenode/x-xninrvzdjmagkxey] has quit [Ping timeout: 180 seconds] 19:02:11 copumpkin [n=pumpkin@dhcp-212-249.cs.dartmouth.edu] has joined #scheme 19:04:12 -!- luz [n=davids@139.82.89.70] has quit ["Client exiting"] 19:04:18 annodomini_ [n=lambda@130.189.179.215] has joined #scheme 19:04:59 No, chandler. 19:05:31 r5rs continuating-rational? 19:05:31 Sorry, I couldn't find anything for continuating-rational?. 19:09:45 -!- sstrickl [n=sstrickl@dublin.ccs.neu.edu] has quit [] 19:10:08 *alaricsp* has been thoroughly enjoying all this r6rs-discuss traffic 19:11:14 When we've finished R7RS, can we design the next version of C, then move onto making a new POSIX standard for Bourne shells? I don't want the fun to ever end! 19:11:44 LOL 19:11:45 hi alaricsp 19:11:52 ;-) 19:12:50 MichaelRaskin [n=MichaelR@195.91.224.225] has joined #scheme 19:21:21 -!- MichaelRaskin [n=MichaelR@195.91.224.225] has quit [Remote closed the connection] 19:22:38 MichaelRaskin [n=MichaelR@195.91.224.225] has joined #scheme 19:28:23 -!- brx [i=brx@erxz.com] has quit [Remote closed the connection] 19:29:19 -!- dfeuer [n=dfeuer@wikimedia/Dfeuer] has quit [Read error: 110 (Connection timed out)] 19:29:40 jcowan: I agree; for small Scheme, I'd just be inclined to say "flonums are just sort of vague inexact reals, of some kind" and leave it at that. Leave the precise semantics of IEEE floats with all the different precisions and rounding rules and so on to an SRFI or two, I reckon. 19:34:33 -!- ASau [n=user@83.69.240.52] has quit [Read error: 60 (Operation timed out)] 19:41:31 No, I think IEEEness is a reasonable optional feature. 19:41:37 (as opposed to SRFI) 19:41:48 as it is in R5RS and indeed R6RS, but R6RS is more explicit about it. 19:42:50 dfeuer [n=dfeuer@wikimedia/Dfeuer] has joined #scheme 19:43:33 That's fine by me; I'm not too fussed as to the boundary between optional feature and SRFI - that's a more political issue than a technical one IMHO. Either way, each implementation gets to choose to do it or not. 19:44:33 The politicial issue is one of "officialness", as things in the standard can be assumed to have been deliberated more deeply than some random SRFI, and historical "it was in RnRS, so it ain't going out into an SRFI now", and other such considerations 19:44:38 What I was talking about is *precision*. No known Scheme supports anything but IEEE double. 19:45:04 Is the behavior of (lambda () bar) where `bar' is unbound actually specified by the R5RS? 19:45:25 Yeah. I noticed the Factor implementor was wondering about supporting IEEE half-sized floats! I'd never even heard of those. 19:45:32 I assume you mean 'when invoked'? 19:45:46 No, not when invoked. 19:50:14 lowlycoder [n=x@unaffiliated/lowlycoder] has joined #scheme 19:50:29 i'm looking at ypsilon scheme~ and it seems pretty cool; besides lacking recursive repls ... does it have any drawbacks? 19:52:56 brx [i=brx@erxz.com] has joined #scheme 19:55:07 saccade_ [n=saccade@18.188.74.28] has joined #scheme 19:55:46 -!- kssreeram [n=kssreera@122.174.67.43] has quit [] 19:57:10 Where in the world of Scheme would representing flonums in hex go? R5RS and R6RS both seem to mandate that the decimal lexical syntax use base 10. Hex flonums are not so nice for humans to read, but are good for lossless transport of flonums in text. 19:57:17 chandler: I doubt it. 19:57:28 -!- jeapostrophe [n=jay@lallab.cs.byu.edu] has quit [] 19:57:54 alaricsp: What really works is to output flonum representations as hex digits, not as base 16 flonums. 19:58:36 ASau [n=user@83.69.240.52] has joined #scheme 19:58:46 It's pretty verbose: #r (or whatever) followed by 32 hex digits. 19:59:18 Yes 19:59:30 -!- araujo [n=araujo@gentoo/developer/araujo] has quit [Read error: 104 (Connection reset by peer)] 19:59:52 kssreeram [n=kssreera@122.174.67.43] has joined #scheme 20:01:02 So you mean an actual IEEE float, 32 bits or whatever, in hex, rather than having the fields split out? 20:01:43 There's something to be said for that, as base 16 floats aren't meant to be particularly human readable anyway 20:01:57 araujo [n=araujo@gentoo/developer/araujo] has joined #scheme 20:02:33 -!- mreggen [n=mreggen@cm-84.215.28.167.getinternet.no] has quit ["leaving"] 20:03:13 Whoever has not implemented ISO 2022 has not comprehended the nature of Pure Evil. 20:04:29 -!- araujo [n=araujo@gentoo/developer/araujo] has quit [Read error: 54 (Connection reset by peer)] 20:05:27 Come, now, who needs a stateless encoding? We have plenty of memory to record state! 20:07:02 araujo [n=araujo@gentoo/developer/araujo] has joined #scheme 20:08:26 -!- araujo [n=araujo@gentoo/developer/araujo] has quit [Read error: 104 (Connection reset by peer)] 20:10:32 araujo [n=araujo@gentoo/developer/araujo] has joined #scheme 20:11:40 -!- araujo [n=araujo@gentoo/developer/araujo] has quit [Read error: 104 (Connection reset by peer)] 20:13:44 araujo [n=araujo@gentoo/developer/araujo] has joined #scheme 20:15:57 MrFahrenheit [n=RageOfTh@users-42-197.vinet.ba] has joined #scheme 20:19:17 Fine. Now see what happens when you have to navigate backwards in a buffer. 20:19:33 er, navigate to a random location, and then back up to the previous escape sequence. 20:19:34 Now who would ever want to do that? 20:19:43 I am not proposing OPEN REVERSED here. 20:20:30 (an infamous Cobol verb) 20:23:35 Guest10331 [n=user@xdsl-87-78-173-177.netcologne.de] has joined #scheme 20:26:08 re: floats, I believe it was R. Gabriel's CL critique (or maybe worse is better) that argues strongly for simply supporting the floating point capabilities of the hardware architecture, and not specifying specific floating point performance in a language standard. IIRC, a) performance matters and b) people who really care already are used to the nuances of their machine's FP architecture 20:27:54 -!- Guest10331 [n=user@xdsl-87-78-173-177.netcologne.de] has quit [Client Quit] 20:27:57 -!- mmc1 [n=mima@cs137104.pp.htv.fi] has quit [Read error: 110 (Connection timed out)] 20:27:58 moe [n=moe@p54A0D083.dip.t-dialin.net] has joined #scheme 20:28:06 So that would argue for specifying float/double types (theoretically possibly the same), operations and types, but leaving behavior more or less up to the implementation. 20:28:26 -!- moe is now known as Guest97271 20:29:17 -!- metasyntax [n=taylor@75-149-208-121-Illinois.hfc.comcastbusiness.net] has quit ["Nichts mehr."] 20:30:20 sepult [n=user@xdsl-87-78-173-177.netcologne.de] has joined #scheme 20:32:18 -!- blackened` [n=blackene@ip-89-102-28-224.karneval.cz] has quit [] 20:36:08 blackened` [n=blackene@ip-89-102-28-224.karneval.cz] has joined #scheme 20:45:25 -!- Guest14710 [n=moe@p54A0D083.dip.t-dialin.net] has quit [Read error: 110 (Connection timed out)] 20:46:55 -!- lowlycoder [n=x@unaffiliated/lowlycoder] has quit ["leaving"] 20:47:09 -!- alaricsp [n=alaricsp@relief.warhead.org.uk] has quit [Client Quit] 20:47:38 alaricsp [n=alaricsp@relief.warhead.org.uk] has joined #scheme 20:48:53 -!- npe [n=npe@94-224-251-223.access.telenet.be] has quit [] 20:54:20 -!- araujo [n=araujo@gentoo/developer/araujo] has quit [Read error: 104 (Connection reset by peer)] 20:56:02 araujo [n=araujo@gentoo/developer/araujo] has joined #scheme 20:59:20 -!- sepult [n=user@xdsl-87-78-173-177.netcologne.de] has quit ["ERC Version 5.3 (IRC client for Emacs)"] 21:01:22 jeff__ [n=jdlouhy@zerowing.ccs.neu.edu] has joined #scheme 21:02:13 -!- jeff__ is now known as dlouhy 21:02:36 Gah! Scheme48 loses, once more. 21:02:50 Concurrency, 3; Scheme48, 0. 21:04:38 -!- alaricsp [n=alaricsp@relief.warhead.org.uk] has quit [Read error: 110 (Connection timed out)] 21:05:45 sepult [n=user@xdsl-87-78-173-177.netcologne.de] has joined #scheme 21:07:03 Adman65_ [n=Adman65@c-76-103-90-45.hsd1.ca.comcast.net] has joined #scheme 21:07:17 hey, I need to write a procedure that runs about 10 other procedures. Each one returns #t or #f. The calling procedure return #t if all the called procedures return #t, #f otherwise. What's the easiest way to do this? 21:07:40 Use ANY from SRFI 1. 21:07:51 -!- ASau is now known as ASau` 21:07:57 (define (all-true? . args) (apply and args)) 21:07:59 -!- sepult [n=user@xdsl-87-78-173-177.netcologne.de] has quit [Client Quit] 21:08:04 ITYM EVERY, not ANY 21:08:05 *Riastradh* coughs. 21:08:13 *gnomon* facepalms 21:08:24 Yes, I did mean EVERY, but I also meant to thwap gnomon. 21:08:32 it is that time where I realize I am a senior and begin applying to places for jobs! 21:08:40 I deserve the thwapping. 21:08:48 heh 21:08:55 *sjamaan* sees what gnomon did only now 21:08:56 gnomon: how would you and all the results with #t? 21:09:12 -!- Adman65_ is now known as Adman65 21:10:31 Adman65, well, how would you return #t or #f based on whether *one* procedure returned #t or #f? 21:10:45 (equal? #t proc) 21:11:02 O RLY? 21:11:03 -!- danfowler [n=Dfowler@ip-66-9-231-201.autorev.intellispace.net] has quit [Read error: 104 (Connection reset by peer)] 21:11:04 sepult [n=user@xdsl-87-78-173-177.netcologne.de] has joined #scheme 21:11:17 or (true? proc) 21:12:11 what's wrong with that? 21:12:24 EQUAL? is a procedure which returns #t or #f, yes? 21:12:45 ya 21:12:59 What happens if you evaluate (equal? #t equal?) 21:13:30 Well, what value does that give you, rather? 21:14:13 should be (equal? #t (proc)) 21:15:24 -!- mario-goulart [n=user@67.205.85.241] has quit [Remote closed the connection] 21:15:33 Righto. So, let's say you've got procedure which accepts two procedures - how would you return #t if they are both #t, and #f otherwise? 21:15:41 ASau [n=user@83.69.240.52] has joined #scheme 21:17:01 Adman65? 21:17:06 Ya 21:17:13 Did you see my earlier question? 21:17:57 would just be a nested equal 21:18:41 Well, that's one way to do it. How would you write the code? There's a bot in this channel that you can feed short programs in order to try out your answers, if you like. 21:18:48 rudybot: eval (+ 10 20) 21:18:49 gnomon: your sandbox is ready 21:18:49 gnomon: ; Value: 30 21:19:38 -!- sepult [n=user@xdsl-87-78-173-177.netcologne.de] has quit ["ERC Version 5.3 (IRC client for Emacs)"] 21:19:54 yitz_ [n=yitz@unaffiliated/yitz-/x-6738568] has joined #scheme 21:20:11 *jcowan* wants to do something about SRFI 19, but it's a mess -- still, there is no alternative. 21:20:31 I vaguely remember writing up an alternative to SRFI 19. 21:20:40 How about just standardizing current-seconds and current-milliseconds? 21:20:49 Hmm. 21:20:56 -!- hkBst [n=hkBst@gentoo/developer/hkbst] has quit [Read error: 104 (Connection reset by peer)] 21:21:26 All I have left of that on mumble.net is a list of citations. Hmmm. I wonder what happened to it. 21:21:49 gnomon: not sure really. 21:21:59 *jcowan* nods. 21:22:13 Well, I'll look at those links. 21:22:46 Adman65, well, you tried out the earlier bit of code: (equal? #t (proc)) . How would you turn that test into a procedure that you can call, first? Then we can move on to making it work with two arguments. 21:23:37 (define (is-equal? proc) (equal? #t proc)) 21:23:54 err (proc) 21:24:21 Yokay - try feeding that definition to rudybot like I just showed you, and test it out. 21:24:34 I found it. 21:24:35 *jcowan* reads Erik Naggum 21:24:37 It is a trifle clumsy, I see. 21:24:40 Ah, cool! 21:24:47 Time is a clumsy business. 21:24:48 Excerpt: 21:24:49 (define (quotient&remainder dividend divisor) ;Aaaarrrgghh! 21:24:53 rudybot: (define (is-equal? proc) (equal? #t (proc))) 21:24:53 Adman65: eh? Try "rudybot: help". 21:25:15 rudybot: eval (+ 20 30) 21:25:16 gnomon: ; Value: 50 21:25:33 rudybot: eval (define (is-equal? proc) (equal? #t (proc))) 21:25:34 Adman65: your sandbox is ready 21:26:08 Adman65, good stuff. Rudybot should now have internalized your procedure definition. Try calling your procedure and see how it works! 21:26:30 ya, trying to think of a proc now 21:26:37 jedc [n=jed@dyna6-216.cs.uoregon.edu] has joined #scheme 21:26:41 The reason I didn't publish it is that I didn't finish it even to the point of being worth publishing as a draft, but I can make it available if you'd like. 21:27:02 mreggen [n=mreggen@cm-84.215.28.167.getinternet.no] has joined #scheme 21:29:45 Adman65, do you know how to pass a procedure to another procedure? 21:29:54 ya 21:29:58 The basic distinguishing feature is that clocks are explicit and can tell you, if you ask, what precision they support; and time is represented as a triple of a clock and a number of seconds and subunits, of whatever precision the clock supports (e.g., nothing, milliseconds, microseconds, nanoseconds, &c.), from some epoch. 21:30:04 -!- hotblack23 [n=jh@p5B054B75.dip.t-dialin.net] has quit ["Leaving."] 21:30:16 -!- MichaelRaskin [n=MichaelR@195.91.224.225] has quit [Read error: 113 (No route to host)] 21:30:30 -!- copumpkin [n=pumpkin@dhcp-212-249.cs.dartmouth.edu] has quit ["Leaving..."] 21:30:48 Adman65, can you give me an example? More accurately, can you give rudybot an example? Let me know if you need a little help. 21:30:50 Durations are second-class, and represented by seconds, subunits, and the precision of the subunits, which are converted (approximately if necessary) to the precision of the clock of the time on which you do arithmetic with the duration. 21:30:53 MichaelRaskin [n=MichaelR@195.91.224.225] has joined #scheme 21:31:40 (I used the term `resolution' for `precision' in what I wrote. I do not know now which term better means what I intended.) 21:31:53 (map (5 10 15) (lambda (x) (+ x x))) 21:32:55 rudybot: eval (map (5 10 15) (lambda (x) (+ x x))) 21:32:55 gnomon: error: procedure application: expected procedure, given: 5; arguments were: 10 15 21:33:00 So no, not so much. 21:33:28 rudybot: eval (map '(5 10 15) (lambda (x) (+ x x))) 21:33:28 Adman65: error: map: expects type as 1st argument, given: (5 10 15); other arguments were: # 21:33:31 I am not sure what to think about SRFI 19's conflation of durations with times. 21:33:51 eval (map (lambda (x) (+ x x) '(5 10 15)) 21:33:57 There you go. 21:34:25 weird it takes the proc first 21:34:32 Well, except that you didn't point it at rudybot, so he has no idea that he was supposed to do anything with it. 21:34:35 jcowan: Why do we need `current-binary-input-port'? 21:34:55 (I could ask the same about `current-input-port', but I'm not going to get far with that.) 21:35:17 Adman65, how is that weird? The procedure is the verb, the list is the object; we don't say "the doorknob, turn it", we say "turn the doorknob" :) 21:35:43 well in english it makes sense, but you can break down the syntax easier if the proc is last imo 21:36:05 Adman65, what about if you wanted to MAP a procedure across multiple lists? 21:36:31 rudybot: eval (map (lambda (x y) (+ x y)) '(1 2 3) '(13 14 15)) 21:36:31 gnomon: ; Value: (14 16 18) 21:36:47 hmm, you can do that cool 21:37:17 You can do it for any number of lists, as long as your procedure accepts the correct number of arguments. 21:37:50 If your procedure appeared last in the list of arguments to MAP, you could still probably work out what was happening, but it would be more complicated and less easy to understand. 21:38:11 my problem right now is trying to write out a statement that would check to see if 2 things are both true 21:38:20 Right. 21:38:54 We need both for the same reason: to provide dynamically scoped access to a port (whereas with-*put-*-port provides statically scoped access). 21:38:57 So you've demonstrated that you can write a short procedure which returns a number. Can you demonstrate a procedure which returns #t or #f, and then pass that in to your IS-EQUAL? procedure that you told rudybot about earlier? 21:39:41 rubybot: eval (define simple-test (> 5 2)) 21:40:00 rubybot: (is-equal? simple-test) 21:40:07 I don't think that will do what you expect it will do. 21:40:17 sepult [n=levgue@xdsl-87-78-173-177.netcologne.de] has joined #scheme 21:40:56 rudybot: eval (is-equal? simple-test) 21:40:56 Adman65: error: reference to undefined identifier: simple-test 21:41:43 Fare [n=Fare@ita4fw1.itasoftware.com] has joined #scheme 21:42:12 hmm 21:42:28 Riastradh: Please do make the time draft available. Crude wisdom is far more useful than well-finished rubbish. 21:42:46 Adman65, DEFINE associates a value with a variable. That value can be a procedure, as in the case of (define (add x y) (+ x y)); or it can be an atomic value, as in the case of (define fifteen 15); or it can be a more complex value, as in (define on-beyond-zebra '(one two (three four) (five))). 21:43:19 *jcowan* thinks abbreviated define for procedures might have been a mistake. 21:43:32 gotta use lambda then 21:43:41 Javascript provides both styles also, but the Good Parts version has only the version with explicit binding and lambda. 21:43:47 Adman65, in your example above - (define simple-test (> 5 2)) - you did not define a procedure: rather, you evaluated the test (> 5 2) and then associated that value with the identifier SIMPLE-TEST. 21:44:01 I think it was just to make DEFINE no longer than DEFUN. 21:44:05 jcowan, I kind of think it may have been a mistake as well. 21:44:20 It doesn't work for defining syntax, for one thing. 21:45:24 *chandler* is also not a fan of the abbreviated form of `define'. 21:47:12 lol this is entirely to frustrating 21:47:14 lowlycoder [n=x@unaffiliated/lowlycoder] has joined #scheme 21:54:51 well 21:55:05 i got somthing working, but it will do for this assignment 21:56:30 -!- dysinger [n=dysinger@24.18.234.48] has quit [Remote closed the connection] 21:57:58 -!- lowlycoder [n=x@unaffiliated/lowlycoder] has quit ["leaving"] 22:00:54 -!- Edico [n=Edico@unaffiliated/edico] has quit ["Ex-Chat"] 22:00:57 -!- jonrafkind [n=jon@crystalis.cs.utah.edu] has quit [Read error: 60 (Operation timed out)] 22:01:06 Adman65, it actually makes a whole lot of sense, when you get down to it. If you want to follow it through to the end, you'll feel a lot less frustrated about the whole thing, and you'll probably do better on your test later... 22:01:12 ...but of course that's up to you! 22:01:48 vorpal [n=rhunter@pdpc/supporter/student/vorpal] has joined #scheme 22:01:51 -!- synx [i=synx@gateway/gpg-tor/key-0xA71B0C6A] has quit [Remote closed the connection] 22:02:04 jonrafkind [n=jon@crystalis.cs.utah.edu] has joined #scheme 22:02:22 -!- jonrafkind [n=jon@crystalis.cs.utah.edu] has quit [Read error: 104 (Connection reset by peer)] 22:02:25 synx [i=synx@gateway/gpg-tor/key-0xA71B0C6A] has joined #scheme 22:02:51 jonrafkind [n=jon@crystalis.cs.utah.edu] has joined #scheme 22:05:50 Mentally I can't make the jump to the recursive step 22:06:00 dysinger [n=dysinger@c-24-18-234-48.hsd1.wa.comcast.net] has joined #scheme 22:10:35 Summermute66 [n=scott@c-68-34-67-216.hsd1.dc.comcast.net] has joined #scheme 22:14:25 Adman65, it doesn't actually need to be recursive; but it can be, and more or less simply. 22:14:59 seems like it would make sense recursive, if this is true and the rest is true 22:15:12 Adman65, let me describe the general skeleton of the problem, and then you tell me if you can guess the next step. 22:15:36 k 22:15:54 mejja [n=user@c-49b6e555.023-82-73746f38.cust.bredbandsbolaget.se] has joined #scheme 22:16:02 If IS-EQUAL? is given no procedures to test, should it return #t or #f? 22:16:39 #f 22:17:31 Wait, really? 22:17:49 Riastradh: Shirley, you must have an example of a real-world use of `let-syntax' for jcowan. 22:18:22 _Pb [n=Pb@75.131.194.186] has joined #scheme 22:18:47 gnomon: ? 22:21:32 Adman65, if an empty list of procedures is supposed to evaluate to #f, your professor is very annoying. 22:21:50 gnomon: isn't it part of the assignment 22:22:04 this is just something to run all my tests at once return #t if all the tests pass 22:24:18 -!- Fare [n=Fare@ita4fw1.itasoftware.com] has quit ["Leaving"] 22:24:33 -!- kssreeram [n=kssreera@122.174.67.43] has left #scheme 22:24:40 -!- Summermute66 [n=scott@c-68-34-67-216.hsd1.dc.comcast.net] has quit [] 22:26:21 sstrickl [n=sstrickl@pool-151-199-30-68.bos.east.verizon.net] has joined #scheme 22:28:30 -!- Summermute [n=scott@c-68-34-67-216.hsd1.dc.comcast.net] has quit [Read error: 110 (Connection timed out)] 22:29:30 mike8901 [n=mike@129.116.46.184] has joined #scheme 22:29:42 Is there any way to specify types of arguments in scheme? 22:29:47 (for a function) 22:32:35 No. 22:32:50 Except in the documentation, where it is generally a good idea. 22:34:54 -!- bweaver [n=user@75-148-111-133-Chattanooga.hfc.comcastbusiness.net] has quit ["ERC Version 5.3 (IRC client for Emacs)"] 22:35:11 Riastradh: ping 22:38:35 -!- sepult [n=levgue@xdsl-87-78-173-177.netcologne.de] has quit ["ERC Version 5.3 (IRC client for Emacs)"] 22:39:09 -!- masm [n=masm@bl9-114-121.dsl.telepac.pt] has quit ["Leaving."] 22:40:35 -!- vorpal [n=rhunter@pdpc/supporter/student/vorpal] has quit ["The incensed priests...continued to raise their voices, vituperating each other in bad Latin"] 22:43:01 Adman65, oh? If this isn't strictly part of the assignment, I can just give you the answer and explain it to you. 22:43:32 nah, I already finished the assignment and turned it in 22:43:48 trying to figure out how I could have made my testing easier 22:43:48 *gnomon* shrugs 22:44:17 -!- edwardk [n=edwardkm@209-6-103-127.c3-0.smr-ubr1.sbo-smr.ma.cable.rcn.com] has left #scheme 22:44:35 I anded all the results together and returned that, but as you can imagine if I were to add more tests it would get tedious 22:47:02 Exactly how were you AND'ing them together in a way that was tedious..? 22:47:29 (and (test1) (test2) (test3)) etc 22:49:43 -!- MrFahrenheit [n=RageOfTh@users-42-197.vinet.ba] has quit [Read error: 110 (Connection timed out)] 22:51:51 davazp [n=user@56.Red-79-153-148.dynamicIP.rima-tde.net] has joined #scheme 22:52:54 sepult [n=levgue@xdsl-87-78-173-177.netcologne.de] has joined #scheme 22:53:06 -!- _Pb [n=Pb@75.131.194.186] has left #scheme 22:53:11 MononcQc [n=mononcqc@modemcable062.225-20-96.mc.videotron.ca] has joined #scheme 23:00:06 -!- sepult [n=levgue@xdsl-87-78-173-177.netcologne.de] has quit [Read error: 104 (Connection reset by peer)] 23:01:19 sepult [n=levgue@xdsl-87-78-173-177.netcologne.de] has joined #scheme 23:02:01 -!- kuribas [i=kristof@d54C437BA.access.telenet.be] has quit ["ERC Version 5.2 (IRC client for Emacs)"] 23:03:15 (let ((tests (list (make-test ...) (make-test ...) (make-test ...)))) ... (andmap apply tests)) 23:05:55 jcowan: Yes, CPP is "high level" in that sense. Nice way to demonstrate that this "high"/"low" business is (like I said) orthogonal. 23:07:43 minion: help 23:07:43 There are multiple help modules. Try ``/msg minion help kind'', where kind is one of: "lookups", "helping others", "adding terms", "aliasing terms", "forgetting", "memos", "avoiding memos", "nicknames", "goodies", "eliza", "advice", "apropos", "acronyms". 23:07:52 minion: help memos 23:07:52 To send a memo, say something like ``minion: memo for nick: the memo''. I'll remember the memo for any nick which is the same as the given nick, +/- differences in punctuation, and any nick which is an alias for it, and give it to them when they next speak. 23:08:05 minion: memo for Riastradh: don't forget to post your time draft. 23:08:06 Remembered. I'll tell Riastradh when he/she/it next speaks. 23:08:15 -!- jcowan [n=jcowan@cpe-74-68-154-139.nyc.res.rr.com] has left #scheme 23:09:09 Nshag [i=user@Mix-Orleans-106-2-77.w193-248.abo.wanadoo.fr] has joined #scheme 23:09:12 rstandy [n=rastandy@net-93-144-73-142.t2.dsl.vodafone.it] has joined #scheme 23:11:49 -!- jonrafkind [n=jon@crystalis.cs.utah.edu] has quit [Read error: 113 (No route to host)] 23:13:42 jao [n=jao@60.Red-88-6-175.staticIP.rima-tde.net] has joined #scheme 23:15:42 -!- Guest97271 [n=moe@p54A0D083.dip.t-dialin.net] has quit ["Ciao..."] 23:16:40 _Pb [n=Pb@75.131.194.186] has joined #scheme 23:23:33 -!- araujo [n=araujo@gentoo/developer/araujo] has quit [Read error: 104 (Connection reset by peer)] 23:25:11 araujo [n=araujo@gentoo/developer/araujo] has joined #scheme 23:27:58 -!- jlongster [n=user@75-148-111-133-Chattanooga.hfc.comcastbusiness.net] has quit [Read error: 113 (No route to host)] 23:30:42 jeapostrophe [n=jay@69.169.141.110.provo.static.broadweavenetworks.net] has joined #scheme 23:38:10 -!- ASau [n=user@83.69.240.52] has quit [Remote closed the connection] 23:38:37 ASau [n=user@83.69.240.52] has joined #scheme 23:41:57 -!- sepult [n=levgue@xdsl-87-78-173-177.netcologne.de] has quit ["ERC Version 5.3 (IRC client for Emacs)"] 23:43:37 -!- tessier_ [n=treed@kernel-panic/sex-machines] has quit ["Changing server"] 23:46:41 -!- annodomini_ [n=lambda@wikipedia/lambda] has quit [] 23:47:06 -!- _Pb [n=Pb@75.131.194.186] has quit ["Leaving"] 23:49:04 jonrafkind [n=jon@crystalis.cs.utah.edu] has joined #scheme 23:49:08 -!- jedc [n=jed@dyna6-216.cs.uoregon.edu] has left #scheme 23:52:43 tessier [n=treed@216.105.40.113] has joined #scheme 23:54:31 -!- ASau [n=user@83.69.240.52] has quit [Remote closed the connection] 23:54:48 ASau [n=user@83.69.240.52] has joined #scheme 23:55:39 -!- blackened` [n=blackene@ip-89-102-28-224.karneval.cz] has quit [] 23:56:21 cadet [n=zorra@189.71.182.203] has joined #scheme 23:56:22 -!- patmaddox [n=patmaddo@dsl081-087-111.lax1.dsl.speakeasy.net] has quit ["Leaving..."] 23:56:55 danking [n=danking@zerowing.ccs.neu.edu] has joined #scheme 23:58:43 -!- cadet [n=zorra@189.71.182.203] has quit ["ZorraScript 2009 não veja mais o irc em preto e branco! :: www.zorrascript.org :"]