00:03:08 -!- choas [n=lars@p5B0DC022.dip.t-dialin.net] has quit ["leaving"] 00:03:53 -!- kniu [n=kniu@LEMON.RES.CMU.EDU] has quit [Read error: 60 (Operation timed out)] 00:09:04 raikov [n=igr@203.181.243.11] has joined #scheme 00:11:42 tizoc [n=user@r190-135-32-211.dialup.adsl.anteldata.net.uy] has joined #scheme 00:16:56 -!- vorpal [n=rhunter@pdpc/supporter/student/vorpal] has quit ["The incensed priests...continued to raise their voices, vituperating each other in bad Latin"] 00:19:42 kniu [n=kniu@CMU-301252.WV.CC.CMU.EDU] has joined #scheme 00:24:21 -!- Mr_Awesome [n=eric@pool-98-115-33-237.chi01.dsl-w.verizon.net] has quit ["aunt jemima is the devil!"] 00:24:39 -!- JohnnyL [n=atomicto@ool-182ddad4.dyn.optonline.net] has quit [] 00:29:20 -!- tizoc_ [n=user@r190-135-25-167.dialup.adsl.anteldata.net.uy] has quit [Read error: 110 (Connection timed out)] 00:31:46 Arelius [n=Indy@netblock-68-183-230-134.dslextreme.com] has joined #scheme 00:35:36 -!- Motoko-Kusanagi is now known as Kusanagi 00:41:09 -!- fschwidom [n=fschwido@dslb-084-059-131-043.pools.arcor-ip.net] has quit [No route to host] 00:44:17 vorpal [n=rhunter@pdpc/supporter/student/vorpal] has joined #scheme 00:44:48 I hope those supercapacitors start working really good. It'd be nice to have a super light battery that never wears out, that you could charge in 2 seconds. 00:44:59 any of the above heh 00:46:20 I don't know - there are significant advantages to avoiding capacitors. 00:46:38 Precious few people have been killed or even jolted by a lithium-ion battery. 00:46:45 -!- catface [i=catface@cpc3-hem14-0-0-cust864.lutn.cable.ntl.com] has quit [] 00:47:25 Some have had their naughty bits nearly turned into toasty crisps by them. 00:47:43 -!- Arelius [n=Indy@netblock-68-183-230-134.dslextreme.com] has quit [] 00:49:43 wastrel [n=wastrel@nylug/member/wastrel] has joined #scheme 00:49:44 gnomon: 00:50:07 Zoink! 00:50:30 Thanks kindly. 00:50:44 The previous edition is still at . 00:51:00 ...and in my personal backups as well. 00:51:14 I'll read over this version first before running a diff on the two. 00:51:24 The new introduction is still just as drearily drab as the old. I hope the rest is not so. 00:52:09 (Also, at what kind of pizza place must one explicitly specify tomato sauce and cheese? Seriously.) 00:54:29 Arelius [n=Indy@netblock-68-183-230-134.dslextreme.com] has joined #scheme 00:54:56 Ah, no, I must resist the temptation to dive into this immediately. 00:55:56 fschwidom [n=fschwido@dslb-084-059-141-251.pools.arcor-ip.net] has joined #scheme 00:55:57 I want to re-read it, but I am on duty for the next three hours, so I cannot devote to it my full attention; and reading without a pen (literal or metaphorical) would only decrease the quality of the second pass. 00:57:23 On duty? (My wit is too exhausted from baffling over a tomato-sauceless, mozzarellaless cheese to imagine a sufficiently entertaining guess to follow the question with.) 00:57:32 s/cheese/pizza/1 00:58:59 Indeed. I managed to pull the 1500h to 2300h, Wednesday to Sunday shift this rotation. I never see anyone. 00:59:10 Also: if you do not want your pizza, give it to me. 00:59:16 I mean: on what duty? 00:59:37 Let me put it this way. 01:00:03 Dear cow-orkers: if I can name and prove application bugs with simple log analysis, the QA people need to be flogged. 01:00:04 (I already ate most of it. By a stroke of chance I asked for tomato and feta as toppings, so it was not a slab of bland, flat bread.) 01:00:18 Mmm, feta on pizza... 01:04:50 try not specifying an alternate cheese and tomato combination. 01:05:26 to get a 'normal' mozzarella/sauce combo. 01:05:37 Try specifying an alternate platinum irridium combination. See what they say. 01:05:54 *elf* whacks gnomon on the head with a kilogram. 01:06:08 *gnomon* kilograms head on the elf with a gnomon 01:06:25 ooh, postfix. 01:06:36 *gnomon* feels a little woozy 01:07:14 *elf* eels a wittle floozy. 01:07:18 -!- Arelius [n=Indy@netblock-68-183-230-134.dslextreme.com] has quit [] 01:08:36 Hi everyone. 01:10:04 echo-area [n=user@nat/yahoo/x-42422301e1827463] has joined #scheme 01:11:03 Arelius [n=Indy@netblock-68-183-230-134.dslextreme.com] has joined #scheme 01:22:29 -!- CaptainMorgan [n=CaptainM@c-24-61-150-59.hsd1.ma.comcast.net] has quit [Connection timed out] 01:23:42 CaptainMorgan [n=CaptainM@c-24-61-150-59.hsd1.ma.comcast.net] has joined #scheme 01:24:11 hey 01:24:35 car in pretty big and car in R%RS is different 01:25:15 set1 [n=seth@76-191-139-155.dsl.static.sonic.net] has joined #scheme 01:25:52 are there a way to import set-car! and set-cdr! in pretty big module 01:29:26 r0bby [n=wakawaka@guifications/user/r0bby] has joined #scheme 01:31:58 http://paste.lisp.org/display/70053 hey can you give an idead? How can i handle this ? 01:33:00 -!- Arelius [n=Indy@netblock-68-183-230-134.dslextreme.com] has quit [] 01:34:11 -!- CaptainMorgan [n=CaptainM@c-24-61-150-59.hsd1.ma.comcast.net] has quit [Connection reset by peer] 01:34:30 set2 [n=seth@76-191-139-155.dsl.static.sonic.net] has joined #scheme 01:40:31 Abantasia: Hash tables are the real solution. However, your current problem seems to be using (lookup x table) instead of ((table 'lookup-proc) x y) 01:42:05 actually i take some part from sicp 01:42:13 i wrote memo-fib 01:42:35 -!- seth [n=seth@76-191-139-155.dsl.static.sonic.net] has quit [Read error: 110 (Connection timed out)] 01:42:51 how can i write look-proc 01:44:24 i read sicp i am on representing table 01:53:52 -!- set1 [n=seth@76-191-139-155.dsl.static.sonic.net] has quit [Read error: 113 (No route to host)] 01:54:26 nring [n=nring@CPE-124-191-37-233.vic.bigpond.net.au] has joined #scheme 01:59:34 -!- grnman [n=grnman@c-76-110-165-179.hsd1.fl.comcast.net] has quit ["leaving"] 02:10:21 Cale_ [n=Cale@CPE001c10c70239-CM000e5cdd834a.cpe.net.cable.rogers.com] has joined #scheme 02:14:00 -!- vorpal [n=rhunter@pdpc/supporter/student/vorpal] has quit ["The incensed priests...continued to raise their voices, vituperating each other in bad Latin"] 02:15:32 -!- aquanaut` [n=user@pool-71-191-49-201.washdc.fios.verizon.net] has quit [Read error: 110 (Connection timed out)] 02:16:03 -!- Cale [n=Cale@CPE001c10c70239-CM000e5cdd834a.cpe.net.cable.rogers.com] has quit [Nick collision from services.] 02:16:07 -!- Cale_ is now known as Cale 02:18:38 ehe, capacitors. quick to charge, but no maximum current... 02:19:27 ha :D 02:20:27 ARGH 02:20:35 *gnomon* wants to club Julian Seward with a mallet 02:20:45 Or possibly mallet him with a club. I don't much care which. 02:23:05 Is there some application for using booleans other than for... mathematics? 02:23:58 Let's say you've got a sequence of logs which are compressed in different formats, for whatever silly reason. 02:24:03 Conveying decisions, a1len. 02:24:15 You wish to see which logs contain evidence of some particular kind of error. 02:24:17 The boolean value is the simplest information possible. 02:25:10 (zcat $filename || bzcat $filename || 7zcat $filename || cat $filename) 2> /dev/null | grep 'evidence_of_error' 02:25:55 But no-o-o-o-o-o, you're not allowed to do that (unless you put in some nasty file(1) logic or just bump the bz2 check to the end of the list), because bzip2 returns 0 to indicate 'I can't decompress this file'. 02:25:59 How *helpful*. 02:26:15 Oh, I see. So they can be used in a string, or anything other than a number which I don't know what to call yet, in the same way that they are applied to numbers and equations? 02:27:56 Booleans are objects just like any other. They can't be stored in strings, which are restricted to contain characters, but they can be stored in lists or vectors, or they can be the values of variables, and they can be passed as arguments to and returned from procedures, and so on. 02:28:08 When you want to ask a question, Scheme will give the answer back in the form of a boolean. 02:28:17 For example, if I want to ask whether x is an integer: 02:28:23 rudybot: eval (let ((x 5)) (integer? x)) 02:28:26 Riastradh: ; Value: #t 02:29:12 Scheme can then choose for you which of two expression to evaluate in an IF based on the answer to the question. 02:29:34 rudybot: eval (let ((x 5/2)) (if (integer? x) "It was an integer!" 42)) 02:29:35 Riastradh: ; Value: 42 02:30:24 gnomon, so, how's your cross-species pillow-fight patrol duty going? 02:31:41 So, if the value of the boolean is true, in some cases, that can cause the program to carry on in a certain way, as opposed to if the boolean was the opposite, right? 02:32:25 a1len, yes -- in the example above, the program carries on to yield the string "It was an integer!" if the boolean returned by INTEGER? was true, or to yield the number 42 if the boolean returned by INTEGER? was false. 02:32:46 Scheme is amazing. 02:33:06 Riastradh, bloody annoying. 02:34:30 -!- arcfide [n=arcfide@adsl-99-137-203-160.dsl.bltnin.sbcglobal.net] has quit ["Leaving"] 02:37:55 grettk3 [n=grettke@CPE-65-31-132-59.wi.res.rr.com] has joined #scheme 02:46:58 -!- grettk3 [n=grettke@CPE-65-31-132-59.wi.res.rr.com] has quit [] 02:48:48 timchen119 [i=tim@kalug.ks.edu.tw] has joined #scheme 02:48:50 -!- timchen119 is now known as nasloc__ 02:49:26 qwerty01 [n=nimaj@d199-126-167-79.abhsia.telus.net] has joined #scheme 02:50:28 -!- underspecified [n=eric@softbank220043052011.bbtec.net] has quit [] 02:54:51 jcowan [n=jcowan@cpe-74-68-154-18.nyc.res.rr.com] has joined #scheme 02:57:17 jcowan, this weekend I revised the foof-loop reference manual, and I should like to know just how much worse I have made it. Would you care to peruse and abuse ? (The previous edition is at .) 02:57:47 Arelius [n=Indy@netblock-68-183-230-134.dslextreme.com] has joined #scheme 02:57:48 *jcowan* gladly examines the same. 02:58:35 I have been too inundated in mathematical drawl, and needed to find respite in something less methodological. 02:58:53 Can you explain to me again why, when a new thread is forked, dynamic state is not copied from the creating thread into the created thread? Obviously the earlier bindings can't be meaningfully copied, but the most current one could become the new basis. 02:59:26 in plt you mean jcowan? 02:59:34 saccade_ [n=saccade@209-6-23-56.c3-0.smr-ubr1.sbo-smr.ma.cable.rcn.com] has joined #scheme 02:59:51 Seldom does one truly want to inherit *any* dynamic binding from the creating thread. At most one has a specific set of dynamic bindings in mind. 03:00:21 I'm thinking particularly of the current input, output, and error output bindings. 03:00:23 Also, dynamic wind points one especially would not want to copy, unless they are restricted to thread-local effects. 03:00:40 Yes indeed. I'm only thinking of the values of (implicit or explicit) dynamic variables. 03:00:48 Then why not (spawn (preserving-current-i/o ))? 03:01:20 What is the effect of p-c-i/o, then? I haven't heard of it. 03:01:51 (define (preserving-current-i/o thunk) (let ((i (c-i-p)) (o (c-o-p)) (e (c-e-p))) (lambda () (with-current-i/o i o e thunk)))) 03:02:01 (Expansion is left an exercise for the reader.) 03:02:11 (My fingers need no more exercise.) 03:02:42 *jonrafkind* notices that Riastradh didn't type scheme code in all caps, as is usual 03:03:21 *jcowan* nods. 03:03:58 jonrafkind: I should say rather that most *code* is in lc, whereas *references* to objects (usually procedures) with Scheme names are in UC. 03:04:05 So we write (car x), but speak of the CAR procedure. 03:04:28 I read `lc' first as `lambda calculus' and wondered when that entered the discussion. 03:04:40 i thought it was a backwards common lisp 03:05:10 jcowan, when I replace my brain with a chip I will remember to use that algorithm for parsing 03:05:19 I upcase Lisp phrases in need of distinction from English text. 03:06:03 -!- fschwidom [n=fschwido@dslb-084-059-141-251.pools.arcor-ip.net] has quit [Read error: 104 (Connection reset by peer)] 03:07:50 I note that a difference between (strict) R5RS and other Lisps, including R6RS, is that there are no lowercase characters in the names of R5RS symbols, whereas any character can appear in R6RS/CL symbols. 03:08:41 No lowercase characters in the names of R5RS symbols? 03:09:58 rudybot: eval (char-lowercase? (string-ref (string->symbol "fOO") 0)) 03:09:58 Riastradh: error: reference to undefined identifier: char-lowercase? 03:10:04 rudybot: eval (char-lower-case? (string-ref (string->symbol "fOO") 0)) 03:10:04 Riastradh: error: string-ref: expects type as 1st argument, given: fOO; other arguments were: 0 03:10:10 ...er. 03:10:25 Well, anyway, you get the idea, I'm sure; I sha'n't abuse rudybot further. 03:10:59 -!- Arelius [n=Indy@netblock-68-183-230-134.dslextreme.com] has quit [] 03:11:39 Quite so; you're right. 03:11:48 *jcowan* carries on with foof-loop doc 03:12:54 hey i try to load a library with (require (lib "giuseppe.ss" "csdn")). But i took mistake (require (lib "giuseppe.ss" "csdn")).I am in R5RS.Mistake isreference to undefined identifier: require.What is the reason of that ? 03:12:55 Pray be candid in expounding upon its vagaries of feeble dreariness! 03:13:14 Abantasia, if you look in the R5RS, you won't find any mention of REQUIRE, LIB, or anything of the sort. 03:13:15 s/the conciser/more concise 03:13:41 I like the allusion to Rio de Janeiro. 03:14:04 Abantasia, choose module language or pretty-big. not r5rs 03:14:07 hmm 03:14:14 I have an insuppressable liking for the word `conciser'. 03:14:29 i understad but i have a problem 03:14:45 because i have some function which uses set-car! and set-cdr! 03:14:52 dont use those 03:14:55 pretty big doesnt recognize 03:15:01 i have to use 03:15:07 because sicp uses this 03:15:18 sicp 03:15:22 Any way in the worst case i wrote an explanation 03:15:31 "from which `=>' distinguishes the final expression" is awkward 03:16:02 Abantasia, then use plt 372 03:16:13 no 03:16:22 4.1.2 03:16:28 ok.. well have fun I guess 03:16:38 s/yields nil/yields ()/ 03:16:54 jcowan, better? `...has a program body; the ``=>'' sets the final expression apart from the body.' 03:16:56 i make something that works in RSR5 i make smt which work in pretty big 03:17:03 this is actually funny :D 03:17:09 Better. 03:17:44 s/A third sort of astute reader/&, possibly indistinct from the first two/ 03:18:02 s/whose reason/the reason for which/ 03:18:17 Ha! I already excised a phrase like that about the second astute reader, feeling it a trifle breezy. 03:18:18 -!- Adamant [n=Adamant@unaffiliated/adamant] has quit [] 03:19:21 A little breeze will improve the exposition here. 03:19:34 s/respective loop variables/corresponding loop variables/ 03:20:55 -!- forcer [n=forcer@e179197199.adsl.alicedsl.de] has quit [Read error: 110 (Connection timed out)] 03:21:17 rudybot: uptime 03:21:18 eli: I've been up for twenty-one hours, fifty-one minutes; this tcp/ip connection has been up for twenty-one hours, fifty-one minutes 03:21:59 Adamant [n=Adamant@c-98-244-152-196.hsd1.ga.comcast.net] has joined #scheme 03:22:32 I always find breeze a bore on revision. Perhaps simply the novelty wears off. 03:24:31 Most readers will be first-time readers. 03:24:45 Or they will be skimming for a particular case, and won't much care. 03:24:53 jonrafkind, why cant we use set-car! and set-cdr! in 4. 1 .2 and we can use that in 372. What is the reason ? 03:25:09 set-car! was removed in 4.0, actually it was renamed to set-mcar 03:25:28 you can replace all the uses of set-car! with set-mcar! but then you need to replace all the lists with mlist as well 03:25:43 it sounds like its too difficult for you to handle at present, which is why I recommend you don't try 03:25:58 i will do this 03:26:12 Non-editorial comment: FROM ... {UP,DOWN}-TO would be better imho than {DOWN,UP}-FROM ... TO. 03:26:19 set-mcar! and set-mcdr! 03:26:23 mlist 03:26:26 ok, look up the scheme/mpair library 03:26:32 will i turn cons to mcos 03:26:36 mcons 03:26:40 or mcar mcdr 03:26:48 yup 03:27:00 but this is annoying :D really bothering 03:27:03 No, jcowan, that doesn't work. 03:28:01 The choice of UP vs DOWN distinguishes the structure of the iteration. FROM is necessary to start the iteration. TO bounds the iteration. Of these, {UP, DOWN} and FROM are necessary; TO is optional. 03:29:22 Ah. 03:29:25 *jcowan* nods. 03:30:02 I think that UP-FROM and DOWN-FROM took more thought and effort than any other part of foof-loop. 03:30:04 jonrafkind, 03:30:10 Why (up-from 0 (to length)) rather than (up-from 0 to length)? 03:30:11 They were irksomely tricky. 03:30:12 wha do you need for caar cdar 03:30:17 mcaar doesnt work 03:30:42 (mcar (mcar)) 03:30:48 you probably have to define them yourself 03:31:11 Most names with special interpretation are placed at the beginnings of forms. Compare, e.g., (COND (FOO BAR) (BAZ QUUX) ELSE ZOT). 03:31:32 Granted, but ELSE is an excrescence anyhow. 03:32:03 Pretty-printers work better with this convention by default. 03:32:20 Okay, and why the LBAI/UBAE rule rather than the alternative "start BAI, end BAE"? 03:32:59 It is not obvious to me (and therefore not to the reader) that the former is better. 03:33:13 If you wish it to be so, you must give explicit reasons to reject SBAI/EBAE. 03:33:16 (in-vector-reverse vector (- (vector-length vector) 1) -1) -- off-by-one adjustments galore. 03:33:39 An excellent example to include. 03:35:21 http://paste.lisp.org/display/70059 how can i fix this ? I dont know anything set-mcdr! this function works with set-cdr! in RSR5. 03:36:48 It distresses me that => has two distinct functions. If they are in some sense the same, that sense should be explained; if not, the reverse-set operator should be changed. 03:37:01 Actually three. 03:37:44 i dont like scheme pff :// 03:37:49 Unfortunately, the R5RS permits only two distinct arrow constructions from US-ASCII, of which one, with a tilde, is rendered poorly in most fonts. 03:39:07 so i understand something programmin in prettyy big and programmin RSR5 iare different thing 03:39:11 Then it should be clearly stated that => as in COND has no connection whatsoever with => assignment. 03:39:32 (I have not yet, I think, come to the third use) 03:40:34 I don't understand why LISTING and LISTING! both exist. Since both create new pairs anyhow, I see no reason why the LISTING! algorithm cannot be used for LISTING. 03:41:01 LISTING! is non-reentrant. It should be avoided unless the programmer is sure of the consequences. 03:41:42 Abantasia: the idiom in PLT is (shared ((x (list* 'a 'b 'c x))) x) 03:42:27 I don't remember whose faults the various arrows were. Not all were mine. 03:42:38 Hmm. Well, why not use the classical REVERSE! rather than REVERSE in LISTING ? 03:42:38 huh... 03:42:56 One of them reflects COND's =>. I think one may have been foof's fault, and the remaining one was mine. 03:42:59 That doesn't work. Bug in SHARED? 03:43:00 foof, i cannot use set-mcdr! like set-cdr! function works with set-cdr! in R5RS.Same function is not working in pretty big with set-mcdr! 03:43:01 jcowan, that, too, is non-reentrant. 03:43:12 i dont understand why 03:43:27 Abantasia: PLT no longer supports R5RS. 03:43:31 How so? 03:43:41 It has an R6RS compatibility mode if you want. 03:43:54 If it's guaranteed that the (top level) conses fed to REVERSE! are unique to this thread, I don't see a problem. 03:44:04 *jcowan* reaches the end of the tutorial. 03:44:23 jcowan, reenter in the midst of the loop. Half of the list has been built. The other half remains. REVERSE! destroys the whole list, including the half shared by the previous exit. 03:44:55 (Reentrancy is an issue not only of threads but of multishot continuations.) 03:45:12 Ah. Quite so. 03:45:45 Rather than merely speaking of reentrancy, one should speak explicitly of continuations here. 03:45:49 foof, i read sicp book and sicp book has some function which include set-car! and set-cdr! and i cant use both.But i can load some library i dont load in R5RS.My function works perfectly with set-car! and set-cdr! in RSR5.Same function doesnt work in pretty big wih ste-mcar!,set-mcdr!.I am stack.What is your suggesting.What can i do :D 03:46:16 Abantasia: Use an R5RS Scheme. 03:46:39 jcowan, non-local control transfers inadequately evoke continuations? 03:46:55 (That message ought to have had some quote marks.) 03:46:55 Abantasia: Like Chicken, Gambit, Gauche, MIT-Scheme or SISC. 03:47:03 foof, yes but i have to do something by loading library (require blah blah) but require doesnt work in RSR% 03:47:32 *jcowan* wonders whether loops can be made to return multiple values. 03:47:46 anyway i wrote some notes and my teacher will have to read 03:47:49 Yes. The final expression is evaluated in a tail position with respect to the LOOP expression. 03:47:52 thanks for yourhelp 03:48:51 It should be stated explicitly, then, that bodies are indeed tail recursive. 03:50:12 There should be an analogue of "break", a macro that can be invoked from the body and causes the loop to exit at once with given value(s). 03:50:41 LOOP has the converse, which suffices. Use CWCC if you want a non-local exit. 03:53:04 *jcowan* thinks that most NLEs are associated with loops, and that is something that should be supported. 03:53:38 Omit the section on Loop Expansion, or move it to some other document: it inappropriately exposes implementation details. 03:53:52 Abantasia: If you want to `require' stuff in r5rs, you should use `#%require' instead. (`require' is intentionally not in the r5rs language.) 03:54:05 My experience is quite the contrary with non-local exits, in Scheme. Non-local exits suggest an impoverished loop structure. 03:54:20 foof: The r5rs support is just like the r6rs one: using `#lang r5rs' gets you the usual mutable stuffs. 03:54:28 The section on Loop Expansion is absolutely necessary. It is not an implementation detail; it is the object of the LOOP macro. 03:57:58 What do you mean by "object"? It seems to me that it should suffice me to know what LOOP does without knowing how it does it. 03:58:24 In general, compiler manuals do not explain how the source code is mapped into the object code. 03:58:38 eli, thank you 03:58:51 The loop expansion is the clearest description of the semantics of the LOOP macro. It says neither more nor less than an invocation of LOOP. 03:59:31 Very well. 03:59:53 That's very different from the object code generated by a compiler. 04:00:12 Most object code says much more and much less than the source said. 04:00:30 Less, I can see; but more? 04:01:25 CaptainMorgan [n=CaptainM@c-24-61-150-59.hsd1.ma.comcast.net] has joined #scheme 04:01:28 Sure. Where did the source code talk about pushing the contents of EAX, or HRRZing and HLLZing and TRCEing in triplicate? 04:01:57 Those are implementation details not stated by the source code. 04:02:14 Similarly, the arithmetic (if any!) performed by IN-VECTOR is an implementation detail not stated by the source code. 04:02:19 *jcowan* nods. 04:02:26 I follow you now. 04:02:35 eli, `#lang r5rs' i wrote this in drscheme and run it than prints my whole code to interpreter window and doesnt recognize my any function 04:03:26 The description of proper tail recursion in foof-loop is tricky. 04:03:43 The sentence `The is evaluated in a tail position with respect to the LOOP expression.' is false. 04:04:14 *Daemmerung* is full of pizza, and all is well in the world 04:04:19 (Yep, I lied a moment ago -- or didn't qualify the sentence well enough.) 04:04:20 Abantasia: You should use the module language -- then the `#lang r5rs' is a kind of a declaration that you want the r5rs language. 04:04:27 Daemmerung, did you have to ask for tomato sauce and mozzarella on your pizza? 04:04:32 *jcowan* proposes relaxing the restriction that IN-PORT's argument actually be an input port. 04:04:41 hmm 04:04:52 okey 04:04:53 Riastradh: nope. Put tomatoes on one myself, left them off the other. 04:06:16 Maybe I'll freeze a pie, so my wife can deliver it to me in times of future labor. Then I can accuse her of forgetting the mozzarella. 04:09:21 Riastradh: In the syntax of accumulators, it is confusing to have two points labeled "Conditional" used in different sentences: the former is conditional accumulation, the latter is accumulation conditionally passed through a mapper (and is not really necessary, IMHO) 04:10:34 How about `conditional', `COND-style', and `extended COND-style'? 04:10:53 Only conditional and extended COND-style are necessary, but only conditional and COND-style are common. 04:11:39 Very well. 04:11:51 What about relaxing the restriction on IN-PORT? 04:12:06 I'll change the sentence to ` is usually an input port.' 04:13:17 (I was hoping this weekend to eviscerate great swaths of superfluously verbose verbiage. I have cut a net six lines.) 04:13:27 It's not s.v.v. 04:13:44 Explanation requires far less compression than mere reference material permits. 04:14:04 *jcowan* reminds Riastradh of the anecdote of Oscar Wilde (or any other poet noted for his style) and the comma. 04:14:10 That is true. On the other hand, I did cut some superfluously verbose verbiage. 04:14:44 (In its place I put what I hope is clearer exposition with more examples, which account for the small number of lines but larger number of words removed.) 04:15:02 *jcowan* jibs at reviewing the Writing Custom Iterators section at this time. 04:17:47 I suggest an accumulator that accumulates into a provided vector and returns the number of elements in the vector that were touched. 04:18:37 -!- jonrafkind [n=jon@wireless29.wireless.utah.edu] has quit [Read error: 110 (Connection timed out)] 04:22:22 Example use? 04:22:47 I wonder whether it is better to describe the different forms of accumulators in the imperative mood or in the passive voice. 04:23:41 The imperative closely guards its countenance throughout most of the document. 04:24:17 -!- mejja [n=user@c-4db6e555.023-82-73746f38.cust.bredbandsbolaget.se] has quit [Remote closed the connection] 04:29:25 eli: thanks 04:29:54 Is the SHARED thing a bug? 04:30:03 vorpal [n=rhunter@pdpc/supporter/student/vorpal] has joined #scheme 04:31:50 foof: IMO, yes -- it's actually something I argued for. 04:32:14 foof: The same holds for (shared ([x (append (list 1 2 3) x)]) x) 04:32:51 jonrafkind [n=jon@c-98-202-86-149.hsd1.ut.comcast.net] has joined #scheme 04:32:54 foof: IMO, yes -- it's actually something I argued for. 04:32:59 *eli* slaps Emacs 04:33:04 -!- set2 [n=seth@76-191-139-155.dsl.static.sonic.net] has quit [Read error: 110 (Connection timed out)] 04:34:12 wy [n=wy@c-67-176-146-7.hsd1.in.comcast.net] has joined #scheme 04:37:09 I also suggest a generalization of SUMMING and MULTIPLYING called FOLDING, which requires an initial value and a 2-argument function to do the folding. 04:37:47 I would be against the imperative. 04:38:10 Passive it is, then. 04:38:16 eli: So it just does a shallow check of the car and cdr of the return value? 04:38:28 Or of the shared-bound variables? 04:40:48 *jcowan* completes his review, and bugs Riastradh about FOLDING. 04:41:39 Would you use FOLDING? 04:41:49 (And what the vector-modifying accumulator you brought up earlier?) 04:44:27 eli: nevermind, read the manual 04:44:43 foof: No, it does a synactic kind of an analysis of the forms that appear in the `shared' bindings. 04:44:51 I would certainly use FOLDING. I personally wouldn't use the vector modifier, but then I don't deal in huge datasets. People who do have little choice but to use vectors, and to copy them as rarely as possible. 04:44:54 rudybot: eval (shared ([x (cons x x)]) x) 04:44:54 eli: ; Value: #0=(#0# . #0#) 04:45:00 rudybot: eval (define foo cons) 04:45:03 rudybot: eval (shared ([x (foo x x)]) x) 04:45:03 eli: ; Value: (# . #) 04:45:06 There. 04:45:28 But only a shallow analysis. 04:45:49 Hence they will not want to generate lists, but will want to mung the vector directly. Of course, VECTOR-MAP can do that, but rather inflexibly. 04:45:53 Actually, the manual is incorrect. 04:46:11 Yes, because you don't need more than that 04:46:14 Heheheheheh: anyone who has ever made the misfortunate mistake of purchasing a DVD in a case will appreciate . 04:46:30 *jcowan* also continues to believe that EXIT-loopname macro should be made available for "n+1/2"-style looping (do something, decide whether to terminate, do something else) 04:46:42 foof: I'd rather see it doing something more general, based on values instead. 04:47:08 jcowan, I maintain that the converse to non-local exits, local continuing of loops, suffices. 04:48:05 wait... 04:48:13 For? 04:48:15 *foof* just finished his coffee and it's starting to take effect 04:48:18 pid? 04:48:26 3? 4? 04:48:36 -for-event? 04:48:48 How would I construct the analogue of Knuth's "loop ... while P; ... repeat"? 04:49:35 Or a search of any sort? 04:49:36 Exactly as with named LET: (loop repeat (...) ... (if (foo?) (begin ... (repeat)))) 04:49:54 *jcowan* considers that. 04:50:18 eli: You mean the macro does a syntactic analysis and determines where it will later need to patch in the ids? 04:51:10 I suppose I accept that as an idiom of Scheme. 04:51:12 (Is it just me, or have the Outline Mode commands suddenly ceased to make sense in Emacs 22?) 04:51:56 minion: true 04:51:57 Sorry, I couldn't find anything in the database for ``true''. 04:52:15 foof: Yes, roughly speaking. That's also why the documentation is more complex than it could be (listing the whole syntax that it deals with). 04:53:27 Hmmm... then I fail to see how the current behavior can even occur. 04:53:52 foof: What do you mean? 04:54:22 How (shared ([x (append (list 1 2 3) x)]) x) can fail to patch in the `x'. 04:55:39 Because it doesn't recognize `append' as one of the patterns that it knows about. 04:57:10 -!- MichaelRaskin1 [n=raskin@gwh-1-177-mytn23k1.ln.rinet.ru] has quit [Remote closed the connection] 04:59:44 *gnomon* gets to go home now 05:00:00 Which means I can edit the new foof-loop paper while in transit. 05:00:00 Whee! 05:00:33 Just a moment! 05:00:41 I am about to push changes suggested by Mr Cowan. 05:01:53 Riastradh: To revert to the matter of threads and dynamic variables for a moment: the standard position is that if a variable has not been bound in a thread, then assignment to it is visible in all threads that have likewise not bound it; but if it has been bound in the thread, assignment is visible only to that very thread, correct? 05:02:23 `Variable' means `dynamic variable' here? 05:05:51 *foof* gets the definition of SHARED to fit in 80 columns with heroic effort 05:05:52 -!- vorpal [n=rhunter@pdpc/supporter/student/vorpal] has quit ["The incensed priests...continued to raise their voices, vituperating each other in bad Latin"] 05:06:03 -!- gweiqi [n=greg@69.120.126.163] has left #scheme 05:06:49 Of course, it's syntax-case so you can't just move the helpers to external procedures. 05:07:02 Riastradh: Indeed 05:08:10 gnomon, all pushed; you may go home now. 05:09:23 -!- wastrel [n=wastrel@nylug/member/wastrel] has quit ["bedtime"] 05:10:05 jcowan, assignment to dynamic variables is touchy business. I try to keep my hands clear of it. 05:10:59 I think it is better to distinguish (1) immutable but bindable dynamic variables, (2) said dynamic variables bound to mutable cells (access to which one must be careful to synchronize), and (3) thread-local cells. 05:14:03 I need to get to sleep, unfortunately, and must deprive you of reciprocal consideration for your enquiry. Apologies -- and thank you for your time in reviewing my blather on foof-loop! 05:14:24 Tomorrow morning I'll read whatever you leave in the log and consider it. 05:14:34 Good night! 05:16:34 -!- AtnNn [n=welcome@modemcable230.56-56-74.mc.videotron.ca] has quit ["strawberris"] 05:17:11 -!- benny [n=benny@i577A01AD.versanet.de] has quit [Read error: 110 (Connection timed out)] 05:18:47 -!- peter_12 [n=peter_12@S010600119506b129.gv.shawcable.net] has quit [] 05:27:13 -!- tjafk2 [n=timj@e176216158.adsl.alicedsl.de] has quit [Read error: 110 (Connection timed out)] 05:27:33 tjafk2 [n=timj@e176221103.adsl.alicedsl.de] has joined #scheme 05:29:55 -!- bcow [n=null@S01060050fc051c84.lb.shawcable.net] has quit [Remote closed the connection] 05:30:08 bcow [n=null@S01060050fc051c84.lb.shawcable.net] has joined #scheme 05:30:21 -!- bcow [n=null@S01060050fc051c84.lb.shawcable.net] has left #scheme 05:30:28 bcow [n=null@S01060050fc051c84.lb.shawcable.net] has joined #scheme 05:33:01 -!- Abantasia [n=warm@85.96.231.252] has quit [Read error: 113 (No route to host)] 05:52:58 Mr_Awesome [n=eric@isr5956.urh.uiuc.edu] has joined #scheme 06:09:09 MichaelRaskin_ [n=raskin@chld.ru] has joined #scheme 06:12:06 -!- MichaelRaskin_ [n=raskin@chld.ru] has quit [Remote closed the connection] 06:12:55 -!- annodomini [n=lambda@wikipedia/lambda] has quit [] 06:13:05 MichaelRaskin_ [n=raskin@chld.ru] has joined #scheme 06:27:33 -!- wy [n=wy@c-67-176-146-7.hsd1.in.comcast.net] has quit ["Leaving"] 06:30:03 -!- raikov [n=igr@203.181.243.11] has quit [Read error: 110 (Connection timed out)] 06:38:28 raikov [n=igr@203.181.243.11] has joined #scheme 06:39:44 Arelius [n=Indy@netblock-68-183-230-134.dslextreme.com] has joined #scheme 06:45:26 -!- npe [n=npe@66.112.249.148] has quit [] 06:46:22 ik0002 [n=0xowe232@p7128-ipbfp301fukuokachu.fukuoka.ocn.ne.jp] has joined #scheme 06:48:16 -!- ik0002 [n=0xowe232@p7128-ipbfp301fukuokachu.fukuoka.ocn.ne.jp] has quit [Client Quit] 06:49:13 -!- jcowan [n=jcowan@cpe-74-68-154-18.nyc.res.rr.com] has quit ["Bailing out"] 06:49:14 -!- mbishop [n=martin@unaffiliated/mbishop] has quit [Read error: 110 (Connection timed out)] 06:50:26 puchacz [n=puchacz@87-194-5-99.bethere.co.uk] has joined #scheme 06:53:40 hml [n=x@unaffiliated/hml] has joined #scheme 06:57:03 raikov` [n=igr@203.181.243.11] has joined #scheme 07:00:13 -!- raikov [n=igr@203.181.243.11] has quit [Read error: 110 (Connection timed out)] 07:02:08 arcfide [n=arcfide@adsl-99-137-203-160.dsl.bltnin.sbcglobal.net] has joined #scheme 07:02:19 -!- hml [n=x@unaffiliated/hml] has quit ["leaving"] 07:02:37 -!- arcfide [n=arcfide@adsl-99-137-203-160.dsl.bltnin.sbcglobal.net] has quit [Client Quit] 07:03:24 arcfide [n=arcfide@99.137.203.160] has joined #scheme 07:12:08 -!- arcfide [n=arcfide@99.137.203.160] has quit ["Leaving"] 07:20:28 hml [n=x@unaffiliated/hml] has joined #scheme 07:55:57 elmex [n=elmex@e180066215.adsl.alicedsl.de] has joined #scheme 07:56:36 -!- cracki [n=cracki@sglty.kawo2.RWTH-Aachen.DE] has quit [Read error: 60 (Operation timed out)] 08:00:46 is there global variables in scheme or does everything have to be passed around function to function 08:01:05 hkBst [n=hkBst@gentoo/developer/hkbst] has joined #scheme 08:01:31 foof: Thanks for the email -- and sorry I didn't reply, Comcast decided to give me a break even if I didn't want one... 08:05:54 np 08:09:16 ecraven [n=nex@140.78.42.104] has joined #scheme 08:11:07 attila_lendvai [n=ati@business-89-132-61-222.business.broadband.hu] has joined #scheme 08:16:17 hml_ [n=x@unaffiliated/hml] has joined #scheme 08:17:07 -!- hml [n=x@unaffiliated/hml] has quit [Remote closed the connection] 08:17:07 -!- hml_ [n=x@unaffiliated/hml] has quit [Remote closed the connection] 08:17:33 hml [n=x@unaffiliated/hml] has joined #scheme 08:18:06 bcow: there is a top-level environment visible to everything beneath it (if not masked by local bindings) 08:18:59 i think i got it, i can do like (define x '()) then use: set! x in my other functions right ? 08:20:43 -!- hkBst [n=hkBst@gentoo/developer/hkbst] has quit [Remote closed the connection] 08:24:45 foof: FWIW -- http://tmp.barzilay.org/x.ss 08:25:04 peter_12 [n=peter_12@S010600119506b129.gv.shawcable.net] has joined #scheme 08:26:52 echo-are` [n=user@nat/yahoo/x-de1e7b114b2e48dc] has joined #scheme 08:32:14 -!- echo-area [n=user@nat/yahoo/x-42422301e1827463] has quit [Read error: 60 (Operation timed out)] 08:34:31 -!- foof [n=user@dn157-046.naist.jp] has quit [Read error: 110 (Connection timed out)] 08:35:15 hotblack23 [n=jh@p5B055137.dip.t-dialin.net] has joined #scheme 08:39:09 foof [n=user@isa7-dhcp-116-151.naist.jp] has joined #scheme 08:39:39 Yay, I love it when I need to power-cycle my machines :/ 08:40:51 :( 08:41:08 atleast they aren't power-cycling by themselves ;D 08:43:30 vnc to the rescue. 08:45:33 how would i return the car of a list and remove the car from the list in 1 function ? 08:47:32 in an imparative language i would do like: var temp = car lst; lst = (cdr lst); return temp; 08:47:41 -!- rmrfchik [n=paul@62.117.74.154] has quit [Remote closed the connection] 08:53:30 -!- puchacz [n=puchacz@87-194-5-99.bethere.co.uk] has quit [Remote closed the connection] 08:56:19 rmrfchik [n=paul@relay2.jet.msk.su] has joined #scheme 09:01:40 ejs [n=eugen@nat.ironport.com] has joined #scheme 09:12:45 bcow: Generally you would call your next step as a function (something (car lst) (cdr lst)), and no need to return anything besides the final result. 09:13:30 rtra [n=rtra@unaffiliated/rtra] has joined #scheme 09:13:52 (define (something lst) (when (not (eq? lst null)) (do-something-with (car lst)) (something (cdr lst)))) 09:14:40 Since scheme is tail-call recursive, it frees the first element for garbage collection before working on the cdr. 09:16:05 okay, thanks synx 09:17:02 need some sleep, g'night 09:17:04 -!- bcow [n=null@S01060050fc051c84.lb.shawcable.net] has quit [] 09:20:38 kib2_ [n=chatzill@bd137-1-82-228-159-28.fbx.proxad.net] has joined #scheme 09:21:34 mike [n=mike@dslb-088-066-240-118.pools.arcor-ip.net] has joined #scheme 09:21:53 fschwidom [n=fschwido@dslb-084-059-141-251.pools.arcor-ip.net] has joined #scheme 09:22:06 -!- mike is now known as Guest61753 09:26:29 -!- hotblack23 [n=jh@p5B055137.dip.t-dialin.net] has quit [Read error: 110 (Connection timed out)] 09:30:43 -!- Guest61753 [n=mike@dslb-088-066-240-118.pools.arcor-ip.net] has quit ["Leaving"] 09:31:57 -!- attila_lendvai [n=ati@business-89-132-61-222.business.broadband.hu] has quit ["..."] 09:38:52 -!- peter_12 [n=peter_12@S010600119506b129.gv.shawcable.net] has quit [] 09:44:54 ramkrsna [n=ramkrsna@unaffiliated/ramkrsna] has joined #scheme 09:47:58 synx: err... what does it free? first element? 09:48:00 huh 09:57:21 ventonegro [n=user@136.166.1.3] has joined #scheme 10:04:39 drdo [n=psykon@167.111.54.77.rev.vodafone.pt] has joined #scheme 10:06:23 -!- echo-are` [n=user@nat/yahoo/x-de1e7b114b2e48dc] has quit [Remote closed the connection] 10:14:44 dirchh [n=user@jimi.Informatik.Uni-Tuebingen.De] has joined #scheme 10:15:36 geckosen1tor [n=sean@c-24-8-193-190.hsd1.co.comcast.net] has joined #scheme 10:32:47 ejs_ [n=eugen@80.91.178.218] has joined #scheme 10:32:59 -!- ejs [n=eugen@nat.ironport.com] has quit [Read error: 110 (Connection timed out)] 10:35:02 -!- geckosenator [n=sean@c-24-8-193-190.hsd1.co.comcast.net] has quit [Read error: 110 (Connection timed out)] 10:36:02 -!- Arelius [n=Indy@netblock-68-183-230-134.dslextreme.com] has quit [] 10:42:42 -!- drdo [n=psykon@167.111.54.77.rev.vodafone.pt] has quit [Remote closed the connection] 10:46:28 -!- saccade_ [n=saccade@209-6-23-56.c3-0.smr-ubr1.sbo-smr.ma.cable.rcn.com] has quit ["This computer has gone to sleep"] 10:56:52 geckosenator [n=sean@c-24-8-193-190.hsd1.co.comcast.net] has joined #scheme 10:56:53 -!- geckosen1tor [n=sean@c-24-8-193-190.hsd1.co.comcast.net] has quit [Read error: 54 (Connection reset by peer)] 11:00:18 underspecified [n=eric@softbank220043052011.bbtec.net] has joined #scheme 11:04:15 -!- pchrist [n=spirit@gentoo/developer/pchrist] has quit [Read error: 110 (Connection timed out)] 11:19:59 -!- MichaelRaskin_ [n=raskin@chld.ru] has quit [Read error: 110 (Connection timed out)] 11:33:35 eli` [n=eli@winooski.ccs.neu.edu] has joined #scheme 11:34:19 hml_ [n=x@unaffiliated/hml] has joined #scheme 11:34:24 -!- hml_ [n=x@unaffiliated/hml] has quit [Client Quit] 11:36:09 FOO 11:37:20 the quick brown fox jumped over the lazy dog 11:39:33 -!- a1len [n=James@unaffiliated/a1len] has quit ["Lost terminal"] 11:40:23 rudybot: eval ((lambda (x) (x x)) (lambda (x) (x x)))) 11:40:24 eli`: error: eval:1:39: read: unexpected `)' 11:41:09 rudybot: eval ((lambda (x) (x x)) (lambda (x) (x x)))) 11:41:09 eli`: error: eval:1:39: read: unexpected `)' 11:41:55 rudybot: eval ((lambda (x) (x x)) (lambda (x) (x x))) 11:41:58 eli`: error: with-limit: out of time 11:43:04 *eli`* enjoys himself thoroughly 11:44:37 -!- eli` [n=eli@winooski.ccs.neu.edu] has quit [Remote closed the connection] 11:45:01 -!- ramkrsna [n=ramkrsna@unaffiliated/ramkrsna] has quit [Read error: 131 (Connection reset by peer)] 11:48:19 -!- nring [n=nring@CPE-124-191-37-233.vic.bigpond.net.au] has quit [Read error: 104 (Connection reset by peer)] 11:50:47 pchrist [n=spirit@gentoo/developer/pchrist] has joined #scheme 11:53:35 -!- incubot [n=incubot@24.205.65.135] has quit [Read error: 110 (Connection timed out)] 11:54:54 Mr_SpOOn [n=Mr_SpOOn@89-97-102-218.ip17.fastwebnet.it] has joined #scheme 11:59:51 elibarzilay [n=eli@m725e36d0.tmodns.net] has joined #scheme 12:01:04 duncanm: consider yourself very pinged 12:02:56 -!- ejs_ [n=eugen@80.91.178.218] has quit [Read error: 145 (Connection timed out)] 12:07:54 jewel [n=jewel@dsl-242-177-125.telkomadsl.co.za] has joined #scheme 12:08:22 -!- elibarzilay [n=eli@m725e36d0.tmodns.net] has quit ["used jmIrc"] 12:12:21 ejs_ [n=eugen@nat.ironport.com] has joined #scheme 12:12:36 tizoc_ [n=user@r190-135-30-254.dialup.adsl.anteldata.net.uy] has joined #scheme 12:15:04 benny [n=benny@i577A0DAA.versanet.de] has joined #scheme 12:30:40 -!- tizoc [n=user@r190-135-32-211.dialup.adsl.anteldata.net.uy] has quit [Read error: 110 (Connection timed out)] 12:31:27 eli, `jumps', not `jumped'. 12:36:31 -!- kniu [n=kniu@CMU-301252.WV.CC.CMU.EDU] has quit [Read error: 110 (Connection timed out)] 12:37:41 *elf* jumps. 12:38:41 *XTL* lazy. 12:48:36 -!- araujo [n=araujo@gentoo/developer/araujo] has quit [Read error: 110 (Connection timed out)] 13:02:28 exexex [n=chatzill@88.234.9.255] has joined #scheme 13:07:14 Riastradh: his 's' key is broken, obviously. 13:09:54 http://www.sciencedaily.com/releases/2008/10/081029181606.htm 13:13:45 people actually do real work in matlab? weird 13:14:02 people do do real work in matlab. 13:14:21 its actually quite fast for most things. 13:14:34 and if you can get over its horribly braindead bits, its quite pleasant. usually. 13:14:38 http://matlabmadness.ytmnd.com/ 13:15:08 what is ytmnd ? 13:15:19 that site doesnt work in lynx. 13:15:51 http://www.timesonline.co.uk/tol/news/politics/article5064274.ece 13:16:01 im somewhat disturbed by this article, for many reasons. 13:16:08 elf: exactly; i'm not sure i can adequately explain it; suffice to say, billy v. koen chastizes bill o'reilly for not using matlab 13:17:10 elf: that's relatively old, actually; recently the prime minister mentioned that data will never really be safe 13:17:23 first, apparently the times has people with slightly less technical knowledge than squids do writing their tech section. 13:17:36 http://www.telegraph.co.uk/news/newstopics/politics/lawandorder/3367661/Gordon-Brown-says-your-data-will-never-be-completely-safe-with-the-Government.html 13:17:37 -rudybot:#scheme- http://tinyurl.com/5mq95g 13:17:48 second, if im reading this correctly, the govt is still all about security through obscurity. 13:18:02 and third, the spokesperson seems to be saying that they know there are giant gaping holes and are using it anyway. 13:18:49 hrm, the tymnd site doesnt work in mozilla, either. 13:18:52 what is this site? 13:19:01 it beggars description, frankly 13:19:33 what does ytmnd mean? 13:20:29 i'm too embarrassed to say 13:21:15 'this is potentially the most serious data loss this country has seen in recent times.' 13:21:33 wow, restrained hyperbole rocks. 13:25:33 all MPs recently received a copy of 1984; i hope they read it 13:25:59 why did ythey get that? 13:26:20 because the brits are using 1984 as an instruction manual, not a warning 13:27:05 heh. 13:27:18 attila_lendvai [n=ati@catv-89-133-170-239.catv.broadband.hu] has joined #scheme 13:27:20 -!- ecraven [n=nex@140.78.42.104] has quit ["bbl"] 13:27:54 http://lpuk.blogspot.com/2008/10/they-are-not-listening-time-for-action.html 13:27:55 -rudybot:#scheme- http://tinyurl.com/5d7xjy 13:31:38 *chandler* blinks 13:32:37 This is #scheme, or #politics? 13:32:57 *elf* mentions r6rs. 13:33:00 is there a difference? :) 13:33:11 elf: You fascist!! 13:33:48 i thought 'purist' and 'realworlder' were the preferred terms of insult in the r6 fiasco. 13:35:23 Yes, but I'm attempting to kill the conversation. 13:35:37 i get called worse than fascist on a daily basis. :) 13:35:49 you have to try harder. 13:36:47 elf: You don't understand reduction semantics, you ignorant nincompoop! 13:36:52 oooh. 13:37:37 thats better. i wouldnt have used 'you ignorant nincompoop', as it doesnt add much and is too long. 13:37:59 Yes, but I'm still trying to kill the conversation. :-) 13:38:07 way to go. tell me how that works out for you? 13:38:19 Very well, thank you. 13:38:27 have you ever noticed, as a sidethought, that its impossible to kill a conversation by attempting to kill a conversation? 13:39:25 there's a game we play at night (occidentally speaking) sometimes, where #scheme becomes #disrupt-the-constant-join/leave-messages-with-text 13:39:36 it's a bit like trainspotting, though, and should probably be killed 13:39:42 i like it. 13:40:20 it's a strictly nocturnal club, though 13:40:43 ecraven [i=nex@eutyche.swe.uni-linz.ac.at] has joined #scheme 13:40:48 *elf* takes out his nocturnal club and beats people over the head. 13:40:56 heh 13:44:39 *elf* is trying to catch up on his mail from the last week. 13:48:09 cemerick [n=la_mer@75.147.38.122] has joined #scheme 13:50:16 araujo [n=araujo@gentoo/developer/araujo] has joined #scheme 14:01:23 annodomini [n=lambda@64.30.3.122] has joined #scheme 14:02:29 -!- araujo [n=araujo@gentoo/developer/araujo] has quit [Connection reset by peer] 14:03:56 -!- annodomini [n=lambda@wikipedia/lambda] has quit [Read error: 104 (Connection reset by peer)] 14:04:04 annodomini [n=lambda@64.30.3.122] has joined #scheme 14:05:13 annodomini_ [n=lambda@wikipedia/lambda] has joined #scheme 14:05:15 -!- ttmrichter [n=ttmricht@58.49.18.214] has quit [Connection timed out] 14:05:25 -!- annodomini [n=lambda@wikipedia/lambda] has quit [Read error: 54 (Connection reset by peer)] 14:06:36 ttmrichter [n=ttmricht@221.235.62.13] has joined #scheme 14:11:20 kuribas [i=kristof@d54C43E3B.access.telenet.be] has joined #scheme 14:12:12 hemulen [n=hemulen@cpe-069-134-114-252.nc.res.rr.com] has joined #scheme 14:12:19 hi. Anybody here using Chicken on Windows ? 14:12:42 yeah 14:12:45 whats up? 14:12:57 GreyLensman [n=ray@c-76-108-235-51.hsd1.fl.comcast.net] has joined #scheme 14:13:05 -!- GreyLensman [n=ray@c-76-108-235-51.hsd1.fl.comcast.net] has left #scheme 14:15:14 -!- annodomini_ [n=lambda@wikipedia/lambda] has quit [Read error: 54 (Connection reset by peer)] 14:15:14 annodomini [n=lambda@wikipedia/lambda] has joined #scheme 14:15:56 elf : I can't install any egg 14:16:50 -!- ski [n=slj@c-dd10e055.1149-1-64736c10.cust.bredbandsbolaget.se] has quit [Read error: 104 (Connection reset by peer)] 14:18:47 -!- kraant [n=kraant@CPE-58-161-128-2.nsw.bigpond.net.au] has quit [Read error: 110 (Connection timed out)] 14:19:01 did you do the cygwin, msvc, mingw, or mingw-sys install? 14:19:06 -!- jewel [n=jewel@dsl-242-177-125.telkomadsl.co.za] has quit [Connection timed out] 14:20:49 elf : no, I've used the msi file 14:21:02 -!- tjafk2 [n=timj@e176221103.adsl.alicedsl.de] has quit ["Client exiting"] 14:21:02 msi ? 14:21:14 wait, you didnt compile it yourself? 14:21:48 tjafk [n=timj@e176221103.adsl.alicedsl.de] has joined #scheme 14:21:58 elf : no, I should ? 14:22:10 ive not even heard of an msi file wrt chicken. 14:22:10 jewel [n=jewel@dsl-242-177-125.telkomadsl.co.za] has joined #scheme 14:22:31 seth [n=seth@76-191-139-155.dsl.static.sonic.net] has joined #scheme 14:22:48 annodomini_ [n=lambda@64.30.3.122] has joined #scheme 14:23:05 -!- annodomini [n=lambda@wikipedia/lambda] has quit [Read error: 104 (Connection reset by peer)] 14:23:07 Sorry, it's not an msi but a zip file. I choose the binary file from here : http://chicken.wiki.br/releases/ 14:23:20 ah. 14:23:46 then I have to unzip it, and I can found exe files in the bin directory 14:23:56 did you read the 'how to install and use the binary distributions' page, where the first line is 'note: in order to install eggs, you must have a c compiler'? 14:24:27 (and, since youre using the windows prebuilt mingw one, you specifically need whatever mingw ver it was built with.) 14:24:44 elf : but I've one, I'm using gcc under mingw. 14:25:26 mingw or msys? 14:26:14 annodomini [n=lambda@64.30.3.122] has joined #scheme 14:26:14 -!- annodomini_ [n=lambda@wikipedia/lambda] has quit [Read error: 131 (Connection reset by peer)] 14:26:24 mingw 14:26:44 use whatever mingw you have on the box already to build chicken from source. 14:27:31 so I should not use the given binary file ? 14:27:47 if its not working for you, then it wouldnt make much sense to keep using it. 14:28:01 its fairly easy to build chicken from source. 14:28:16 -!- tizoc_ is now known as tizoc 14:28:33 I though I can change some settings, that's not the case ? 14:29:51 which version of windows? 14:30:18 what architecture? what version of mingw? what install path for both chicken and mingw? 14:33:27 annodomini_ [n=lambda@64.30.3.122] has joined #scheme 14:33:27 -!- annodomini [n=lambda@wikipedia/lambda] has quit [Read error: 104 (Connection reset by peer)] 14:41:45 -!- annodomini_ [n=lambda@wikipedia/lambda] has quit [] 14:54:26 wasabi_ [n=wasabi@202.23.191.41] has joined #scheme 14:55:29 -!- attila_lendvai [n=ati@catv-89-133-170-239.catv.broadband.hu] has quit [Read error: 110 (Connection timed out)] 14:55:54 attila_lendvai [n=ati@catv-89-133-170-239.catv.broadband.hu] has joined #scheme 14:58:27 -!- djjack [n=djjack@cpe-098-026-016-166.nc.res.rr.com] has quit [Remote closed the connection] 15:03:51 schmalbe [n=bernhard@p549A3590.dip0.t-ipconnect.de] has joined #scheme 15:04:00 -!- ejs_ [n=eugen@nat.ironport.com] has quit [Read error: 110 (Connection timed out)] 15:04:43 ejs_ [n=eugen@nat.ironport.com] has joined #scheme 15:05:42 annodomini [n=lambda@130.189.179.215] has joined #scheme 15:07:38 npe [n=npe@32.97.110.63] has joined #scheme 15:09:13 -!- Adamant [n=Adamant@unaffiliated/adamant] has quit [] 15:09:52 Adamant [n=Adamant@c-98-244-152-196.hsd1.ga.comcast.net] has joined #scheme 15:10:37 name [n=name@sburn/devel/name] has joined #scheme 15:13:07 -!- rtra [n=rtra@unaffiliated/rtra] has quit ["ERC Version 5.3 (IRC client for Emacs)"] 15:13:17 -!- ecraven [i=nex@eutyche.swe.uni-linz.ac.at] has quit ["bbl"] 15:16:53 npe_ [n=npe@32.97.110.63] has joined #scheme 15:17:53 rtra [n=rtra@unaffiliated/rtra] has joined #scheme 15:24:15 -!- npe [n=npe@32.97.110.63] has quit [Success] 15:26:04 npe [n=npe@32.97.110.63] has joined #scheme 15:26:41 -!- Adamant [n=Adamant@unaffiliated/adamant] has quit [No route to host] 15:32:15 peter_12 [n=peter_12@S010600119506b129.gv.shawcable.net] has joined #scheme 15:34:58 -!- npe_ [n=npe@32.97.110.63] has quit [Success] 15:35:15 npe_ [n=npe@32.97.110.63] has joined #scheme 15:36:47 -!- Mr_SpOOn [n=Mr_SpOOn@89-97-102-218.ip17.fastwebnet.it] has quit [Remote closed the connection] 15:42:19 -!- npe [n=npe@32.97.110.63] has quit [Connection timed out] 15:43:20 -!- foof [n=user@isa7-dhcp-116-151.naist.jp] has quit ["ERC Version 5.2 (IRC client for Emacs)"] 15:43:46 -!- npe_ [n=npe@32.97.110.63] has quit [Connection reset by peer] 15:44:29 npe [n=npe@32.97.110.63] has joined #scheme 15:47:05 -!- npe [n=npe@32.97.110.63] has quit [Read error: 60 (Operation timed out)] 15:53:41 npe [n=npe@32.97.110.63] has joined #scheme 16:00:57 foof [n=user@dn157-046.naist.jp] has joined #scheme 16:01:49 -!- npe [n=npe@32.97.110.63] has quit [Read error: 145 (Connection timed out)] 16:05:08 npe [n=npe@32.97.110.63] has joined #scheme 16:14:20 npe_ [n=npe@32.97.110.63] has joined #scheme 16:18:47 -!- z0d [n=z0d@unaffiliated/z0d] has quit [Read error: 104 (Connection reset by peer)] 16:18:54 -!- ejs_ [n=eugen@nat.ironport.com] has quit [Read error: 145 (Connection timed out)] 16:21:38 proq [n=user@unaffiliated/proqesi] has joined #scheme 16:21:41 -!- npe [n=npe@32.97.110.63] has quit [Connection timed out] 16:22:35 -!- npe_ [n=npe@32.97.110.63] has quit [Read error: 145 (Connection timed out)] 16:24:04 -!- kuribas [i=kristof@d54C43E3B.access.telenet.be] has quit ["ERC Version 5.2 (IRC client for Emacs)"] 16:24:35 npe [n=npe@32.97.110.63] has joined #scheme 16:25:15 -!- hml [n=x@unaffiliated/hml] has quit ["Lost terminal"] 16:31:31 ejs_ [n=eugen@nat.ironport.com] has joined #scheme 16:32:16 bashyal [n=bashyal@208.42.136.59] has joined #scheme 16:33:46 npe_ [n=npe@32.97.110.63] has joined #scheme 16:33:46 -!- npe_ [n=npe@32.97.110.63] has quit [Read error: 54 (Connection reset by peer)] 16:42:25 -!- npe [n=npe@32.97.110.63] has quit [Read error: 110 (Connection timed out)] 16:42:57 npe [n=npe@32.97.110.63] has joined #scheme 16:47:32 ' Attackers bent on shutting down large Web sites even the operators that run the backbone of the Internet are arming themselves with what are effectively vast digital fire hoses capable of overwhelming the worlds largest networks, according to a new report on online security.' 16:47:39 id expect better than that from the new york times. 16:48:25 a report says 'somebody hosed our connect', and some dingbat translates that as above, is my guess. 16:48:52 http://www.nytimes.com/2008/11/10/technology/internet/10attacks.html 16:48:55 Let the New York Times know. We're already aware of how silly that sounds. 16:49:42 bombshelter13 [n=bombshel@209-161-229-68.dsl.look.ca] has joined #scheme 16:50:01 if we let them know, nothing will change, and we lose our amusement for the morning. 16:50:06 that seems unfair to us. 16:50:09 I must be parsing that sentence incorrectly 16:50:14 which sentence? 16:50:19 is it saying that backbone operators are equipping themselves with botnets? 16:51:01 There are, I believe, emdashes missing. 16:51:02 attackers bent on shutting down large web sites - even [ones such as] the operators that run the backbone of teh intarwebs - are arming themselves 16:51:06 ahh, okay 16:51:15 `Attackers bent on shutting down large web sites -- even the operators that run the backbone of the internet -- are arming themselves...' 16:51:27 (Apparently the backbone of the internet consists of web sites.) 16:51:33 yeah, my comment exactly. 16:51:41 well...the people that run the backbone probably *have* websites... 16:51:49 attacking them would be pointless though 16:52:10 npe_ [n=npe@32.97.110.63] has joined #scheme 16:52:10 -!- npe_ [n=npe@32.97.110.63] has quit [Read error: 104 (Connection reset by peer)] 16:52:36 oh noes, my routing is borked! someone must have hosed down my BGP web site! 16:52:49 -!- jonrafkind [n=jon@c-98-202-86-149.hsd1.ut.comcast.net] has quit [Connection timed out] 16:52:50 Nshag [i=user@Mix-Orleans-105-2-248.w193-248.abo.wanadoo.fr] has joined #scheme 16:52:57 its nonsensical. 16:53:01 heh, bgp website :P 16:53:04 yeah :) 16:53:25 in not-really-related news, I liberated a big intel switch 16:53:29 24 ports :) 16:53:56 i realised after i typed it that the person who wrote the article wouldnt know what 'routing' or 'protocol' or 'gateway' means if all of the above jumped out and went boo. 16:54:02 it has a MIPS processor and a meg of RAM in it 16:54:06 wow, sexy. 16:54:09 and it will boot things over TFTP, allegedly 16:54:21 it also has a small thing in the bootloader which lets you dump memory 16:54:22 m, not so sexy if left to its own devices :) 16:54:25 so I can grab its current firmware 16:54:30 then write better firmware 16:54:33 *elf* laughs. 16:54:35 and have a very, very small MIPS box :P 16:54:47 how oldschool of a mips processor? 16:54:52 16mhz 16:54:53 R3k 16:54:57 wow. 16:55:39 yeah 16:55:42 it's an old piece of gear 16:55:46 510T 16:55:55 it's so old intel support no longer has the firmware images for it :( 16:56:17 *elf* laughs. 16:56:41 'liberated' or 'was paid to recycle' ? 16:59:38 -!- sad0ur [n=sad0ur@psi.cz] has quit [Read error: 113 (No route to host)] 16:59:44 -!- npe [n=npe@32.97.110.63] has quit [Connection timed out] 17:00:09 araujo [n=araujo@gentoo/developer/araujo] has joined #scheme 17:00:20 -!- ejs_ [n=eugen@nat.ironport.com] has quit [Read error: 110 (Connection timed out)] 17:00:46 Where could an interested party purchase one of these aforementioned vast digital fire hoses? 17:00:59 I've always wanted a burning hose. 17:01:10 And if it has *fingers*, all the better! 17:01:21 npe [n=npe@32.97.110.63] has joined #scheme 17:01:21 -!- npe [n=npe@32.97.110.63] has quit [Read error: 104 (Connection reset by peer)] 17:02:19 Riastradh, I saw that you pushed a new version of the foof-loop article, but I was already on the road at that point. I'll snarf and merge today. 17:07:17 sad0ur [n=sad0ur@psi.cz] has joined #scheme 17:08:38 Ask the Greeks. 17:10:32 npe [n=npe@32.97.110.63] has joined #scheme 17:13:22 -!- npe [n=npe@32.97.110.63] has quit [Operation timed out] 17:15:57 Firehoses for firefighters with vast digits, like so many sausages in a pan. 17:16:54 Takes special gloves to enclose those vast digits, too. 17:19:43 npe [n=npe@32.97.110.63] has joined #scheme 17:19:43 -!- npe [n=npe@32.97.110.63] has quit [Connection reset by peer] 17:23:11 *elf* cuts through the innuendo with a <>. 17:23:15 Made a nice find at the used bookstore yesterday: a cherry copy of Knuth Vol 1 for $11. 17:23:25 pretty. 17:23:45 Vol 1 being the only volume I've ever needed. Had to mooch a copy then. 17:24:09 jlongster [n=user@75.148.111.133] has joined #scheme 17:24:24 jonrafkind [n=jon@wireless206.wireless.utah.edu] has joined #scheme 17:24:50 really? 17:25:00 i found vol3 most helpful, iirc. 17:26:38 ...ah, yes, this brings back memories. p 417, "Lists and Garbage Collection" - the Deutsch-Schorr-Waite in-place tree traversal. 17:27:55 I don't do a lot of sortin' and searchin'. 17:28:17 But if I can find a $10 copy of Vol 3, I will sieze it with both hands! 17:28:54 npe [n=npe@32.97.110.63] has joined #scheme 17:28:54 -!- npe [n=npe@32.97.110.63] has quit [Read error: 104 (Connection reset by peer)] 17:38:05 npe [n=npe@32.97.110.63] has joined #scheme 17:39:44 -!- sad0ur [n=sad0ur@psi.cz] has quit [Remote closed the connection] 17:39:56 sad0ur [n=sad0ur@psi.cz] has joined #scheme 17:40:49 -!- Daemmerung [n=goetter@1133sae.mazama.net] has quit ["Smoove out."] 17:41:54 -!- pjdelport [n=pjd@ampere.divmod.com] has quit [Remote closed the connection] 17:43:34 saccade_ [n=saccade@209-6-23-56.c3-0.smr-ubr1.sbo-smr.ma.cable.rcn.com] has joined #scheme 17:48:31 npe_ [n=npe@32.97.110.63] has joined #scheme 17:52:00 -!- exexex [n=chatzill@88.234.9.255] has quit [Read error: 110 (Connection timed out)] 17:54:18 -!- npe [n=npe@32.97.110.63] has quit [Connection timed out] 17:56:46 -!- npe_ [n=npe@32.97.110.63] has quit [Read error: 145 (Connection timed out)] 17:58:05 -!- name [n=name@sburn/devel/name] has quit [Read error: 60 (Operation timed out)] 17:58:18 Daemmerung [n=goetter@1133sae.mazama.net] has joined #scheme 17:58:43 npe [n=npe@32.97.110.63] has joined #scheme 17:58:43 -!- npe [n=npe@32.97.110.63] has quit [Read error: 104 (Connection reset by peer)] 17:59:51 -!- attila_lendvai [n=ati@catv-89-133-170-239.catv.broadband.hu] has quit ["..."] 18:00:36 That is quite a find, Daemmerung. 18:05:46 jdijk [i=jdijk@ftth-212-84-159-210.solcon.nl] has joined #scheme 18:05:50 -!- jdijk [i=jdijk@ftth-212-84-159-210.solcon.nl] has left #scheme 18:06:18 z0d [n=z0d@unaffiliated/z0d] has joined #scheme 18:07:01 jdijk_ [n=jerry@ftth-212-84-159-210.solcon.nl] has joined #scheme 18:07:54 -!- jdijk_ [n=jerry@ftth-212-84-159-210.solcon.nl] has quit [Client Quit] 18:07:55 npe [n=npe@32.97.110.63] has joined #scheme 18:09:24 pjdelport [n=pjd@ampere.divmod.com] has joined #scheme 18:09:25 -!- elias` [n=me@unaffiliated/elias/x-342423] has quit [Read error: 145 (Connection timed out)] 18:13:50 -!- synthasee [n=synthase@68.63.20.12] has quit [Read error: 60 (Operation timed out)] 18:15:38 melito [n=melito@70.99.250.82] has joined #scheme 18:15:39 -!- saccade_ [n=saccade@209-6-23-56.c3-0.smr-ubr1.sbo-smr.ma.cable.rcn.com] has quit ["This computer has gone to sleep"] 18:17:07 npe_ [n=npe@32.97.110.63] has joined #scheme 18:22:45 REPLeffect [n=REPLeffe@69.54.115.254] has joined #scheme 18:24:16 MichaelRaskin_ [n=raskin@gwh-1-177-mytn23k1.ln.rinet.ru] has joined #scheme 18:25:22 -!- npe_ [n=npe@32.97.110.63] has quit [Read error: 145 (Connection timed out)] 18:26:10 -!- npe [n=npe@32.97.110.63] has quit [Connection timed out] 18:27:19 npe [n=npe@32.97.110.63] has joined #scheme 18:30:38 kniu [n=kniu@CMU-301252.WV.CC.CMU.EDU] has joined #scheme 18:33:07 My very special thanks go out to one "Monique," who apparently bought this new in April 1985, then successfully prevented her cat from peeing on it for the next 23 years. Monique, if you have anything else in your library that you'd like to liquidate, call me at 1-900-DAEMMERUNG. I'll be here. 18:36:30 npe_ [n=npe@32.97.110.63] has joined #scheme 18:39:06 -!- npe_ [n=npe@32.97.110.63] has quit [Read error: 60 (Operation timed out)] 18:40:37 -!- cpfr [n=cf@cpe-76-171-165-212.socal.res.rr.com] has quit [Read error: 60 (Operation timed out)] 18:41:54 GreyLensman [n=ray@c-76-108-235-51.hsd1.fl.comcast.net] has joined #scheme 18:41:57 -!- GreyLensman [n=ray@c-76-108-235-51.hsd1.fl.comcast.net] has left #scheme 18:43:46 -!- npe [n=npe@32.97.110.63] has quit [Connection timed out] 18:45:41 npe [n=npe@32.97.110.63] has joined #scheme 18:45:41 -!- npe [n=npe@32.97.110.63] has quit [Connection reset by peer] 18:46:58 tripwyre [n=tripwyre@117.193.161.208] has joined #scheme 18:47:44 Fare [n=Fare@ita4fw1.itasoftware.com] has joined #scheme 18:47:51 -!- tripwyre [n=tripwyre@117.193.161.208] has left #scheme 18:47:53 -!- raikov` [n=igr@203.181.243.11] has quit [Read error: 145 (Connection timed out)] 18:51:10 Nichibutsu [n=myfabse@wikipedia/Track-n-Field] has joined #scheme 18:54:55 npe [n=npe@32.97.110.63] has joined #scheme 18:55:16 geckosen1tor [n=sean@c-24-8-193-190.hsd1.co.comcast.net] has joined #scheme 18:57:16 -!- kib2_ [n=chatzill@bd137-1-82-228-159-28.fbx.proxad.net] has quit [Read error: 54 (Connection reset by peer)] 18:57:54 cpfr [n=cf@dynamic-134-093.usc.edu] has joined #scheme 18:59:19 -!- geckosenator [n=sean@c-24-8-193-190.hsd1.co.comcast.net] has quit [Read error: 60 (Operation timed out)] 19:06:07 npe_ [n=npe@32.97.110.63] has joined #scheme 19:11:09 moghar [n=user@unaffiliated/moghar] has joined #scheme 19:11:30 -!- npe [n=npe@32.97.110.63] has quit [Connection timed out] 19:16:54 hkBst [n=hkBst@gentoo/developer/hkbst] has joined #scheme 19:18:23 -!- synx [i=synx@gateway/gpg-tor/key-0xA71B0C6A] has quit ["Leaving."] 19:18:36 tltstc` [n=nine@192.207.69.1] has joined #scheme 19:20:15 synx [i=synx@gateway/gpg-tor/key-0xA71B0C6A] has joined #scheme 19:20:24 -!- synx [i=synx@gateway/gpg-tor/key-0xA71B0C6A] has quit [Remote closed the connection] 19:20:52 synx [i=synx@gateway/gpg-tor/key-0xA71B0C6A] has joined #scheme 19:24:23 -!- synx [i=synx@gateway/gpg-tor/key-0xA71B0C6A] has quit [Client Quit] 19:28:03 -!- peter_12 [n=peter_12@S010600119506b129.gv.shawcable.net] has quit [] 19:28:29 kib2_ [n=chatzill@bd137-1-82-228-159-28.fbx.proxad.net] has joined #scheme 19:31:13 synx [i=synx@gateway/gpg-tor/key-0xA71B0C6A] has joined #scheme 19:31:57 -!- synx [i=synx@gateway/gpg-tor/key-0xA71B0C6A] has quit [Remote closed the connection] 19:36:08 -!- bashyal [n=bashyal@208.42.136.59] has left #scheme 19:36:38 bashyal [n=bashyal@208.42.136.59] has joined #scheme 19:37:55 puchacz [n=puchacz@87-194-5-99.bethere.co.uk] has joined #scheme 19:52:39 http://little-people.blogspot.com/2008/07/life-as-we-know-it.html 19:52:40 beautiful 19:55:14 jgracin [n=jgracin@82.193.208.195] has joined #scheme 19:55:31 -!- bashyal [n=bashyal@208.42.136.59] has quit [Read error: 110 (Connection timed out)] 19:56:13 vorpal [n=rhunter@pdpc/supporter/student/vorpal] has joined #scheme 19:57:31 -!- Wardje [n=Ward@67.202.80.55] has quit [Connection timed out] 19:59:41 renke [n=renke@Lc738.l.pppool.de] has joined #scheme 20:02:30 -!- kib2_ [n=chatzill@bd137-1-82-228-159-28.fbx.proxad.net] has quit [Read error: 60 (Operation timed out)] 20:02:31 bashyal [n=bashyal@v-209-98-139-195.mn.visi.com] has joined #scheme 20:05:29 -!- jgracin [n=jgracin@82.193.208.195] has quit [Remote closed the connection] 20:05:34 jgracin [n=jgracin@82.193.208.195] has joined #scheme 20:05:56 -!- ventonegro [n=user@136.166.1.3] has quit ["ERC Version 5.2 (IRC client for Emacs)"] 20:07:13 mejja [n=user@c-4db6e555.023-82-73746f38.cust.bredbandsbolaget.se] has joined #scheme 20:07:34 luhar [i=728f26a5@gateway/web/ajax/mibbit.com/x-67596b7794fe9c6e] has joined #scheme 20:09:15 when computing factorial using recursion 20:09:34 does the computation happen in a reverse fashion 20:09:49 for example factorial 3 20:10:04 first recursively goes uptil 0 20:10:22 then goes 1 * 1 * 2 *3 20:11:29 Arelius [n=Indy@netblock-68-183-230-134.dslextreme.com] has joined #scheme 20:17:25 synx [i=synx@gateway/gpg-tor/key-0xA71B0C6A] has joined #scheme 20:18:35 dangit, can't people get SSL handshakes right yet? 20:18:57 No. Any other questions? 20:19:23 -!- kniu [n=kniu@CMU-301252.WV.CC.CMU.EDU] has quit [Read error: 60 (Operation timed out)] 20:19:49 hotblack23 [n=jh@p5B054B44.dip.t-dialin.net] has joined #scheme 20:20:04 "Oh I'm going to make a SSLv2 handshake but label it as v3. That's a great idea." 20:20:35 "Why sir, that's uncouth! I'm going to respond with a text error message, after having already entered a SSL state." 20:21:07 Don't forget the `Gosh, I love shaking hands! Let's do it again! And again! And again! And again! And again! And again! And again! And again!' 20:21:16 "I'll just take this text error mistakenly passed through a base64 decoder and parse the resulting garbage. *segfault*" 20:22:07 -!- jonrafkind [n=jon@wireless206.wireless.utah.edu] has quit [Read error: 60 (Operation timed out)] 20:23:39 I think encryption should be a network layer type problem, with the applications agnostic of the actual handshaking and junk. 20:23:48 You mean like IPsec? 20:23:50 *Riastradh* coughs. 20:24:01 yeah 20:24:09 Except IPSec sucks. More like i2p 20:24:25 jonrafkind [n=jon@wireless206.wireless.utah.edu] has joined #scheme 20:25:24 "Connect" to an "address" and "exchange" "packets" "in order" <-- all the application has to expect. 20:25:48 No, that's not right. 20:26:30 how so? 20:26:45 You're missing the often desired authentication of one or both parties. 20:28:06 In i2p, the address is a base64 hash of a public encryption key. Knowing their address is enough for most authentication purposes. 20:30:09 Do you want to make routing a part of the application's interface, then? 20:30:41 -!- sad0ur [n=sad0ur@psi.cz] has quit [Read error: 113 (No route to host)] 20:30:57 Often neither identity nor address alone suffices to open a secure channel. Consider ssh tunnels, for example. If your addresses are your identities, you'll need more than just the identity to select the right tunnel. 20:31:28 Hm? Not particularly. The route doesn't matter, since the destination is cryptographically authenticated. 20:31:42 -!- fschwidom [n=fschwido@dslb-084-059-141-251.pools.arcor-ip.net] has quit [Remote closed the connection] 20:32:03 Of course the route matters -- which route may not matter, but having a route at all matters. 20:32:21 Well okay. 20:32:53 If you can't find a route it just fails to connect... 20:33:25 sad0ur [n=sad0ur@psi.cz] has joined #scheme 20:33:32 And if I need to specify the route, that becomes a part of the application-level networking interface. 20:34:01 Anyway, you figure out what key they're using to authenticate with, hash it and compare it with the address. That happens in the network layer, so it's transparant to the application. 20:34:11 if it can't find anyone with the right key, you don't connect. 20:34:36 My application is still trying to route its way through an ssh tunnel. 20:34:52 You haven't told me yet, though, whether my application is supposed to do its own routing. 20:35:11 Your application is not, no. 20:35:23 Well, then I can't connect to the host I want to. That's no good! 20:35:28 It just specifies the address, and exchanges information. 20:35:55 Sure you can. That's what the routers are there for. 20:36:03 No. The routers don't know about my ssh tunnel. 20:36:15 Of course without any Internet routers you'd be hard pressed to communicate. 20:36:27 When did I specify a ssh tunnel? <_< 20:36:31 *I* did. 20:36:55 mbishop [n=martin@unaffiliated/mbishop] has joined #scheme 20:37:17 Please pay attention. 20:37:20 Well... don't use ssh. I'm talking about i2p. You could ssh into a machine, and connect through i2p from there, but yeah you'd be specifying part of the route then. 20:37:33 Do you know what an ssh tunnel is? 20:37:55 Yes. 20:37:55 bcow [n=null@S01060050fc051c84.lb.shawcable.net] has joined #scheme 20:38:51 Now I hope you're not telling me that I can't use them in this protcol of yours, because that's a pretty limited protocol. Now, maybe you have an alternative to suggest -- and no, running a program on the remote machine is not an option (I hope I don't need to explain why it's not an option). 20:39:25 You could use them, but it'd be kind of pointless since it's already end-to-end encrypted. 20:39:37 No, it would not be pointless. 20:39:54 Plus you would have two keys to authenticate with, the ssh key and the key for that destination. 20:40:31 You're running sshd on the remote machine, why not another program? 20:40:37 bweaver [n=bweaver@75.148.111.133] has joined #scheme 20:40:38 There may not be a route for IP (or what have you) packets to travel along from point A to point B, but there may be a route through an ssh tunnel for TCP data (or what have you). 20:40:58 Sigh. I was hoping not to need to explain this. 20:41:29 If IP packets can't travel, then SSH can't either... the tunnel would stop responding.. 20:41:33 No, synx. 20:41:38 I'll give you an example. 20:41:51 Right now I am typing on a PowerBook a hundred miles away from the machine on which my IRC client is running. 20:42:03 IP packets cannot travel from the PowerBook to this Sun machine. 20:42:04 I'm using Irssi 0.8.9 (20031210) -- http://irssi.org/ -- on SunOS 5.9 sun4u sparc! 20:42:05 Yes, okay. 20:42:33 They have to be able to travel that far, otherwise how are you using ssh? 20:42:41 ssh is tunnelled over IP 20:42:46 TCP data, however, are travelling, or else I couldn't enter input into this client. 20:43:02 Ssh is a protocol atop the IP, yes. 20:43:17 That doesn't mean that there must exist an IP route from my PowerBook to this Sun machine. 20:43:53 Furthermore, I can still be reasonably sure that I am talking with my Sun machine, and not with some other machine, even if my ssh gateway is compromised. 20:44:01 TCP is a layer on top of IP. Everything is IP pretty much. IPv4 to be specific. 20:44:31 Oh, wow. That's just nowhere near correct. 20:44:38 Perhaps I ought to have said `data' rather than `TCP data'. 20:45:18 It does mean there must exist an IP route. Unless you've got a really long wire? 20:45:21 Gah I gotta go 20:45:22 No. 20:45:30 For all you know, synx, I could have another gateway, and between the two gateways a Chaosnet. 20:46:03 All that matters is that the Sun machine and my PowerBook see either end of a TCP connection. 20:46:20 Sorry, that's not right: `TCP connection' should have been in scare quotes. 20:46:46 -!- luhar [i=728f26a5@gateway/web/ajax/mibbit.com/x-67596b7794fe9c6e] has left #scheme 20:47:11 Please think about this, synx, before proposing a radical replacement architecture for the intertubes. 20:52:20 hml [n=x@unaffiliated/hml] has joined #scheme 20:52:33 -!- hml [n=x@unaffiliated/hml] has quit [Client Quit] 20:54:14 incubot [n=incubot@24.205.65.135] has joined #scheme 20:57:11 peter_12 [n=peter_12@S010600119506b129.gv.shawcable.net] has joined #scheme 20:59:33 -!- jgracin [n=jgracin@82.193.208.195] has quit [Remote closed the connection] 21:05:35 vasa [n=vasa@mm-152-92-84-93.dynamic.pppoe.mgts.by] has joined #scheme 21:05:51 -!- j4cbo [i=jacob@PARTYVAN.RES.CMU.EDU] has left #scheme 21:11:01 kuribas [i=kristof@d54C43E3B.access.telenet.be] has joined #scheme 21:19:07 -!- rotty [n=user@chello084114192192.1.15.vie.surfer.at] has left #scheme 21:27:28 -!- Nichibutsu [n=myfabse@wikipedia/Track-n-Field] has quit [] 21:28:15 incubot: have you seen any fnords lately? 21:28:18 You know what happens if you can see the fnords. 21:30:09 kniu [n=kniu@LEMON.RES.CMU.EDU] has joined #scheme 21:35:51 a1len [n=James@unaffiliated/a1len] has joined #scheme 21:36:20 a1len: any progress in sicp? 21:37:15 klutometis: Well, it's an interesting story really, but in short, I found sicp to be too wordy for my feeble mind, and so I feel back on htdp. 21:37:52 wordy? that's interesting; i always found it dense and rather laconic 21:38:13 klutometis: Maybe wordy's not the right word... fast? 21:39:13 yeah, that's more like it; good luck, then (though i think you gave up too easily) 21:39:39 -!- peter_12 [n=peter_12@S010600119506b129.gv.shawcable.net] has quit [Operation timed out] 21:39:45 klutometis: I like the pace of htdp more. Perhaps I gave up on sicp too soon. 21:41:20 klutometis: I'm also brushing up on trigonometry; I would like to find a way to combine the two. I think that would be a good learning experience. 21:43:05 trigonometry and ... scheme? 21:44:34 klutometis: I don't know what the context of that question is. 21:47:33 RMRECONNS 21:47:39 oops 21:49:28 arcfide [n=arcfide@adsl-99-137-203-160.dsl.bltnin.sbcglobal.net] has joined #scheme 21:51:21 -!- cemerick [n=la_mer@75.147.38.122] has quit [] 21:53:09 Hello everyone. 21:53:46 htdp? 21:54:29 proq: http://htdp.org/2003-09-26/Book/curriculum-Z-H-1.html#node_toc_start 21:58:23 kraant [n=kraant@CPE-58-161-128-2.nsw.bigpond.net.au] has joined #scheme 22:01:30 AtnNn [n=welcome@modemcable230.56-56-74.mc.videotron.ca] has joined #scheme 22:08:27 -!- puchacz [n=puchacz@87-194-5-99.bethere.co.uk] has quit ["Konversation terminated!"] 22:11:50 -!- renke [n=renke@Lc738.l.pppool.de] has quit ["Lost terminal"] 22:12:29 -!- vorpal [n=rhunter@pdpc/supporter/student/vorpal] has quit ["The incensed priests...continued to raise their voices, vituperating each other in bad Latin"] 22:14:11 forcer [n=forcer@e179192229.adsl.alicedsl.de] has joined #scheme 22:19:38 BW^- [i=Miranda@79.138.208.31.bredband.tre.se] has joined #scheme 22:19:51 hey, can a (values) response be stored in one variable? 22:20:11 not, right? you need to use either recieve, which dumps it into multiple variables, or call with values, that makes multiple parameters to another call of it, right? 22:20:29 rudybot: ping 22:20:34 or.. hmm.. 22:20:40 minion: ping 22:20:40 ping: pong 22:20:47 lelf [n=lelf@217.118.90.100] has joined #scheme 22:20:51 rudybot: you're worthless :( 22:21:03 BW^-: (values) does not have any return values. No, you can not store nothing into a variable. 22:21:35 It's like asking "can I store the first element of the empty list into a variable?" 22:21:42 whay, you can store it ! 22:21:51 no, i can ! 22:21:57 (define x (values "a " "b")) 22:22:04 In non-R5RS-compliant implementations, you can, yes :-) 22:22:06 (receive (c d) x (print c d)) works! 22:22:16 eez not r5rs? 22:22:23 Correct. 22:22:27 huh! 22:27:57 minion: chant 22:27:57 MORE THAN 22:28:04 boooring. 22:28:31 so receive can actually make a list of a values too ? 22:28:52 (receive p (values 1 2) p) = '(1 2) right? 22:29:03 rudybot: eval (receive p (values 1 2) p) 22:29:03 BW^-: error: reference to undefined identifier: receive 22:29:09 uh. 22:29:35 BW^-: I think you're being misled by many systems' hacky implementation of multiple values. 22:29:46 so what's kosher? 22:30:22 (values) and (call-with-values) and that's it? 22:30:30 that's vanilla. 22:30:44 what's kosher is you can't assign multiple values in a DEFINE. 22:30:51 values are not guaranteed to be stored as a single list, so they can be more efficient than having to allocate a list, but they cannot be compartmentalized as a single thing. 22:30:54 some impls have DEFINE-VALUES. 22:31:04 ...is how I understood it. 22:31:12 ok 22:31:20 if you're using PLT, you have let-values, letrec-values, let*-values.... 22:31:32 ok 22:31:39 receive is a SRFI. I don't recall which. 22:31:47 k 22:31:52 rudybot: quote 22:31:52 proq: I'll clean your oslution of epotash. 22:32:21 And I don't know what Gambit does. 22:32:32 k 22:33:20 (But I'd like to know.) 22:33:29 k 22:33:33 well 22:33:36 (define a (values a b)) 22:33:39 i can 22:34:01 (call-with-values (lambda () (values 2 3 4)) (lambda (a b c) (+ a b c))) might be the same as ((lambda (a b) (apply b (a))) (lambda () (list 2 3 4)) (lambda (a b c) (+ a b c))) but the second one guarantees that (list 2 3 4) is a single thing. 22:34:18 apply has to parse through the list and extract every element to apply to the function... I gather multiple values can skip that step. 22:34:48 k 22:34:50 It really doesn't sound like a big efficiency improvement to me, but maybe it's better in terms of abstraction... 22:35:19 rudybot: (define x (values 2 3 4)) 22:35:29 rudybot: eval (define x (values 2 3 4)) 22:35:31 synx: error: define-values: context (defining "x") expected 1 value, received 3 values: 2 3 4 22:36:05 -!- vasa [n=vasa@mm-152-92-84-93.dynamic.pppoe.mgts.by] has quit ["I am not vasya, i am vasa"] 22:36:11 `define' in PLT being defined in terms of `define-values' . 22:36:31 (I think) 22:37:15 well yeah um... 22:37:29 prhlava [n=vladimir@80-41-30-28.dynamic.dsl.as9105.com] has joined #scheme 22:37:51 rudybot: eval (define-values (a b) (values 1 2)) (printf "a is ~a, b is ~a~n" a b) 22:37:52 Daemmerung: ; stdout: "a is 1, b is 2\n" 22:37:53 rudybot: eval (let-values ([(a b c) (values 2 3 4)]) (display (format "~a ~a ~a~n" a b c))) 22:37:53 synx: ; stdout: "2 3 4\n" 22:38:17 synx: values allows you to send multiple arguments to a continuation. 22:38:33 Yes it does. 22:38:50 synx: So you it makes sense to have them in a language with continuations. 22:39:11 It doesn't let you call an ordinary function with multiple arguments though oddly enough. 22:39:27 Considering function calls can be considered a subset of continuations. 22:40:11 synx: that's the purpose of call-with-values. 22:40:15 hello to everyone from scheme noob, what do I need to require to get "for/list" form in plt-scheme (the latest release). I searched and tried and keep failing (says "undefined"). Also, is there a plt specific channel? (I tried different languages in drscheme to no avail) 22:40:26 prhlava: use the Module language. 22:40:54 and make sure you have #lang scheme up top. Pretty sure that's all you need. 22:41:01 cheers Daemmerung, will try that... 22:41:03 Daemmerung: It's kind of an awkward way to say (foo (values 2 3 4)), (call-with-values (lambda () (values 2 3 4)) foo)) 22:42:02 cracki [n=cracki@sglty.kawo2.RWTH-Aachen.DE] has joined #scheme 22:42:14 Just my own personal peeve really. call-with-values was implemented out of need, not to be clear or easy to read. 22:42:35 synx: You can use let-values or receive 22:42:40 Those help a bit 22:43:50 sjamaan: okay. It's still not possible to go (foo (values 2 3 4)), but only not possible when foo is a normal function as opposed to any other continuation. 22:44:34 What you're saying does not make any sense 22:44:48 If you would pass multiple values to a continuation, it would look just like (foo 2 3 4) 22:45:14 Yes but... 22:45:33 (foo (values 2 3 4)) is invalid, but some schemes interpret it as (foo 2), afaik 22:45:50 (discarding additional values after the first) 22:46:10 oh, well that's interesting. 22:46:15 -!- jewel [n=jewel@dsl-242-177-125.telkomadsl.co.za] has quit [Read error: 60 (Operation timed out)] 22:46:18 rudybot: eval (call-with-current-continuation (lambda (foo) (foo (values 2 3 4))) 22:46:19 synx: error: eval:1:0: read: expected a `)' to close `(' 22:46:20 I thought that was legal scheme, but it's not. 22:46:30 oops 22:46:31 synx, why oh why would you think it makes sense to use (foo (values 2 3 4)) and expect it to behave like (foo 2 3 4)? 22:46:37 *synx* adds a ), but it still errors out 22:46:53 arcfide: Don't judge me! xD 22:47:05 synx, you understand why this doesn't work, right? 22:47:08 The continuation that accepts the first argument to foo does not accept multiple values 22:47:28 arcfide: yeah yeah, no not really. But it doesn't work. 22:47:32 (let-values ([args (values 2 3 4)]) (apply foo args)). 22:47:43 synx, note what sjamaan said. 22:48:02 I don't get it. 22:48:24 I don't really need to get it though. 22:48:30 When evaluating the expression (foo a b c), four continuations are created. 22:48:40 One for each of the positions in the expression. 22:48:47 Each of these continuations expect one value. 22:49:04 The expressions in these positions are evaluated and should return one value to these continuations. 22:49:27 The first continuation's value is expected to then be a procedure which can be applied to the rest of the values. 22:49:53 synthasee [n=synthase@68.63.20.12] has joined #scheme 22:49:55 sounds complicated... 22:49:59 (foo (values 2 3 4)) creates two continuations, each expecting one value, but to the second, we are passing three values to a continuation that expects one. 22:50:21 synx: It's important to understand this 22:50:23 I don't think my use of the terms "pass" or "create" here are accurate, but that's somewhat accurate. 22:50:23 arcfide: does this have any practical effect? 22:50:46 BW^-: The practical effect being that it's not valid :) 22:50:50 BW^-, Yes, it helps to understand how things work, and how to use mutliple values. 22:50:50 it's important to understand this? 22:50:58 yeah 22:51:06 i mean, (call-with-values (values 1 2) (lambda (a b) whatever)) is exactly the same as (apply (lambda a b) whatever) '(1 2)) are Exactly the same thing, effectively, right? 22:51:12 i mean, in terms of what scheemc ode executes 22:51:13 BW^-, It is important to understand what continuations expect what number of values. 22:51:14 It helps to understand what's going on under the covers 22:51:18 arcfide: I can understand now why you can't use (values) to build up function arguments, since it only creates one connection. 22:51:19 As it does in every language 22:51:20 BW^-, No. 22:51:38 -!- schmalbe [n=bernhard@p549A3590.dip0.t-ipconnect.de] has quit [Remote closed the connection] 22:51:43 why? 22:51:51 BW^-: Some functions you have no control over (tcp-connect...) will return multiple values. call-with-values is one way to deal with those. 22:51:56 Apply creates an intermediate data structure. 22:52:10 A small intermediate data structure. 22:52:13 arcfide: yes right. but more than that? 22:52:21 I mean, relies on one. 22:52:37 In CALL-WITH-VALUES, an implementation is not required to implement this using APPLY and LISTs. 22:52:49 synx, one that makes a difference. 22:52:57 -!- borism [n=boris@195-50-200-2-dsl.krw.estpak.ee] has quit [Client Quit] 22:52:59 BW^-, that is very important. 22:53:14 minion: advice for BW^- 22:53:14 ok. nothing more than it spaces a little little bit of GC then? 22:53:15 BW^-: #11905: Now is the time in our program where you look at the manual. 22:53:24 minion: advice for me 22:53:25 sjamaan: #11944: Yes, that's what it's supposed to do when you say that. 22:53:32 ah, good 22:54:20 It avoid over-specification. 22:54:20 By that I mean that it doesn't say more than necessary. 22:54:42 If we used an intermediate data structure, it is very possible that this would create overhead more than just the list. 22:55:11 This list might create closures, or do other things, preventing the compiler from doing further optimizations. 22:55:51 It is possible to do things without multiple values, but having multiple values is very nice. 22:56:22 aye 22:56:27 It's clean 22:56:48 Of course, it might be a nice time to mention a paper from Dybvig which talks about this. 22:57:04 borism [n=boris@195-50-200-2-dsl.krw.estpak.ee] has joined #scheme 22:57:06 22:57:16 *mejja* pukes 22:57:45 I am sure there are others out there. 22:57:53 mejja: ill? 22:57:53 :) 22:58:10 BW^-, the above paper will show you one of the nice things about multiple values. 22:58:20 BW^-: looks like Feeley doesn't think much more of MV than mejja does. 22:59:51 Daemmerung: Everyone's free to think about them what they want, but it's still important to understand them as they _are_ an aspect of Scheme 22:59:55 Gambit has `values' and `call-with-values' for R5 compliance. It uses the list-with-a-cookie implementation hack for them. Nowhere in its source does it use MV. It doesn't offer any friendlier construct than call-with-values natively (though it appears that syntax-case creates a let-values, probably for its own benefit.) 23:00:09 -!- lelf [n=lelf@217.118.90.100] has quit ["used jmIrc"] 23:00:11 sjamaan: They are an aspect of R5RS. 23:00:43 R4 didn't have them? 23:00:47 Correct. 23:01:00 arcfide: what's its point? :) 23:01:19 -!- bweaver [n=bweaver@75.148.111.133] has quit [] 23:01:47 I think the point is specifying exactly what you want instead of using intermediate data structures and underlying assumptions to do so. 23:02:00 BW^-, the point is, they are a logical and useful construct that makes sense to use when you shouldn't be thinking about things in terms of some intermediate, useless data structure that just creates overhead. 23:02:28 BW^-, would you use EVAL just because you get roughly the same result? 23:02:36 (to Daemmerung - for/list ), tried Module language it works, but I cannot get graphics library and for/list together (either one works but not both). I need bitmap-dc% and and for/list used in one program... :-( 23:02:44 Would you use APPLY instead of a regular function call? 23:02:54 arcfide: right, get point 23:03:18 prhlava: Show us your work via lisppaste. 23:03:31 -!- jlongster [n=user@75.148.111.133] has quit [Read error: 113 (No route to host)] 23:04:18 Because I use both in the same program. 23:06:18 *mejja* prefers downward funargs 23:06:41 here it is: http://paste.lisp.org/display/70100 23:06:55 BW^-, one of the other things about multiple values is that it allows your compiler to treat function returns *and* function calls as the same thing, which is a transfer of program flow. 23:07:00 -!- annodomini [n=lambda@wikipedia/lambda] has quit [] 23:07:23 prhlava: you need to (require mred) 23:07:25 Since you can call a function with multiple values, it makes sense to be able to call back from a function with multiple values as well. 23:07:47 gnomon: oh, that was an interesting point! 23:07:57 :-) cheers :-) 23:08:02 Once you start thinking about it that way, multiple return values are *very* nice, and they make a lot of sense. 23:08:12 Or you could #lang scheme/gui, either way. Equivalent. -- Good luck with it. 23:08:20 gnomon: i'll start thinking like that. 23:08:21 hmm. 23:08:26 what design implications does this give us. 23:08:41 i get the point, it affects the logics in how we write 23:08:47 how we think about code 23:09:23 Well, it allows you to start thinking about program control transfers as continuations rather than thinking about them in the traditional stack-like call/return sense. 23:09:40 -!- z0d [n=z0d@unaffiliated/z0d] has quit [Read error: 104 (Connection reset by peer)] 23:09:47 Once that starts coming to you intuitively, then call/cc is next. 23:09:53 Starting to grok it, the docs for plt are good... 23:10:05 gnomon: i already understood call/cc. 23:10:17 (have to go, good night/mid-day/morning to everyone) 23:10:52 BW^-, I did not mean to imply otherwise, and I apologize if it seemed that way. 23:11:16 np 23:11:30 gnomon: MV are an abomination in the eyes of the LORD, an evil that must be scourged from the land with flame and sword. Otherwise, sure, they're groovy. 23:11:31 that's an interesting way to look at it. 23:11:36 I just meant that call/cc and the symmetry of multiple return values and multiple function parameters all weave together. 23:11:41 when i visualize it, it looks like cabling. 23:11:49 Daemmerung, heh ;) 23:12:06 (say ash "Groovy!") 23:12:11 Daemmerung, I actually really quite like multiple return values. They make a lot of sense to me. (they're quite popular in Lua, too) 23:12:12 *Daemmerung* hates MV with the fury of a thousand suns 23:12:21 gnomon: wait, why is call/cc so logical together with multiple procedure parameters / multiple return values? 23:12:26 ...but they are useful, damn it. 23:12:29 hadronzoo [n=hadronzo@pool-71-97-52-8.dfw.dsl-w.verizon.net] has joined #scheme 23:12:33 BW^-, because they're all the same thing. 23:12:45 ¨how? 23:12:51 BW^-: (call/cc (lambda (c) (c 1 2 3 4)) 23:12:58 They're a transfer of control with parameters. 23:13:01 Return 1, 2, 3, and 4 to the continuation c 23:13:02 you mean call/cc is about handling the future (continuation), 23:13:07 and so is returning and calling functions? 23:13:23 -!- prhlava [n=vladimir@80-41-30-28.dynamic.dsl.as9105.com] has left #scheme 23:13:34 The continuation of the call/cc would see the same as when you had written (values 1 2 3 4) there, instead 23:13:57 really! 23:14:15 so when you call a first-class continuation with multiple parameters, they make a (values ? 23:14:18 (values) ? 23:14:23 multiple-return-values thing? 23:14:32 wow! 23:14:34 Rather, values returns multiple values to _its_ continuation 23:14:36 didn't know ! 23:14:37 Very cool! 23:14:50 huh! 23:14:52 Very cool! 23:15:22 BW^-: You might wanna check out some papers on CPS 23:15:30 It's even cooler if you're trying to write a Scheme compiler :) 23:15:33 sjamaan: how come? 23:15:34 Tail call optimization will make a lot more sense then too 23:15:45 gnomon: do you mean that it makes it difficult? 23:15:53 sjamaan: how? 23:15:53 Exactly the opposite! 23:16:04 gnomon: how come? 23:16:06 BW^-: CPS is about writing every single function call such that it explicitly passes the continuation 23:16:17 sjamaan: right 23:16:23 BW^-, when you've got a nice regularized way of transferring control, you can treat every control transfer in the same way, and optimize the screaming hell out of it. 23:16:38 gnomon: Nice choice of words :) 23:16:39 Daemmerung, I first read your interjection earlier as `Daemmerung hates MV with the fury of a thousand nuns.' 23:16:47 gnomon: please continue! 23:16:58 Riastradh: nuns can be furious! 23:17:01 .. I guess 23:17:05 gnomon: please apply it to our code ! :) 23:17:13 how does it make our data aggregation stuff better? 23:17:44 BW^-, well, that's implementation dependent ;) 23:17:56 gnomon: look, 23:18:04 <_< 23:18:06 >_> 23:18:08 Riastradh: my knuckles dread even 1% of so many wickedly wielded rulers. 23:18:09 O_O 23:18:15 i can se concretely how first-class procedures, dynamic typing, macros, and first-class-continuations increase productivity right on the spot 23:18:24 it's very simple. 23:18:40 a language with it makes for more concise code than one without it, when making high-level programming 23:18:48 Roight. 23:18:51 so what about this? 23:18:54 i don't see it. 23:19:03 how does it increase our productivity? 23:19:07 how does it make software better? 23:19:13 kuribas, apropos of your earlier comment: It is true that return values (zero, single, or multiple) make sense only in languages with continuations -- but it is more tautological than I suspect you thought, and applies to most programming languages. 23:19:26 BW^-, hm. 23:19:40 gnomon: i'm already used to back-up "k" from (call/cc (lambda(k) .. 23:19:43 to store the future 23:19:49 and invoke it in different ways 23:19:52 -!- a-s` [n=user@92.80.103.234] has quit [Remote closed the connection] 23:19:59 i know that spares one from event-driven programming 23:20:06 and that makes for 80% code size decreases. 23:20:18 that is, (k) is always invoked with zero or one parameters. 23:20:34 BW^-, it spares one the trouble of introducing a data structure with a single purpose, and conveying the structure of that data structure to the users of the procedure returning multiple values. 23:20:47 Oops. 23:20:55 BW^-, ok, try thinking of this a little differently. 23:21:10 riastradh: interesting, that's a good point! 23:21:11 What if LAMBDA and DEFINE only allowed you to define procedures which accepted either zero or one arguments? 23:21:39 *Riastradh* grabs his chopsticks and vanishes. 23:21:45 -!- CaptainMorgan [n=CaptainM@c-24-61-150-59.hsd1.ma.comcast.net] has quit [Remote closed the connection] 23:21:53 gnomon: right. 23:21:55 I mean, you could always work around that limitation by having procedures which accept a list, and then dedicating some few lines at the beginning of each such function to unpacking the list into internal variables so that you can use them conveniently. 23:22:15 Doesn't it make a lot more sense to be able to just skip all that junk and pass in more than one parameter? 23:22:25 right! 23:22:33 i get this part of the point. 23:22:37 -!- bashyal [n=bashyal@v-209-98-139-195.mn.visi.com] has quit [] 23:22:49 but is there any bonus to it? 23:22:57 what Great Design Philosophies can we build atop it? 23:22:57 ...er. 23:23:05 I don't trust those. 23:23:16 hehe ok. 23:23:22 Multiple return values don't add anything significant to a language. 23:23:36 They simply remove irregularities and unnecessary work. 23:23:38 Law of parsimony. 23:23:39 but look, for instance, i do see how first-class continuations makes a pair with the other language features in order to save you from event-driven programming. 23:23:47 *kuribas* prefers pattern matching. 23:24:44 i think i get the point however. 23:25:05 multiple return values gives you the ability to draw cables in parallell throughout your software in a way you can't without. 23:25:07 :) 23:25:20 MV also fuck up a lot of naive code. 23:25:20 Heh. Sure, if that works for you :) 23:25:32 One could say the same thing about parentheses. 23:25:39 mm 23:25:42 -!- Fare [n=Fare@ita4fw1.itasoftware.com] has quit ["Leaving"] 23:25:51 (lambda (f) (set! something (f 1 2 3))) no longer works. 23:26:10 hehehe. 23:26:11 Daemmerung, why not? 23:26:22 arcfide: what does f return? 23:26:32 Daemmerung, F must return a value. 23:26:39 Why only one? 23:26:51 Daemmerung, because that's what it says. 23:26:56 Is it any less of an error if F returns 0 values? 23:27:16 It's the responsibility of the programmer to not be a blithering idiot. 23:27:17 In the old days when men were men and sheep were scared, it was a safe idiom for generics. 23:27:33 It was never safe. It was just limited. 23:27:37 Take a look at Olin's impl of SRFI 1. It is vile, thanks to the need for MV-safety. 23:28:14 -!- npe_ [n=npe@32.97.110.63] has quit [Read error: 110 (Connection timed out)] 23:28:24 Daemmerung, I don't see how the above was saf.e 23:28:40 -!- moghar [n=user@unaffiliated/moghar] has left #scheme 23:28:52 You always specify what kind of procedures are legal to use for higher-order functions. 23:28:56 All procedures were guaranteed to return a single value. 23:29:14 Daemmerung, you assume that #unspecified or (VOID) is a valid return value. 23:29:23 Daemmerung, well, sure, SRFI-1 could have been reduced in size by removing MV from the set of idioms with which it plays nicely. 23:29:35 You could make it even smaller by requiring that it deal only with proper lists, rather than checking. 23:29:43 And so on. 23:30:15 *arcfide* rushes off for food. 23:30:30 Yeah, I'm considering that same course of action. 23:31:09 annodomini [n=lambda@c-66-30-138-18.hsd1.ma.comcast.net] has joined #scheme 23:31:39 And I have my long commute ahead of me. Time to shut this sucker down. Hasta, y'all. 23:31:48 -!- Daemmerung [n=goetter@1133sae.mazama.net] has quit ["Smoove out."] 23:32:13 -!- hadronzoo [n=hadronzo@pool-71-97-52-8.dfw.dsl-w.verizon.net] has quit [] 23:34:33 -!- hotblack23 [n=jh@p5B054B44.dip.t-dialin.net] has quit [Read error: 110 (Connection timed out)] 23:36:04 hey, wait, 23:36:22 we said multiple return values cannot be put in (define):S 23:36:27 in r5rs. 23:36:29 but how about this? 23:36:48 (receive (a b) ((lambda () (values 1 2))) (print a b)) 23:36:54 should it work in any r5rs impl? 23:37:08 r5rs receive 23:37:09 Sorry, I couldn't find anything for receive. 23:37:14 ok. 23:37:18 well think about call-with-values then 23:37:21 should it work with that? 23:37:39 that is, pipe through the multiple return values through a step that does not feature it? 23:37:56 presuming tail call optimization is in place, it should work, right? 23:38:02 It should. 23:38:07 must it? 23:38:12 ...if I understand your question correctly, which I may not. 23:38:31 What do you mean "through a step that does not feature it"? 23:38:47 (call-with-values (lambda () ((lambda () (values 1 2)))) (lambda (a b) (print a b))) 23:38:49 is this valid? 23:40:03 because scheme should feature tail call optimizations, this should be perfectly valid, right? 23:41:02 raikov [n=igr@203.181.243.11] has joined #scheme 23:41:54 Um. It should, but that's just a plain vanilla call-with-values instance. 23:42:17 right 23:42:23 r5rs' lambda specification explicitly states that the result(s) of the last expression is/are the result(s) of the entire lambda expression 23:42:29 that is, out of the scheme environment's perspective, it's equal to 23:42:38 (call-with-values (lambda () (values 1 2)) (lambda (a b) (print a b))) 23:42:54 as regards the passing of the multiple return value 1 2 to (lambda (a b) .. 23:43:46 BW^-, right, because what's actually happening is that your first value calls your second lambda, and your second lambda calls back to its call site with the two values in parameter positions. 23:44:00 hml [n=x@unaffiliated/hml] has joined #scheme 23:44:03 right 23:44:25 Posit a thought experiment here for a moment. 23:44:39 Imagine that you could... no, never mind. 23:44:43 That wouldn't make sense. 23:46:57 wut? 23:48:28 I was going to say "imagine an implementation which can return multiple values if those values are returned via a tail call, but not otherwise", but that is just nonsensical. 23:51:05 mmh. 23:51:08 our module system is just so nice 23:51:19 it automatically compiles and loads modules and their dependencies 23:51:26 (use lib/http-client) 23:55:17 we needed it for incremental developer. 23:55:19 development 23:58:46 -!- kuribas [i=kristof@d54C43E3B.access.telenet.be] has quit ["ERC Version 5.2 (IRC client for Emacs)"]