00:08:17 _Pb [n=_Pb@75.131.194.186] has joined #scheme 00:08:59 -!- karlw [n=karl@adsl-99-157-202-134.dsl.pltn13.sbcglobal.net] has quit [Read error: 60 (Operation timed out)] 00:15:51 Might tasty hash stacks, Mrs McDunnough 00:23:54 jao [n=jao@214.Red-88-6-174.staticIP.rima-tde.net] has joined #scheme 00:24:16 -!- kenpp [n=kenpp@84.92.70.37] has quit [Success] 00:31:09 jengle [n=jengle@69.0.90.45] has joined #scheme 00:31:23 Zhivago, are you still around? 00:31:59 i guess i didn't need to ask that. 00:32:29 Hash stacks are one thing; a stack with hash is another, and a stash of hash is yet another. 00:33:15 well, I asked a question about grouping unrelated procedures into a header. zhivago replied that he doesn't do that. is it still generally common to save a useful procedure in its own file, ie. the filename "usefulproc.c" 00:33:41 I'm only curious because I want to know best how to store code for later use. 00:40:57 hash stash dude 00:42:49 :O 00:43:15 Charlie 00:43:21 hash stash Charlie 00:43:46 I'll have your hash; I love it! 00:44:18 Bombs, rope, lamp oil? 00:46:35 minion: memo for arcfide: Re your "Are they now?" reply to synx -- you should know better, that's a good nail he hit, and if you also attended Mitchfest, then this is what Danvy mentioned in one of his presentations (or maybe it was someone else who did). 00:46:36 Remembered. I'll tell arcfide when he/she/it next speaks. 00:49:48 What, nobody wants a nice stack with hash? I had the stack this morning, though without hash. 00:49:59 incubot: foo (+ 1 2) 00:50:00 Error: unbound variable: foo 00:50:03 michaelw, please explain how for a general procedure call, an extra procedure argument as a continuation can be `optimized away' to be just like multiple return values. 00:50:55 incubot: #|foo|# (+ 1 2) 00:50:56 3 00:52:00 incubot: #|foo|# (display 1) (newline) (display 2) 00:52:00 2# 00:53:18 *jcowan* still longingly craves the perfect way of providing extensible lexical syntax. 00:53:22 -!- jengle [n=jengle@69.0.90.45] has quit ["Leaving"] 00:54:47 jcowan: strings + macros. 00:55:02 Please explicate, eli. 00:55:23 (foo "arbitrary syntax here") 00:55:48 This is a syntax-rules world: taking apart strings is not an option. 00:56:16 And that's not lexical syntax, it's syntax: it only works when doing Scheme, not when reading arbitrary sexprs. 00:56:31 By "lexical syntax" I assumed you mean "concrete syntax". 00:57:13 No, I meant things like '#(...)' and "#e1.27" and "#s(cooby doo)" 00:57:32 That is what I mean by "concrete syntax". 00:58:22 Okay. So *the reader* is supposed to notice that (foo "foobarfoo") is lexical syntax? 00:58:37 I mean, when reading any datum whatsoever? 01:00:08 Macros work because they're expanded before evaluation -- if you don't have macros but you do have `eval' you can fake it by delaying evaluation. 01:00:15 If you want "reader macros" to work you need to run them before you construct the AST (aka `read'), which means that they cannot be plugged on top of the usual functions/macros system just like macros can't be. 01:00:17 A string version of `eval' can fake this too, and by using macros things are a little better. 01:03:02 I follow you up to the last point. 01:03:31 When READ reads something, it doesn't evaluate anything. The only way to make it do so is readtables, which means eval-when. 01:03:40 And I do so hate eval-when. 01:04:20 No, that doesn't mean EVAL-WHEN. It means that you need some mechanism of identifying a readtable at compile-time -- but it doesn't phase-mixed side effects, i.e. EVAL-WHEN. 01:04:57 Even if you have a readtable, the procedures it contains must be applied by the reader, which implicates runtime. 01:05:47 Anyhow, a full readtable is overkill. I only need extensible syntax, not arbitrarily redefinable syntax. 01:08:31 I don't know how readtables are related to anything here. 01:10:31 Because I want to be able to load a lexical-level module to change the interpretation of #-constructs, at least. 01:10:51 An (immutable) value isn't really first class until it has a datum syntax, and in the Lambda Order .... 01:16:32 And the essence of lexical syntax is that it doesn't just work when processing Scheme, but in all cases. 01:32:42 bombshelter13__ [n=bombshel@76-10-149-209.dsl.teksavvy.com] has joined #scheme 01:33:08 -!- bombshelter13_ [n=bombshel@76-10-149-209.dsl.teksavvy.com] has quit [Read error: 113 (No route to host)] 01:35:15 -!- sepult [n=user@xdsl-87-78-72-90.netcologne.de] has quit ["ERC Version 5.3 (IRC client for Emacs)"] 01:37:30 -!- Axioplase_ is now known as Axioplase 01:39:36 QinGW [n=wangqing@203.86.89.226] has joined #scheme 01:40:43 What is this sudden interest in standardizing first-class environments for Scheme? That's just stupid. 01:43:00 Time Suck^W^WTom Lord, that's all. 01:47:33 saccade [n=saccade@65-78-24-131.c3-0.smr-ubr1.sbo-smr.ma.cable.rcn.com] has joined #scheme 01:49:30 -!- bombshelter13__ [n=bombshel@76-10-149-209.dsl.teksavvy.com] has quit [Read error: 113 (No route to host)] 01:51:14 I read "Time Lord". If only the Doctor could tell us what the next Scheme standard was like, we'd save a lot of time. 01:51:32 (*useless whovian interventio*) 01:51:54 We'd still argue. 01:52:05 I mean, you have to be pretty @#$* important in the Lisp community to have a one-letter signature, no? 01:52:26 Just like people now say R6RS was a mistake, they'll say R7RS _will_ _be_ a mistake and work to change the future. 01:53:48 *jcowan* busily builds wicker men against that day. 01:54:09 jcowan: err, are you talking of my signature? 01:54:20 Tom Lord's. 01:54:33 "-t" 01:54:48 ha. It never caught my eye. 01:55:06 Shouldn't that particular letter be reserved for the current active maintainer of T? 01:56:20 If there were one, perhaps. 01:56:29 *jcowan* tries to find an email from Axioplase, fails. 01:57:50 So what is your signature, then? 01:57:58 newline? 02:01:48 jcowan: "P!" 02:02:04 jcowan: but it's not the "-- \n" kind of signature though. 02:02:13 Neither is his. 02:02:14 Thanks. 02:02:24 Axioplase: the rest room is over there -> 02:03:16 -!- saccade [n=saccade@65-78-24-131.c3-0.smr-ubr1.sbo-smr.ma.cable.rcn.com] has quit ["This computer has gone to sleep"] 02:03:32 foof: I beg your pardon? 02:04:12 it's a pun, Axioplase. 02:04:30 the name of P in English = "pee" = euphemism for "piss" 02:04:44 "rest room" being a euphemism for W.C., which is a euphemism for shitstool. 02:05:04 jcowan: "load a lexical-level module to change the interpretation of #-constructs" doesn't make any sense at all if you're talking about concrete syntax. 02:05:27 -!- blackened` [n=blackene@ip-89-102-28-224.karneval.cz] has quit [Remote closed the connection] 02:05:53 oh. Well, I was not going to grasp this pun. 02:06:01 IOW, I wish to be able to load an array module which suddenly allows #nA to create a literal array. 02:06:46 Since #A has no meaning in standard Scheme, the lexical syntax (as defined in ch. 7 of R5RS) must be changed. 02:07:15 However, I have no itch to change the meaning of "(car 32)" 02:07:21 rcy [n=rcy@S010600179a26267b.wk.shawcable.net] has joined #scheme 02:07:45 jcowan: If that's what you want, then fix the concrete syntaxes you want to use, read them as S-exprs like (#%hash 3 A ), and leave the rest of the work for macros and/or functions. 02:08:19 What happens to '(a b c (#%hash 3 A ))? 02:08:41 -!- luz [n=davids@189.122.90.116] has quit ["Client exiting"] 02:09:49 jcowan: Nothing. You need to deal with that too, of course. 02:10:21 How? If READ reads this in, it should return a list containing three symbols and an array, not three symbols and another list. 02:10:46 That's what I mean by not being quite first-class if you don't have a datum syntax. 02:11:05 "need to deal with that" = "define quote to do so". 02:11:44 I don't see how first-class-ness is related. 02:11:51 That won't do it. You have to redefine the behavior of READ directly. 02:12:25 To be first-class is to have most-favored-datatype status, the status of pairs or numbers or vectors. 02:12:59 Redefining quote doesn't help when you are reading sexprs from a socket and interpreting them as commands, e.g. 02:13:26 Your `quote' example is a good indication for the sense you're not making by asking for a lexically scoped reader syntax. 02:13:38 You want it to work in quote -- and there is no lexical syntax there. 02:13:58 You want it to also work with `read', and there is certainly no lexical scope there too. 02:14:16 (s/lexical syntax/lexical scope/ on the previous one too.) 02:17:13 peter_12 [n=peter_12@S0106000f66bc42b9.vn.shawcable.net] has joined #scheme 02:17:35 *eli* is still waiting for some clarification... 02:18:31 With all those flames about small/big Schemes, I wonder if we shouldn't just allow implementers/users of currently "small" schemes do their blabla on Thing One, and the others on Thing Two. At least, that should limit the fruitless debates. They can do whatever for Thing One, I'm just interested in Thing Two (which I want to be competitive and practical to use from scratch for most projects) 02:18:47 OmniMancer [n=OmniManc@202.36.179.65] has joined #scheme 02:18:57 You underestimate the capacity of Schemers for fruitless debates under *any* circumstances, Axioplase. 02:19:59 is (define (name . args) body) how the equivalent of &rest parameters are done in scheme? 02:20:04 Yes, OmniMancer. 02:20:28 Riastradh: I'm glad I'm not here when they have to decide of the color of the walls from the kitchen. 02:20:30 Axioplase: Many disagree for the need for two separate standards, and regardless the standards are related - thing two is a superset of thing one. 02:20:31 is there anything like keyword args? 02:21:05 foof: No, it's not a strict superset -- at least not according to what they said. 02:21:08 Not built-in or conventional, OmniMancer. 02:21:17 OmniMancer: You can implement a macro to do that, see let-keywords in Gauche. 02:21:36 eli: They said the reverse, that thing one is a subset of thing two. 02:21:59 foof: I'd define thing two first. And then cut off things (and probably patch a few others) until I get something that looks like R4RS. 02:23:46 foof: I didn't get the point of a strict subset -- and the only clarification they gave in this regard (and pretty much the only concrete point) is that the big version can require unicode and the little one not. So it's only a "subset" in a particular and possibly not too useful sense. 02:24:14 -!- jeapostrophe [n=jay@69.169.141.110.provo.static.broadweavenetworks.net] has quit [] 02:24:45 It's certainly not a subset in the sense of simply limiting the number of available procedures, because there will be semantic differences. 02:26:01 steiger_ [n=steiger@189.105.53.164] has joined #scheme 02:26:02 Right, which is why "subset" here is misleading. If you write a program that works with unicode-less (r5rs-style) strings, then switching to a unicode language may very well break it. 02:26:06 But if you leave some things unspecified in small scheme (like how much of the numeric tower is implemented, and what the range of characters are), then large scheme can mostly be defined as a backwards-compatible extension. 02:26:14 hey guys 02:26:33 i wanna paste some code for you, where's the best place? 02:26:36 lisppaste: url 02:26:36 To use the lisppaste bot, visit http://paste.lisp.org/new/scheme and enter your paste. 02:26:38 Doesn't work with strings. 02:26:42 steiger_, see the lisppaste URI. 02:26:47 ty 02:28:04 steiger pasted "untitled" at http://paste.lisp.org/display/86685 02:28:45 so, i can make no sense of the 2 last lines 02:29:02 why does it evaluates to this (shared ...) thing? 02:32:08 QinGW1 [n=wangqing@203.86.89.226] has joined #scheme 02:33:49 steiger_: cyclic list 02:34:17 sepult [n=user@xdsl-87-78-72-90.netcologne.de] has joined #scheme 02:34:36 -!- underspecified [n=eric@softbank220043052007.bbtec.net] has quit [] 02:34:59 It says "I call -1- the list (a a), and then return the list (-1- -1-)" 02:35:07 jeapostrophe [n=jay@69.169.141.110.provo.static.broadweavenetworks.net] has joined #scheme 02:35:21 Err, not cyclic here in fact. Just that it contains twice the *same* pair. 02:35:49 It's like (let ((one (list 'a 'a))) (list one one)) 02:35:56 Axioplase: yeah, i understood that. but why: 02:36:47 -!- rouslan [n=Rouslan@unaffiliated/rouslan] has quit [Read error: 60 (Operation timed out)] 02:37:36 Axioplase: .. but why does it contain the same list "object"? how can i make it evaluate to copies of the list? 02:38:16 they are the same list because you put the same list in both slots 02:39:17 (define (list-copy l) (reverse (foldl cons null l))) 02:39:21 OmniMancer: if i do (bm-aux 2 'a) it creates (list 'a 'a) 02:39:53 rudybot: eval (eq? 'a 'a) 02:39:54 synx: your "http://paste.lisp.org/display/86023,1/raw" sandbox is ready 02:39:54 synx: ; Value: #t 02:40:02 GeoffSK [n=chatzill@c210-49-251-180.kelvn1.qld.optusnet.com.au] has joined #scheme 02:40:04 rudybot: eval (eq? (list 'a 'a) (list 'a 'a)) 02:40:04 synx: ; Value: #f 02:40:27 oh, i see, synx 02:41:09 rudybot: eval (shared ((one (list 'a 'a))) (eq? one one)) 02:41:09 synx: error: reference to an identifier before its definition: shared in module: 'page 02:41:16 bah 02:41:19 rudybot: eval (let ((one (list 'a 'a))) (eq? one one)) 02:41:20 synx: ; Value: #t 02:41:31 it evaluates to (shared) to represent the lists are equal, and it is not necessary for the symbol 'a, since (eq? 'a 'a) is true 02:41:34 got it 02:44:10 -!- _Pb [n=_Pb@75.131.194.186] has quit ["Leaving"] 02:47:37 steiger_: shared seems to be no more than LET. 02:47:52 jengle [n=jengle@69.0.90.45] has joined #scheme 02:47:53 -!- dmoerner [n=dmr@89-151.res.pomona.edu] has quit ["Leaving"] 02:49:25 so, it creates a list with the same object twice (same value, same pointer. same everything). So it has to be EQ?ual. 02:49:59 i see 02:50:15 i'm doing a different-objects version 02:50:31 ty Axioplase , synx , OmniMancer 02:50:59 -!- QinGW [n=wangqing@203.86.89.226] has quit [No route to host] 02:53:49 tjafk2 [n=timj@e176199186.adsl.alicedsl.de] has joined #scheme 02:53:54 to install a PLaneT package I can do (require (planet dherman/json:1:2/json)) but that seems like a crazy bit of code to have in an actual application. In the application it would seem to make more sense to have (require json). 02:54:39 Which json? 02:55:30 eli, by "lexical syntax" I mean what R5RS means by it, which is only indirectly, if at all, connected with notions of lexical scope. 02:56:00 dmoerner [n=dmr@89-151.res.pomona.edu] has joined #scheme 02:56:05 -!- timchen119 is now known as nasloc__ 02:56:19 Hmm, my bad: it actually says "lexical structure". Anyhow, that's what I mean. 03:00:00 np steiger 03:01:25 peter_12: ideally it should just be (require (planet dherman/json:1)) or (planet dherman/json:1/submodule) for some submodule. 03:01:50 peter_12: The idea is major:minor, where minor versions change, but have the same interface (so won't break your code (but may be buggy)) 03:02:21 so author/package:major:minor/submodule is the full syntax, but just author/package:major should be sufficient for most applications and packages. 03:03:04 dherman is a dummy head though, and doesn't rename "json.ss" to "main.ss" so you need to add a /json at the end. 03:03:32 -!- OmniMancer [n=OmniManc@202.36.179.65] has left #scheme 03:04:35 (require (planet "json.ss" ("dherman" "json.plt" 1))) should work too if you want something in lists not weird syntax. 03:05:55 -!- jengle [n=jengle@69.0.90.45] has quit ["Leaving"] 03:08:58 -!- tjafk1 [n=timj@e176221231.adsl.alicedsl.de] has quit [Read error: 110 (Connection timed out)] 03:09:12 ...heh. I don't think the issue was about the syntax, synx. I think the issue was about relying on some remote database across the intertubes. 03:09:52 peter_12: You can use (planet dherman/json) to get whatever is the recent version -- but that's considered bad style since new versions can break the API. 03:10:29 Axioplase: `shared' is more like `letrec' that can work with values too, for example (shared ([a (cons 1 a)]) ...) 03:11:24 synx: No, dherman is not a dummyhead -- you cannot have a toplevel main.ss that makes sense of a (planet dherman). 03:12:29 jcowan: That's not good enough when you want to talk about concrete syntax extensions -- because rnrs has the advantage of using a fixed concrete syntax. 03:12:37 s/advantage/"advantage"/ 03:13:13 Quite. 03:13:44 -!- jeapostrophe [n=jay@69.169.141.110.provo.static.broadweavenetworks.net] has quit [] 03:13:45 So how can we move from a fixed to an extensible (but not necessarily redefinable) syntax without giving up the actual advantages? 03:14:07 You can't do that in any obvious way. 03:14:39 Like you said, the thing I suggested works only with considerable effort of redefining how `quote' and `read' work. 03:14:59 If you don't want that, then you have no way of extending it like you want. 03:15:49 bombshelter13_ [n=bombshel@76-10-149-209.dsl.teksavvy.com] has joined #scheme 03:16:06 The PLT `#reader' thing gives you support for per-expression custom readers, localizing the extension in a way that avoids the `eval-when' nightmare, but it looks like this is more than what you want. 03:16:44 rouslan [n=Rouslan@pool-71-161-75-11.cncdnh.east.myfairpoint.net] has joined #scheme 03:17:29 BTW, at least some of the SC members share the opinion that concrete syntax extensions should be the next logical step for "Scheme" to tackle. 03:18:03 But given the mess that this seems to be headed at, I doubt that anything like that can even be discussed. 03:20:22 eli: I meant (planet dherman/json) not (planet dherman/json/json) as is required by his package. 03:22:49 synx: OK, in that case you (or peter_12) should ask him for it, I'm sure that he'll either add it or explain why he doesn't want to do so. 03:23:17 Redefining quote is neither necessary nor sufficient, because read doesn't know what quote is. 03:23:42 jcowan: I did say "`quote' *and* `read'" 03:24:44 Changing read alone is necessary and sufficient. Hence the connection to readtables. 03:25:01 But it has to be a version of read that can invoke arbitrary procedures, unlike normal Scheme read. 03:25:07 Like SRFI-10, but less limited. 03:25:20 (a) Only if `read' is also used to read your code; (b) you wanted an extensible construct. 03:25:24 That's all fine. The trouble with SRFI-10 is that you have to do a *run time* thing to affect *lexical structure*. 03:25:43 (a) yes, (b) that *is* what I want, unless we are talking past each other again. 03:26:05 eli: I think it's an aesthetic thing really. I don't seriously think dherman is wrong for calling it "json.ss" not "main.ss". In fact, planet packages have a way to specify which file is the main one. It's just ignored at the moment... 03:26:27 There is no way to talk about a "runtime" without it being the runtime that happens at read-time. 03:27:23 synx: Well, IIRC, the convention used to be foo/foo.ss as the main file, and that changed with v4. My guess is that he's still using the v3 convention for some reason. 03:29:47 oh, well my bad then 03:31:27 Nothing bad, really -- it's a valid point, which I missed since I didn't see the original require line. 03:34:32 eli: Right. But if we are willing to accept only certain special cases, perhaps we can avoid requiring full access to every procedure at read time. 03:35:29 Seems that you have some specific meaning for "extensible" which is not the meaning I use. 03:35:46 underspecified [n=eric@walnut.naist.jp] has joined #scheme 03:36:57 By extensible, I mean that existing concrete syntax may not be altered, but new concrete syntax may be recognized at read time. 03:38:56 If the "new concrete syntax" includes arbitrary constructs then the problem is still there, and no way to get better than things like the solutions I suggested, or hacks like srfi 10. 03:39:41 QinGW [n=wangqing@203.86.89.226] has joined #scheme 03:42:40 -!- sepult [n=user@xdsl-87-78-72-90.netcologne.de] has quit [Read error: 104 (Connection reset by peer)] 03:43:01 -!- peter_12 [n=peter_12@S0106000f66bc42b9.vn.shawcable.net] has quit [] 03:44:17 -!- MichaelRaskin [n=MichaelR@195.91.224.225] has quit [Remote closed the connection] 03:45:16 peter_12 [n=peter_12@S0106000f66bc42b9.vn.shawcable.net] has joined #scheme 03:45:47 "jcowan: Which json?" system json the one that is installed. Just like which modules are installed in mzscheme/collects 03:46:50 synx: "but just author/package:major should be sufficient for most applications and packages" Do you mean it works or you would like that it works? 03:46:59 what if two people make a system json, peter_12? 03:47:18 synx: two people cannot make a system json 03:47:27 the system admin does that 03:47:44 What if you want to use two json libraries? 03:48:05 -!- dmoerner [n=dmr@89-151.res.pomona.edu] has quit ["Leaving"] 03:48:07 Or what if you have two projects that both use a different "logging" package? 03:48:21 logging1 and logging2? arbitrary and vague. 03:50:15 synx: This fixes problems. I understand why it works the way it does. However, it also creates equally bad or worse problems. 03:50:16 What if someone makes a smtp server, but leaves it stagnant, and someone else wants to do it better? 03:50:28 So... that's why you have author/package and not just package. 03:50:45 and :major is convenient because then you don't have to make a whole different package every time you change the interface. 03:50:47 peter_12, what's the problem you're trying to solve by writing (require json) rather than (require ...planet mumble json fnord...)? 03:51:58 I thought perhaps you wanted to distribute some code that would be independent of the remote database called PLaneT all the way across the intertubes, but I suppose that's not the case. 03:51:59 Riastradh: It is a good question. I don't think I have a solid reason except that it makes me worry. 03:52:06 Worry about what...? 03:52:28 I'm so worried about...I'm so worried about...the baggage retrieval system they've got at Heathrow...! 03:52:31 That package management becomes part of my application 03:53:07 that seems like a dangerous convolution 03:53:26 If module A uses C v0.1 and B loads C v0.2 and module C of any version can only be loaded once then that screws up everything 03:53:51 Who says only one version can be loaded at once? They're different modules. 03:54:05 But in any case, there are two separate issues here. 03:54:09 zbigniew: hey. I just tried scrmable.scm from your site. It fails with `Error: unbound variable: start.' Is it a known bug? (I've never used csi thouroughly, and just need to check that the package I'm using is properly working) 03:54:13 Riastradh: that is true for many modules (functional ones especially) but some modules wouldn't work that way. 03:54:18 module C v0.1 and module C v0.2 can both be loaded simultaneously... in theory at least. That might lead to trickiness if global side effects in module though. 03:54:20 One is that PLaneT serves as a naming authority. The other is that PLaneT is a component of a (very simple) distributed system. 03:54:23 dmoerner [n=dmr@89-151.res.pomona.edu] has joined #scheme 03:54:46 Like if you're using two database modules that both open a database file twice... 03:55:00 synx: Sure. System things like that. 03:55:08 I sure hope that I don't run into systems that work like that, synx. 03:55:24 luckily modules with side effects like that are vanishingly rare and would be ridiculous to upload on planet. 03:55:46 I think the point for me is that the PLaneT system is complex and doesn't solve all the problems so I'd rather take simple 03:56:19 synx: I don't think they would be ridiculous at all. 03:56:24 peter_12, I believe you can always take a PLaneT archive, extract it, and bundle it with your own source code. 03:56:34 -!- QinGW1 [n=wangqing@203.86.89.226] has quit [Success] 03:56:39 Riastradh: I think I will be doing that. 03:57:03 Provided, of course, that the archive from PLaneT be available under a free software licence compatible with that under which you intend to release your own source code. 03:57:06 Here's a problem peter_12. component A uses module v0.1, component B uses module v0.2, but you can only specify (require module) in your source code, using "planet-install module-v0.2" on the command line to install a package. 03:57:10 I know CPAN has its problems but I like how that works better in general and I am no Perl fan. 03:57:31 So you can never use component A and B together, since you can't specify which version of the module each component is designed to use. 03:57:49 How does CPAN work differently, peter_12, that enables it not to exhibit problems that you're concerned about? 03:58:20 if you install module v0.1, component B breaks. If you install module v0.2, component A breaks. 03:58:46 Riastradh: No. CPAN has different problems. It is up to the system admin to make sure the installed/available system modules can work together. That seems like the right location for the burden. 03:59:10 Or if you're using apt, component A blocks component B from being installed, thus leaving you hanging on the new version of various software, because one stupid developer won't update to use the new libraries. 03:59:16 Requiring the involvement of a system administrator makes it very hard to ensure that software works the same on two different systems. 03:59:20 But CPAN is very simple and PLaneT is much more complex (allowing for multiple simultaneous versions installed) 03:59:44 Riastradh: that would be a strike against Debian and that system is very well integrated 04:00:12 No, peter_12. It is not up to the system administrator to ensure that the dependencies of this or that Debian package are available. The Debian package system does that for the system administrator 04:00:16 If you say (require json) you have no idea what code you just required. No idea what version it is, what interface, who wrote it, nothing. 04:00:16 . 04:00:57 Riastradh: The important part is the Debian community/package management/system admins handle all of that. An application programmer does not. 04:00:57 If you said (require (planet dherman/json:1)) you know exactly what code you just required. Who wrote it, what interface. Add a :2 and you know what version. You know what it's going to do. 04:01:05 However, sensible packagers make sure that different versions of libraries are in different places in the file system. 04:01:13 Alas, not all packagers are sensible. 04:02:26 synx when you do (require scheme/ffi) do you worry about which version you get? 04:02:58 peter_12, if you are an application programmer, I certainly hope that you are aware of what libraries your application depends on, and what versions work, &c. PLaneT formalizes a naming authority for these libraries. The Debian package system does, too, I believe, and if you wanted to write a Debian package for your application, you would name the libraries that it depends on just like with PLaneT. 04:03:05 synx: You get the scheme/ffi that works with the current version of mzscheme you are using. 04:03:13 peter_12: Those are under greater scrutiny. Anyway, yes that does sometimes cause problems. 04:03:44 The Debian package system *can*. But nobody compels people to submit different versions as different packages, and indeed this is often not done. 04:03:54 When chicken 3 went to chicken 4, it lost all database support. To this day they haven't managed to adjust their FFI to enable the use of any databases. 04:04:09 Not the FFI. 04:04:16 Nobody's done the donkey work of porting them, that's all. 04:04:25 synx: so stay with chicken 3 until chicken 4 is ready for your use 04:05:18 right, so I'm stuck that way. If I had specified a version for the FFI though, I could use the old database modules until the new ones were updated. 04:05:28 and still use chicken 4 04:06:07 The issue's not in the FFI. 04:06:16 Compatibility is hard. 04:06:16 synx: Chicken 4 supports postgresql, gdbm and tokyocabinet. 04:06:25 (Cue Barbie.) 04:06:36 PLT's FFI is quite stable, so it hasn't had any of that sort of crisis in my memory at least. But (require scheme/ffi) in PLT does carry the danger that if the FFI changes, a lot of things will be instantly broken until they get updated. 04:06:37 What more do you want? 04:06:54 foof: er, sorry? I didn't think they had postgresql ported yet. 04:06:59 wtf is tokyocabinet 04:07:20 It's where Godzilla stores his address book and account balances. 04:07:31 tokyocabinet is a much superior alternative to gdbm 04:07:51 no SQLite? 04:07:53 so that means gdbm doesn't really count, huh 04:08:10 ... 04:08:16 HUH 04:08:40 gdbm counts if you have an application that uses gdbm... 04:08:43 Unless you're already using gdbm... 04:09:29 Oh I remember. I was making a scheme MUD in chicken since they started using module support. But it didn't support sqlite, so I ended up sticking with PLT. 04:09:40 Riastradh: "Compatibility is hard. (Cue Barbie.)" It is true that compatibility is hard. That is pretty well known to be a big problem and unsolved in a definitive way. 04:10:12 kilimanjaro [n=kilimanj@70.116.95.163] has joined #scheme 04:11:26 Suppose dherman changes something so you need a new initialization variable in his json module. Without module versioning, every program that uses json now breaks. 04:11:42 synx: It's a pretty far stretch from "not having ported sqlite yet" to "lost all database support." 04:11:51 With module versioning, every program that uses his json package remains fully functional, and if it's a trivial change, they can quickly and piece-wise upgrade. 04:12:20 foof: Yeah, if it's got postgresql I won't say lost all database support. I really don't count GDBM as a database though. 04:12:20 The FFI didn't change. What changed was macros and modules, so the macros have to be ported and the modules have to be added. 04:13:26 synx: I get the idea of versions but I'm not sold. It isn't a complete solution as I mentioned. 04:13:38 synx: And if you ask nicely, I'm sure someone will port sqlite3. 04:13:47 A complete solution? 04:13:49 hello 04:14:16 You really want to individually version each element of the export list. 04:14:50 You also need to formalize the behaviour of every part of the API, and copy that formalism in every client to make sure that it matches, by invoking a theorem prover every time you load everything up. 04:16:28 Or... You could distribute the source code to the json library, and all its dependencies, with your own source code. 04:17:11 Or... distribute a mzscheme system that has a particular version of mzscheme and a compatible set of libraries 04:17:53 Or... build a different package management client that works more like cpan does but downloads from PLaneT 04:17:59 foof: hehe, well... I'm more familiar with PLT anyway... 04:18:17 synx: Nevermind, sqlite3 is already ported. 04:18:22 ISTR that there are at least two competing sqlite eggs in progress. 04:18:23 ... 04:18:27 man am I out of the loop 04:18:39 you walk away for a week, and what happens! 04:19:11 jcowan: say nothing of the improvement I've been trying to make on the one sqlite egg that is barely functional 04:19:27 synx: You must have looked at the list of supported eggs only within the first week of Chicken 4's existence. 04:19:49 ...oh I'm sorry 04:19:54 I'm totally confused. 04:20:13 I've been trying to make improvements on a sqlite package in PLaneT. 04:21:00 -!- peter_12 [n=peter_12@S0106000f66bc42b9.vn.shawcable.net] has quit [] 04:21:29 Like how every time a call to sqlite3_step fails, sqlite3_reset must be called or it could leave the database locked and you manually have to delete the journal file. The package doesn't do that though. 04:22:10 also transactions don't nest, so that needed fixing too... 04:24:53 was trying to use sqlite3_progress to allow for scheme to run while sqlite is doing a query, but didn't work out too well... 04:34:09 http://www.pastebin.ca/1556765 04:34:17 i don't understand the problem, can anyone clarify? 04:34:39 the "2nth" is really "2^n"th power 04:35:04 and "x x + 1" is: "x |-> + x 1" 04:35:11 err, not "x + 1" 04:35:28 so, that square example 04:35:38 (define square (lambda (x) (* x x))) 04:36:03 (square (square (square (square x)))) 04:36:15 that would be the same as: f(f(f(x)))) 04:36:41 eventually, you see x^8 04:36:57 but that's as far as it goes for me 04:37:01 QinGW1 [n=wangqing@203.86.89.226] has joined #scheme 04:37:05 i don't get it after that 04:39:42 *jcowan* sees that R7RS is now replaying much of the CLtL3 discussions 04:43:05 -!- QinGW [n=wangqing@203.86.89.226] has quit [Read error: 145 (Connection timed out)] 04:43:38 QinGW [n=wangqing@203.86.89.226] has joined #scheme 04:50:32 Piratero: They want you to take (repeated square 4) and produce (square (repeated square 3)) 04:51:28 which in turn are replaying much of the R6RS discussions. 04:52:05 It's almost as if R7RS were some sort of "revision" of R6RS 04:53:18 They want you to take (revised (RNRS 6)) and produce (revised (revised (RNRS 5))). 04:55:40 -!- jonrafkind [n=jon@98.202.86.149] has quit [Read error: 60 (Operation timed out)] 04:57:27 -!- ASau [n=user@83.69.240.52] has quit ["off"] 04:59:55 big Scheme is a revision of R6RS, small Scheme is a revision of R5RS (but informed by R6RS, of course) 05:00:17 -!- QinGW1 [n=wangqing@203.86.89.226] has quit [Connection timed out] 05:03:49 Isn't revising exactly what they are supposed to do? 05:05:45 -!- rcy [n=rcy@S010600179a26267b.wk.shawcable.net] has quit [Read error: 110 (Connection timed out)] 05:06:18 Well, yes. 05:07:18 *jcowan* personally hopes the damn report will *not* be called The Revised Revised Revised Revised Revised Revised Revised Report on the Algorithmic Language Scheme. 05:07:36 reports 05:07:52 At least with R8RS they can change to Spider Scheme :p 05:08:30 Primo Levi tells of reading a kid's essay that began "Insects (insette) are so called because they have seven (sette) legs." 05:08:44 lol 05:08:55 When he pointed out that they in fact have only six, the kid retorted "The difference between six and seven is small." 05:09:45 ... and so are insects. QED 05:10:59 *jcowan* giggles. 05:11:42 The real culprit is the Latin->Italian sound change that caused Latin ct and st to collide as tt. 05:12:39 QinGW1 [n=wangqing@203.86.89.226] has joined #scheme 05:13:41 -!- eno__ is now known as eno 05:15:40 -!- ski [n=slj@c-9011e055.1149-1-64736c10.cust.bredbandsbolaget.se] has quit [Read error: 104 (Connection reset by peer)] 05:16:45 synx: so, in "((repeated square 2) 5)", would be: (square (square (square (square (repeated square 0))))) 05:16:48 what about the 5? 05:16:57 would that be whatever x is in the square procedure? 05:17:24 ski [n=slj@c-9011e055.1149-1-64736c10.cust.bredbandsbolaget.se] has joined #scheme 05:17:47 Piratero: ((repeated square 2) 5) would become (square (square 5)) 05:19:07 ah 05:19:13 so, 5*5 05:19:15 okay 05:21:17 oops, 5*5*5*5 05:22:39 lisptastic [n=user@adsl-234-145-87.bgk.bellsouth.net] has joined #scheme 05:23:07 thank you, that cleared things up a bit! 05:23:45 -!- jcowan [n=jcowan@cpe-74-68-154-139.nyc.res.rr.com] has quit ["Leaving"] 05:24:09 Are there any animals apart from starfish with an odd number of legs? 05:24:34 a dog with an amputated leg :) 05:24:36 3 05:24:40 :) 05:24:44 tessier [n=treed@mail.copilotco.com] has joined #scheme 05:25:00 okay, so if (define (square x) (* x x)) 05:25:11 is really: (define square (lambda (x) (* x x))) 05:25:30 is: (define (square x) (lambda (x) (* x x ))) really... 05:26:00 (define square (lambda (x) ((lambda (x) (* x x)))))? 05:26:11 i messed up with the parenthesis, but you guys get the idea 05:26:37 if you mess up the parenthesis, we dont! 05:27:14 choas [n=lars@91.13.228.159] has joined #scheme 05:27:39 :`( 05:28:04 thank god for parenthesis matching 05:29:10 Oh no, an odd number of parens! 05:29:26 -!- QinGW [n=wangqing@203.86.89.226] has quit [Connection timed out] 05:32:26 -!- zeroish [n=zeroish@135.207.174.50] has quit [Remote closed the connection] 05:32:59 -!- zeroish` [n=zeroish@135.207.174.50] has quit [Remote closed the connection] 05:52:48 -!- dmoerner [n=dmr@89-151.res.pomona.edu] has quit ["Leaving"] 05:57:14 -!- GeoffSK [n=chatzill@c210-49-251-180.kelvn1.qld.optusnet.com.au] has quit ["ChatZilla 0.9.85 [Firefox 3.0.13/2009080315]"] 06:10:25 -!- underspecified [n=eric@walnut.naist.jp] has quit [] 06:11:21 mmc [n=mima@cs137104.pp.htv.fi] has joined #scheme 06:11:43 underspecified [n=eric@isa7-dhcp-116-220.naist.jp] has joined #scheme 06:16:35 -!- elderK [n=zk@222-152-97-44.jetstream.xtra.co.nz] has quit [] 06:25:48 Adrinael_ [i=adrinael@rib4.kyla.fi] has joined #scheme 06:27:56 decker [n=chatzill@user-0c9h6n8.cable.mindspring.com] has joined #scheme 06:30:11 asdf 06:30:28 hi. so I'm a bit confused about conditionals at this point. One of the exercises in the scip book has you define a new if procedures like so: 06:30:31 decker pasted "new if" at http://paste.lisp.org/display/86694 06:30:40 ski_ [n=md9slj@remote1.student.chalmers.se] has joined #scheme 06:30:51 oops, procedure I meant. singular. 06:31:52 anyhow, great. try and use that new-if procedure with the square root program and you get an infinite recursion error 06:32:17 what's confusing me though, someone on the sicp wiki threw up this example: 06:33:48 -!- Adrinael [n=adrinael@barrel.rolli.org] has quit [Read error: 110 (Connection timed out)] 06:34:23 decker pasted "untitled" at http://paste.lisp.org/display/86695 06:34:50 which also has I p I came up with that I thought would maybe do the trick, but doesn't seem to... 06:35:29 ASau [n=user@host54-231-msk.microtest.ru] has joined #scheme 06:36:15 my p by itself does give an infinite recursion error, where as the (define (p) (p)) procedure doesnt. 06:37:32 anyhow I'm really confused here. I mean, it seems like conditionals go with applicative order evaluation, as the square root program doesn't work. but then it seems like normal order evaluation when you go with the example on the wiki 06:39:46 ha, does any of that make sense to anyone? 06:44:02 decker: what's the example on the wiki? 06:44:20 decker: you mean paste.lisp? 06:46:28 well yeah, I pasted the example from the wiki 06:46:50 last part of this page though if you want to take a look: http://sicp.org.ua/sicp/Exercise1-6 06:46:59 mit scheme by the way 06:48:02 decker: (define (p) (p)) is tail recursive 06:48:37 your other expression is not. Static analysis realized that, and thus the compiler/interpreter says "no". 06:48:38 -!- Adrinael_ is now known as Adrinael 06:50:18 ok, I still don't get why my p doesn't seem to break the new-if procedure though 06:51:32 decker: you know that Scheme is eager, don't you? 06:52:04 ha, not really. 06:52:08 your new-if will execute test, if-clause, and else-clause 06:52:17 ALL of them 06:53:23 -!- Quadrescence [n=quad@unaffiliated/quadrescence] has quit [Broken pipe] 06:53:28 When you call a function, all arguments are evaluated. 06:53:38 Quadrescence [n=quad@unaffiliated/quadrescence] has joined #scheme 06:53:45 so it gives up on mine? I guess one thing my p doesn't do which the sqr-iter procedure does is call new-if again. 06:54:04 Axioplase: but with the example on the wiki, he's dealing with COND; which is implemented in syntax 06:55:14 klutometis: The pase 86695 makes no sense. 06:55:55 he defines a looping 0-ary p, calls it, and then defines a 1-ary p and says he used it (where?) 06:55:59 Axioplase: yeah, it's a bit irritating decker didn't paste a self-contained example 06:56:09 decker: paste a self-contained example 06:56:16 ok 06:58:33 decker pasted "my attempt" at http://paste.lisp.org/display/86696 06:58:42 there it is 06:59:54 klutometis annotated #86696 "i figured you meant something like this" at http://paste.lisp.org/display/86696#1 07:00:38 decker: does that get at the source of your confusion, or not? 07:01:35 maybe. one sec. 07:02:27 Quadre_ [n=quad@24.118.241.200] has joined #scheme 07:04:52 yeah, sorry. I'm an idiot. I didn't notice at first that the example on the wiki isn't even using the new-if procedure. gah. sorry. 07:08:35 -!- Quadrescence [n=quad@unaffiliated/quadrescence] has quit [Nick collision from services.] 07:08:57 -!- mmc [n=mima@cs137104.pp.htv.fi] has quit [Read error: 110 (Connection timed out)] 07:09:34 -!- Quadre_ is now known as Quadrescence 07:16:05 I guess my question now though, if and cond by themselves don't go with applicative order evaluation then? They try the predicates first before evaluating any expressions? 07:16:51 I guess that would make sense. they'd have to if you had something like (if (foo) (set! ...) (set! ...)) 07:17:01 decker: apparently since they're not procedures, but syntax abstractions (i.e. macros), applicative order doesn't apply; so to speak 07:17:38 you can simulate the same thing using delay and force; but i think that comes later in sicp 07:17:41 hotblack23 [n=jh@p5B056888.dip.t-dialin.net] has joined #scheme 07:17:48 I suppose this is all explained in chapter four... 07:18:20 yeah, but sicp never really goes into macros 07:18:57 which are what if and cond are? 07:19:07 although it does bring up so-called "special forms" in the metacirc. eval. 07:19:09 yeah 07:20:34 right. moving on. 07:20:41 thanks for the help by the way 07:20:51 np 07:21:15 err, cond is a macro, but if is a special form 07:22:20 You can't (as far as I know, for as much of a sleepy guy I am today) simulate IF with anything (beside COND and such things) 07:23:28 -!- hotblack23 [n=jh@p5B056888.dip.t-dialin.net] has quit ["Leaving."] 07:25:51 decker: here's an example of simulating normal order with delay and force: 07:25:54 incubot: (letrec ((lazy-if (lambda (predicate delayed-then delayed-else) (if predicate (force delayed-then) (force delayed-else)))) (p (lambda () (p)))) (lazy-if #t (delay 0) (delay (p)))) 07:25:54 0 07:26:17 using procedures; a little ugly 07:26:49 MichaelRaskin [n=MichaelR@213.171.48.239] has joined #scheme 07:27:39 letrec being? 07:28:03 decker: it's a let-form which allows variable to refer to themselves (i needed it for the recursive p) 07:28:12 have you had let yet, btw? 07:28:32 yeah, I've seen let, just not letrec. 07:28:47 it's a little esoteric; could have used a couple of defines instead 07:31:04 by the way, any recommendations on where to go after sicp? So far "Essentials of Programming Languages" and "Practical Common Lisp" are on my agenda 07:31:21 decker: what about PAIP? 07:31:37 stop reading, start hacking code 07:31:43 "How To Design Programs" seems way too basic. 07:31:51 decker: http://norvig.com/paip.html 07:32:18 hacking is your best friend ;) 07:32:49 rmrfchik: yeah well, I dunno. I mean, I try that now and again but just seem to get lost. like trying to figure out why wine isn't working or whatever. I'm probably just biting off more than I can chew i guess... 07:32:51 paip serves up a side of lisp with ai, even if the ai isn't modern 07:33:09 but I just end up with a big mess of printfs everywhere and never seem to get anywhere 07:33:16 incubot: (define (lazy-if predicate delayed-then delayed-else) (if predicate (force delayed-then) (force delayed-else))) (define (p) (p)) (lazy-if #t (delay 0) (delay (p))) 07:33:17 0 07:33:27 without letrec 07:33:32 klutometis: haha, already in my bookmarks 07:33:41 rmrfchik: good call, actually 07:33:45 too bad it's not online though... 07:33:52 decker: yeah 07:33:55 decker: books don't teach you to think 07:34:15 try to get through sicp without getting distracted, then see where your fancy takes you 07:34:30 rmrfchik: but you can use them as tools to cut your teeth 07:34:41 otherwise we'd constantly be reinventing the wheel, poorly 07:35:27 klutometis: if one invented the wheel during learning lang it's very good. 07:35:37 it's a good sign of smart brain ;) 07:36:23 sure you should use standard wheel from rnrs; but you HAVE to understand the gears under the hood 07:37:42 rmrfchik: but you'd have to invent lambda calculus first; and that's a lifetime of work 07:39:25 c'mon, there is some basis. sure you need to hook on some principles. lambda, application, reduction 07:40:05 aye, but that's the rub; why not take sicp as your basis: too abstract? 07:40:33 I started to hacking in scheme in REAL world project just with "FP is awesome" stanza in my head. 07:41:50 klutometis: i looked through the sicp. it's good, but seems like it start from very beginning. 07:41:58 did you discover streams and amb independently? 07:42:13 i'm not sure i would have mastered streams and amb, left to my own devices 07:43:07 my favorite book was "A. Field, P. Harrison: Functional Programming" 07:43:58 QinGW [n=wangqing@203.86.89.226] has joined #scheme 07:44:01 klutometis: no. more over I'm far away from "i know fucking everything". I just want to say -- the best way to know lang is to write code 07:44:35 you can read a lot of books but unable to write a piece of helloworld.scm 07:44:56 mmc [n=mima@esprx01x.nokia.com] has joined #scheme 07:45:03 well isn't that what the sicp exercises and whatnot are for? 07:46:57 man, I better get to sleep I guess. nite. 07:47:05 exercises are good. but what is real good -- write real world application 07:47:13 good nite ;) 07:47:16 -!- foof [n=user@dn157-046.naist.jp] has quit ["ERC Version 5.2 (IRC client for Emacs)"] 07:52:13 QinGW2 [n=wangqing@203.86.89.226] has joined #scheme 08:00:23 -!- QinGW1 [n=wangqing@203.86.89.226] has quit [Connection timed out] 08:01:47 macr0 [n=vista@71.21.122.103] has joined #scheme 08:02:15 -!- Adamant [n=Adamant@unaffiliated/adamant] has quit [] 08:03:50 -!- rdd [n=rdd@c83-250-145-223.bredband.comhem.se] has quit [Remote closed the connection] 08:04:20 rudybot: eval "hello world" 08:04:21 synx: ; Value: "hello world" 08:04:29 'k now wat 08:06:13 -!- QinGW [n=wangqing@203.86.89.226] has quit [Connection timed out] 08:06:37 derdon [n=derdon@p4FC8D73B.dip.t-dialin.net] has joined #scheme 08:08:22 -!- mreggen [n=mreggen@cm-84.215.28.167.getinternet.no] has quit [Read error: 104 (Connection reset by peer)] 08:10:20 foof [n=user@dn157-046.naist.jp] has joined #scheme 08:13:16 -!- macr0 [n=vista@71.21.122.103] has quit ["Leaving."] 08:17:24 -!- Piratero [n=user@c-24-7-64-72.hsd1.ca.comcast.net] has quit [Read error: 54 (Connection reset by peer)] 08:18:18 Piratero [n=user@c-24-7-64-72.hsd1.ca.comcast.net] has joined #scheme 08:19:17 Nshag [i=user@Mix-Orleans-106-1-49.w193-248.abo.wanadoo.fr] has joined #scheme 08:19:50 -!- underspecified [n=eric@isa7-dhcp-116-220.naist.jp] has quit [] 08:21:08 underspecified [n=eric@walnut.naist.jp] has joined #scheme 08:31:58 -!- bombshelter13_ [n=bombshel@76-10-149-209.dsl.teksavvy.com] has quit [Client Quit] 08:36:53 uman [n=uman@unaffiliated/uman] has joined #scheme 08:36:56 -!- uman [n=uman@unaffiliated/uman] has left #scheme 08:42:49 -!- MichaelRaskin [n=MichaelR@213.171.48.239] has quit [Remote closed the connection] 08:43:13 MichaelRaskin [n=MichaelR@213.171.48.239] has joined #scheme 08:46:20 -!- kilimanjaro [n=kilimanj@70.116.95.163] has quit ["Leaving"] 08:49:08 QinGW [n=wangqing@203.86.89.226] has joined #scheme 08:54:24 -!- merus [n=merus@c-67-175-45-120.hsd1.in.comcast.net] has quit [Remote closed the connection] 08:55:30 QinGW1 [n=wangqing@203.86.89.226] has joined #scheme 08:59:33 -!- decker [n=chatzill@user-0c9h6n8.cable.mindspring.com] has quit [Read error: 110 (Connection timed out)] 08:59:56 -!- QinGW [n=wangqing@203.86.89.226] has quit [Read error: 60 (Operation timed out)] 09:00:22 QinGW [n=wangqing@203.86.89.226] has joined #scheme 09:06:05 -!- QinGW2 [n=wangqing@203.86.89.226] has quit [Connection timed out] 09:15:14 -!- derdon [n=derdon@p4FC8D73B.dip.t-dialin.net] has quit [] 09:15:29 masm [n=masm@bl11-78-235.dsl.telepac.pt] has joined #scheme 09:16:32 -!- QinGW1 [n=wangqing@203.86.89.226] has quit [Connection timed out] 09:19:14 mreggen [n=mreggen@cm-84.215.28.167.getinternet.no] has joined #scheme 09:29:21 alaricsp [n=alaricsp@relief.warhead.org.uk] has joined #scheme 09:47:30 -!- MichaelRaskin [n=MichaelR@213.171.48.239] has quit [Remote closed the connection] 09:48:32 MichaelRaskin [n=MichaelR@213.171.48.239] has joined #scheme 09:51:47 -!- underspecified [n=eric@walnut.naist.jp] has quit [] 09:52:17 underspecified [n=eric@163.221.116.148] has joined #scheme 10:00:26 -!- underspecified [n=eric@163.221.116.148] has quit [Remote closed the connection] 10:07:46 HG` [n=HG@xdslgg237.osnanet.de] has joined #scheme 10:13:40 -!- HG` [n=HG@xdslgg237.osnanet.de] has quit [Client Quit] 10:29:13 weinholt [i=weinholt@debian/emeritus/weinholt] has joined #scheme 10:39:21 Edico [n=Edico@unaffiliated/edico] has joined #scheme 10:39:43 -!- QinGW [n=wangqing@203.86.89.226] has quit [Read error: 104 (Connection reset by peer)] 10:49:00 Adamant [n=Adamant@unaffiliated/adamant] has joined #scheme 10:55:59 -!- Adamant [n=Adamant@unaffiliated/adamant] has quit [] 11:06:37 jeapostrophe [n=jay@69.169.141.110.provo.static.broadweavenetworks.net] has joined #scheme 11:23:19 reprore [n=reprore@ntkngw598092.kngw.nt.ftth.ppp.infoweb.ne.jp] has joined #scheme 11:23:48 attila_lendvai [n=ati@catv-89-132-189-132.catv.broadband.hu] has joined #scheme 11:27:25 elderK [n=zk@222-152-97-44.jetstream.xtra.co.nz] has joined #scheme 11:47:34 Fabse [n=mightyfi@wikipedia/Track-n-Field] has joined #scheme 11:50:47 ve [n=a@94-193-95-252.zone7.bethere.co.uk] has joined #scheme 11:54:28 and [n=hufs4@ti0035a340-0502.bb.online.no] has joined #scheme 11:57:16 a-s [n=user@nat-240.ro.66.com] has joined #scheme 11:57:18 -!- antoszka [n=antoszka@unaffiliated/antoszka] has quit [anthony.freenode.net irc.freenode.net] 11:57:18 -!- mreggen [n=mreggen@cm-84.215.28.167.getinternet.no] has quit [anthony.freenode.net irc.freenode.net] 11:57:18 -!- ada2358 [n=ada2358@pinball.ccs.neu.edu] has quit [anthony.freenode.net irc.freenode.net] 12:00:24 -!- xwl_ [n=user@esprx01x.nokia.com] has quit [Remote closed the connection] 12:00:26 xwl_` [n=user@esprx01x.nokia.com] has joined #scheme 12:00:59 -!- Daemmerung [n=goetter@1133sae.mazama.net] has quit [anthony.freenode.net irc.freenode.net] 12:00:59 -!- peddie [n=peddie@c-67-170-201-38.hsd1.ca.comcast.net] has quit [anthony.freenode.net irc.freenode.net] 12:00:59 -!- tizoc [n=user@unaffiliated/tizoc] has quit [anthony.freenode.net irc.freenode.net] 12:00:59 -!- qebab [i=finnrobi@gaupe.stud.ntnu.no] has quit [anthony.freenode.net irc.freenode.net] 12:00:59 -!- roderic` [n=user@bubbles.ccs.neu.edu] has quit [anthony.freenode.net irc.freenode.net] 12:00:59 -!- chandler [n=n@opendarwin/developer/chandler] has quit [anthony.freenode.net irc.freenode.net] 12:00:59 -!- gnomon [n=gnomon@CPE001d60dffa5c-CM000f9f776f96.cpe.net.cable.rogers.com] has quit [anthony.freenode.net irc.freenode.net] 12:00:59 -!- dlouhy [n=jdlouhy@pinball.ccs.neu.edu] has quit [anthony.freenode.net irc.freenode.net] 12:00:59 -!- Elly [n=pyxystyx@unaffiliated/elly] has quit [anthony.freenode.net irc.freenode.net] 12:04:17 Daemmerung [n=goetter@1133sae.mazama.net] has joined #scheme 12:04:17 peddie [n=peddie@c-67-170-201-38.hsd1.ca.comcast.net] has joined #scheme 12:04:17 tizoc [n=user@unaffiliated/tizoc] has joined #scheme 12:04:17 roderic` [n=user@bubbles.ccs.neu.edu] has joined #scheme 12:04:17 dlouhy [n=jdlouhy@pinball.ccs.neu.edu] has joined #scheme 12:04:17 qebab [i=finnrobi@gaupe.stud.ntnu.no] has joined #scheme 12:04:17 chandler [n=n@opendarwin/developer/chandler] has joined #scheme 12:04:17 Elly [n=pyxystyx@unaffiliated/elly] has joined #scheme 12:04:17 gnomon [n=gnomon@CPE001d60dffa5c-CM000f9f776f96.cpe.net.cable.rogers.com] has joined #scheme 12:05:53 mreggen [n=mreggen@cm-84.215.28.167.getinternet.no] has joined #scheme 12:05:53 antoszka [n=antoszka@unaffiliated/antoszka] has joined #scheme 12:05:53 ada2358 [n=ada2358@pinball.ccs.neu.edu] has joined #scheme 12:05:56 -!- Daemmerung [n=goetter@1133sae.mazama.net] has quit [Success] 12:11:04 -!- and is now known as and` 12:14:51 blackened` [n=blackene@ip-89-102-28-224.karneval.cz] has joined #scheme 12:30:41 merus [n=merus@pal-176-050.itap.purdue.edu] has joined #scheme 12:31:58 Jafet [n=Jafet@unaffiliated/jafet] has joined #scheme 12:46:20 Vapour [n=vapour@213.239.193.124] has joined #scheme 12:51:36 hello world 12:52:51 if someone wanted to get started with scheme in the shortest possible time, where would you suggest him/her to begin? 12:56:03 http://www.ccs.neu.edu/home/dorai/t-y-scheme/t-y-scheme.html 12:56:30 And http://www.htdp.org/ 12:58:33 ah, ok. thx 13:02:49 -!- merus [n=merus@pal-176-050.itap.purdue.edu] has quit ["Leaving"] 13:06:09 Vapour: and possibly TSLP 13:06:12 *TSLP 13:06:40 thich seems to be more complete then t-y-scheme and certainly the most up-to-date text currently 13:07:45 13:07:47 The Speculative Logic Project 13:07:49 ? 13:07:51 attila_lendvai_ [n=ati@apn-89-223-157-77.vodafone.hu] has joined #scheme 13:08:36 thymic stromal lymphopoietin? 13:08:56 Leonidas: what is TSLP? ^^ 13:09:11 The Scheme Programming Language book. 13:09:35 -!- attila_lendvai [n=ati@catv-89-132-189-132.catv.broadband.hu] has quit [Read error: 110 (Connection timed out)] 13:09:40 Vapour: Do you know about Google? 13:09:50 derdon [n=derdon@p4FC8DD7A.dip.t-dialin.net] has joined #scheme 13:09:53 The Scheme Language Programming? 13:09:55 O! 13:10:00 Sorry. 13:10:01 :) 13:10:07 You are right. 13:10:11 TSPL. 13:11:47 oh no, I just wanted to show off that "thymic stromal lymphopoietin" is part of my active vocabulary :( 13:12:17 nifty! 13:13:05 Vapour: it's very depends on background 13:13:25 the one who know the haskell/ml or the one who knows basic/perl/c++? 13:13:38 -!- jeapostrophe [n=jay@69.169.141.110.provo.static.broadweavenetworks.net] has quit [] 13:14:48 I've only done something basic-like before, and a bit of c++ and vim skripting 13:15:34 -nothing- similar to scheme 13:15:41 so, "lambda" and "first class object" are scary for you? then htdp is the right choice 13:16:40 43 chapters are scary too ;) 13:17:11 so, try to write plugin for gimp using script-fu 13:17:47 fp is rather different from c++ 13:19:51 rmrfchik: i don't know whether gimp plugins teach functional style that much. 13:20:10 probably all existing plugins are very much imperative... 13:21:26 Leonidas: you gets to use syntax 13:22:03 I have a mission already - I'm using a program which itself uses scheme as its macro language 13:22:28 it has its own functions etc, but what I need to understand is the syntax etc 13:22:35 the idea of scheme 13:22:35 Vapour: may I ask what program that is? 13:22:41 yeah 13:22:46 wozit? 13:22:53 TracePro 13:23:16 an optical raytracer 13:23:48 lambda research ;) 13:24:21 yes, that's the distributor 13:24:34 do you know TracePro? 13:24:57 -!- attila_lendvai_ is now known as attila_lendvai 13:25:09 no, just googled it 13:26:16 I wonder, what scheme impl they are using 13:26:22 what are you guys using scheme for? 13:27:11 fun! 13:27:34 we have commercial product (mail archiver and monitor) 13:27:39 and for FUN! 13:27:50 fun, pah! ;) 13:28:01 ((lambda (x) (x x)) (lambda (x) (x x))) 13:28:08 blow the mind 13:28:23 ah, missed 1st ( 13:28:51 hehe, yes I see what you mean by "fun" ;P 13:30:08 fun is to write fun-ctions and apply fun-ctions to other fun-ctions to get fun-ctions 13:34:29 luz [n=davids@189.122.90.116] has joined #scheme 13:37:16 Vapour: yep, I'm also using scheme for fun. 13:37:47 python's my cashcow, but the rest of the time, I fiddle with stuff. The more useless, the better :) 13:40:28 Well, that's Scheme. Completely useless. 13:40:53 sphex [n=nobody@modemcable239.185-56-74.mc.videotron.ca] has joined #scheme 13:42:14 -!- rouslan [n=Rouslan@unaffiliated/rouslan] has quit [Read error: 110 (Connection timed out)] 13:42:50 Leonidas: did your experience with Scheme make you python skills better? 13:42:58 really? is there no useful application? 13:43:35 Vapour: of course there is. I'm just too fascinated about doing crap. 13:43:53 Vapour: the most useful thing I have built yet is a program that counts my working hours 13:44:29 derdon: if you ask me, yes it did. Since that I started doing much more with itertools, functools etc. 13:44:40 MrFahrenheit [n=RageOfTh@users-120-154.vinet.ba] has joined #scheme 13:44:59 attila_lendvai_ [n=ati@apn-89-223-214-229.vodafone.hu] has joined #scheme 13:45:20 Leonidas: so I have another reason to learn Scheme :) 13:46:07 derdon: but then, I'm a member of the fp fraction in the forum, which goes over the top in the opinion of most pythoneers :) 13:46:59 *derdon* wants to go over the top, too 13:47:06 attila_lendvai__ [n=ati@apn-89-223-142-71.vodafone.hu] has joined #scheme 13:47:33 derdon: welchome aboard! :D 13:47:42 *welcome, even 13:48:28 but school and driver's license have a higher priority :( 13:50:10 Leonidas: did you read SICP? or yan you suggest any other scheme book for my bookmarks? 13:52:47 sphex__ [n=nobody@modemcable239.185-56-74.mc.videotron.ca] has joined #scheme 13:52:51 -!- attila_lendvai [n=ati@apn-89-223-157-77.vodafone.hu] has quit [Read error: 110 (Connection timed out)] 13:53:41 -!- sphex_ [n=nobody@modemcable239.185-56-74.mc.videotron.ca] has quit [Read error: 110 (Connection timed out)] 13:55:02 Leonidas: oh, I've just found your talk about scheme so you can forget my question ;) 13:55:19 my favorite book was "A. Field, P. Harrison: Functional Programming". but it's for FP in general 13:56:17 Leonidas: how does your program count your working hours? 13:57:14 -!- MichaelRaskin [n=MichaelR@213.171.48.239] has quit [Remote closed the connection] 13:57:38 MichaelRaskin [n=MichaelR@213.171.48.239] has joined #scheme 13:57:47 sphex_ [n=nobody@modemcable239.185-56-74.mc.videotron.ca] has joined #scheme 14:00:00 -!- attila_lendvai__ is now known as attila_lendvai 14:02:06 argh, ok a stupid question, but I kind of need the answer: I want to define a loop that goes through 3 values a = [0 2 2.5] 14:02:34 and I understand scheme loops no more than scheme lists... 14:04:22 rouslan [n=Rouslan@71.161.75.11] has joined #scheme 14:05:57 -!- jao [n=jao@214.Red-88-6-174.staticIP.rima-tde.net] has quit [Read error: 60 (Operation timed out)] 14:06:44 those values have to be computed or you have a fixed list of values? 14:06:54 and why you need a loop? 14:07:12 (map (lambda (elt) (display elt) (newline)) '(0 2 2.5)) 14:07:18 here is you loop 14:08:30 they are fixed values, and used as input arguments for the simulation 14:08:54 Vapour: what do you wanna do with these numbers? 14:09:21 -!- sphex [n=nobody@modemcable239.185-56-74.mc.videotron.ca] has quit [Read error: 110 (Connection timed out)] 14:09:36 -!- attila_lendvai_ [n=ati@apn-89-223-214-229.vodafone.hu] has quit [Read error: 110 (Connection timed out)] 14:10:18 I have a simulation setup where I want to change one parameter from 0 to 2 to 2.5 and run an analysis for each configuration 14:10:54 -!- sphex__ [n=nobody@modemcable239.185-56-74.mc.videotron.ca] has quit [Read error: 110 (Connection timed out)] 14:11:57 the way I'd do it in an imperative script is for a = [0 2 2.5] SETPARAMETER a; ANALYSE; end 14:13:38 (map ANALYZE '(0 2 2.5)) 14:13:57 where ANALYZE is the function which takes 1 argument -- parameter a 14:14:33 (define (analyze a) (begin (wow) (do) (smth) (with a))) 14:14:37 for two parameters there should be reduce, I think 14:15:05 (but I'm not sure, I know reduce only from python) 14:15:31 derdon: no, reduce accumulates stuff 14:16:01 ejs [n=eugen@46-64-135-95.pool.ukrtel.net] has joined #scheme 14:16:15 derdon: actually, it also accumulates in python; it is not a map() with two params :) 14:16:35 in scheme that function is called fold(r/l) 14:16:46 oh, right 14:17:41 Leonidas: in your talk/presentation it is said, that live-coding is possible with scheme. does that mean there exist interactive interpreters for scheme? 14:18:45 derdon: yep, interpreters (or how lispers call them: REPL) are a core part of the Lisp-world. 14:19:07 cool 14:19:29 these days, everyone has a repl, even haskell. 14:20:05 rmrfchik: the part ((wow) (do) .. ) is a series of parallel instructions? 14:24:04 hm, "series" and "parallel" are opposites, no? *wonder* I mean: are they just a list of parallel instructions? 14:24:56 -!- ASau [n=user@host54-231-msk.microtest.ru] has quit ["off"] 14:29:11 haskell REPLs are often missing most of the E 14:36:49 -!- mmc [n=mima@esprx01x.nokia.com] has quit [Remote closed the connection] 14:42:49 lisptast` [n=user@adsl-147-25-236.bgk.bellsouth.net] has joined #scheme 14:46:07 davazp [n=user@56.Red-79-153-148.dynamicIP.rima-tde.net] has joined #scheme 14:50:30 Phaze [n=PhazeDK@93.163.43.22] has joined #scheme 14:51:08 right, I call it a day.. thanks everyone for your help :) 14:51:13 -!- Vapour [n=vapour@213.239.193.124] has left #scheme 14:55:54 -!- sladegen [n=nemo@unaffiliated/sladegen] has quit [Nick collision from services.] 14:56:03 sladegen [n=nemo@unaffiliated/sladegen] has joined #scheme 14:57:07 -!- derdon [n=derdon@p4FC8DD7A.dip.t-dialin.net] has quit [] 14:57:45 -!- lisptastic [n=user@adsl-234-145-87.bgk.bellsouth.net] has quit [No route to host] 15:02:54 -!- MichaelRaskin [n=MichaelR@213.171.48.239] has quit [Remote closed the connection] 15:03:21 MichaelRaskin [n=MichaelR@213.171.48.239] has joined #scheme 15:04:56 derdon [n=derdon@p4FC8DFB1.dip.t-dialin.net] has joined #scheme 15:07:55 -!- luz [n=davids@189.122.90.116] has quit [Read error: 110 (Connection timed out)] 15:12:39 -!- attila_lendvai [n=ati@apn-89-223-142-71.vodafone.hu] has quit [Read error: 104 (Connection reset by peer)] 15:20:09 -!- elderK [n=zk@222-152-97-44.jetstream.xtra.co.nz] has quit [] 15:23:36 -!- derdon [n=derdon@p4FC8DFB1.dip.t-dialin.net] has quit [] 15:26:36 decker [n=chatzill@user-0c9h6n8.cable.mindspring.com] has joined #scheme 15:27:42 -!- and` [n=hufs4@ti0035a340-0502.bb.online.no] has quit [Remote closed the connection] 15:28:43 luz [n=davids@189.122.90.116] has joined #scheme 15:30:05 elderK [n=zk@222-152-97-44.jetstream.xtra.co.nz] has joined #scheme 15:33:00 -!- ve [n=a@94-193-95-252.zone7.bethere.co.uk] has quit [Connection timed out] 15:38:30 attila_lendvai [n=ati@catv-89-132-189-132.catv.broadband.hu] has joined #scheme 16:00:03 -!- copumpkin is now known as sunglassedcopump 16:02:39 rtra [n=rtra@unaffiliated/rtra] has joined #scheme 16:04:57 ASau [n=user@83.69.240.52] has joined #scheme 16:09:09 -!- Fabse [n=mightyfi@wikipedia/Track-n-Field] has quit [] 16:09:29 -!- sunglassedcopump is now known as copumpkin 16:12:08 Jafet: better than REPLs for OCaml, which reduce to about '() ;) 16:12:34 r5rs force 16:12:34 http://www.schemers.org/Documents/Standards/R5RS/HTML/r5rs-Z-H-9.html#%_idx_562 16:12:36 -rudybot:#scheme- http://tinyurl.com/5wr3sf 16:12:37 -!- ASau [n=user@83.69.240.52] has quit [Remote closed the connection] 16:12:44 ASau [n=user@83.69.240.52] has joined #scheme 16:14:08 The R5RS states that "It may be the case that there is no means by which a promise can be operationally distinguished from its forced value", and that "Some implementations may implement ``implicit forcing,'' where the value of a promise is forced by primitive procedures like cdr and +". Are there any implementations extant which implement these semantics? 16:18:18 -!- elderK [n=zk@222-152-97-44.jetstream.xtra.co.nz] has quit [] 16:20:01 (The R6RS removed this language, but I'm not sure if their intention was to disallow these semantics.) 16:20:46 mmc [n=mima@cs137104.pp.htv.fi] has joined #scheme 16:22:06 -!- ski_ [n=md9slj@remote1.student.chalmers.se] has quit ["Lost terminal"] 16:23:14 I'm not aware of Scheme systems that implicitly force promises, but there were Scheme systems that implicitly touched futures. 16:23:18 Are promises required to be unevaluated until they are forced? 16:23:29 If they are not, it does not seem to make any difference 16:24:29 Riastradh: Which systems? 16:24:51 BBN Butterfly Scheme / old versions of MIT Scheme, and Mul-T. 16:25:23 Jafet: Promises are definitionally unevaluated until they are forced, but the statements I just quoted grant an implementation wide latitude on what may cause a promise to be forced. 16:26:27 saccade [n=saccade@65-78-24-131.c3-0.smr-ubr1.sbo-smr.ma.cable.rcn.com] has joined #scheme 16:27:08 Riastradh: I don't have any documentation for Mul-T. Would you happen to have anything? 16:27:11 peter_12 [n=peter_12@S0106001310475d12.vn.shawcable.net] has joined #scheme 16:29:47 How shall I transmit a megabyte's worth of PDF to you? 16:30:09 -!- peter_12 [n=peter_12@S0106001310475d12.vn.shawcable.net] has quit [Client Quit] 16:30:23 You could put it somewhere which is accessible via HTTP, or send it to me in an email, if your outbound SMTP relay won't choke on a file of that size. I don't have a preference. 16:30:52 (I'm not sure whether this document is readily available on the web, but it has this notice on it: `Permission to copy without fee all or part of this material is granted provided that the copies are not made or distributed for direct commercial advantage, the ACM copyright notice and the title of the publication and its date appear, and notice is given that copying is by permission of the ACM.') 16:31:16 Is this "Mul-T: A high-performance parallel lisp"? 16:31:21 peter_12 [n=peter_12@S0106001310475d12.vn.shawcable.net] has joined #scheme 16:31:26 Yes. 16:31:32 By Kranz, Halstead, and Mohr. 16:32:08 ACM has locked it in their garden, but that wording indicates that sharing the document is allowed. 16:32:28 I can't find a copy on the web myself. 16:32:31 It's at . 16:32:39 jonrafkind [n=jon@98.202.86.149] has joined #scheme 16:32:56 Thank you. 16:33:23 In an OOP MVC-world a "controller" has multiple "actions" each of which is a method. In the functional world there are just functions. Is it more appropriate to call one of these functions a "controller" or an "action". I'm thinking "controller" is probably the traditional choice. 16:33:30 However, I think that implicit touching was basically a failed experiment. It doesn't really confer useful benefits. 16:33:56 ...and there's a lot of cost to touching everything that the compiler can't rule out is a non-future. 16:35:45 The Mul-T paper has this to say about it: `As Section 4 shows, implicit touches are expensive on stock hardware, but inserting explicit touches will be tedious and error-prone for programs that use futures heavily.' The use of the future tense here (if you'll permit me to sidestep a pun) indicates that they didn't really write many programs with explicit touches. 16:36:19 And later `...approximately 65% overhead for implicit touches in Mul-T.' 16:39:41 -!- peter_12 [n=peter_12@S0106001310475d12.vn.shawcable.net] has quit [] 16:40:05 It appears that this approach was later replaced by a work-stealing method in which a future would be touched only when a processor was free to handle it. ("Lazy Task Creation: A Technique for Increasing the Granularity of Parallel Programs", by Mohr, Kranz, and Halsted) 16:40:12 http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.48.562 16:45:12 (Why, with all of this research having already been done, would anyone propose simply adding threads to Scheme as a sensible method of adding parallelism to the language?) 16:49:08 "Leapfrogging: A Portable Technique for Implementing Efficient Futures" is also a very interesting read. 16:49:12 http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.27.688 16:50:18 -!- mreggen [n=mreggen@cm-84.215.28.167.getinternet.no] has quit [Remote closed the connection] 16:50:54 derdon [n=derdon@p4FC8DE62.dip.t-dialin.net] has joined #scheme 16:52:14 peter_12 [n=peter_12@S0106001310475d12.vn.shawcable.net] has joined #scheme 16:54:13 -!- attila_lendvai [n=ati@catv-89-132-189-132.catv.broadband.hu] has quit ["..."] 17:02:15 jeapostrophe [n=jay@69.169.141.110.provo.static.broadweavenetworks.net] has joined #scheme 17:02:40 OK, chandler. Go implement it! 17:03:09 The trouble is that futures are helpful really only for problems that lend themselves to divide-and-conquer. 17:03:28 They don't help you to express communicating concurrent processes. 17:03:55 Sometimes I wish people would write more retrospective papers about failures. 17:04:03 Of course, I'm sure doing that is a trifle depressing. 17:05:06 Yes, but there's not a lot of learning from experience going on that I can see. 17:07:15 karme [n=user@kallisto.karme.de] has joined #scheme 17:08:59 Are you sure that futures can't be used to usefully express communicating processes? It doesn't seem natural to me that this couldn't be implemented using future semantics. (Of course, I'll probably have to try to implement it to prove or disprove this intuition.) 17:10:34 Narrenschiff [n=ritchie@xolotl.plus.com] has joined #scheme 17:14:42 futures are the cancer that is killing python 17:14:55 ...but that's just because python has crap all for continuations. 17:15:33 I've found them quite nice in PLT. Albeit a bit... uncustomizable. 17:16:03 I guess 'thread' would count as a customizable event. 17:18:56 elderK [n=zk@222-152-97-44.jetstream.xtra.co.nz] has joined #scheme 17:20:53 -!- elderK [n=zk@222-152-97-44.jetstream.xtra.co.nz] has left #scheme 17:24:15 I'm really not sure why all that async stuff isn't done in promises. 17:24:45 if (sync) took promises instead of "events" and all the things returning events returned promises... eh, doesn't matter I guess. 17:25:39 -!- masm [n=masm@bl11-78-235.dsl.telepac.pt] has quit ["Leaving."] 17:27:17 -!- ejs [n=eugen@46-64-135-95.pool.ukrtel.net] has quit [Read error: 110 (Connection timed out)] 17:35:15 kilimanjaro [n=kilimanj@70.116.95.163] has joined #scheme 17:35:24 arcfide [n=arcfide@adsl-99-14-211-8.dsl.bltnin.sbcglobal.net] has joined #scheme 17:36:50 mbishop_ [n=martin@unaffiliated/mbishop] has joined #scheme 17:38:54 -!- rtra [n=rtra@unaffiliated/rtra] has quit ["leaving"] 17:41:11 -!- Jafet [n=Jafet@unaffiliated/jafet] has quit ["Leaving."] 17:43:44 -!- MichaelRaskin [n=MichaelR@213.171.48.239] has quit [Remote closed the connection] 17:46:51 dsmith [n=dsmith@cpe-173-88-196-177.neo.res.rr.com] has joined #scheme 17:47:25 hosh [n=hosh@c-71-199-176-82.hsd1.ga.comcast.net] has joined #scheme 17:48:06 -!- mbishop [n=martin@unaffiliated/mbishop] has quit [Read error: 110 (Connection timed out)] 17:48:15 -!- peter_12 [n=peter_12@S0106001310475d12.vn.shawcable.net] has quit [] 18:11:49 steiger__ [n=steiger@189.105.53.164] has joined #scheme 18:11:58 steiger_1 [n=steiger@189.105.53.164] has joined #scheme 18:12:26 -!- steiger [n=steiger@189.105.53.164] has quit [Read error: 60 (Operation timed out)] 18:12:42 -!- antoszka [n=antoszka@unaffiliated/antoszka] has quit ["+++ killed by SIGSEGV +++"] 18:15:47 -!- ASau [n=user@83.69.240.52] has quit [Remote closed the connection] 18:24:45 ASau [n=user@83.69.240.52] has joined #scheme 18:27:47 -!- steiger_ [n=steiger@189.105.53.164] has quit [Read error: 110 (Connection timed out)] 18:29:27 HG` [n=HG@xdslgv030.osnanet.de] has joined #scheme 18:36:34 masm [n=masm@bl11-78-235.dsl.telepac.pt] has joined #scheme 18:36:36 -!- reprore [n=reprore@ntkngw598092.kngw.nt.ftth.ppp.infoweb.ne.jp] has quit [Remote closed the connection] 18:43:44 -!- HG` [n=HG@xdslgv030.osnanet.de] has quit [Client Quit] 18:47:30 -!- davazp [n=user@56.Red-79-153-148.dynamicIP.rima-tde.net] has quit [Remote closed the connection] 19:21:52 *eli* wonders when will r6rs get to a discussion on the advantages of R2RS, and from there proceed to plain lambda calculus + a few builtin types 19:22:41 i thought r6rs was published 19:22:51 it was a draft maybe? 19:23:25 Yes, there were a bunch of people who were camping out, and scribbled some stuff on paper. Nobody takes that too seriously. 19:23:40 r4rs, on the other hand -- *that's* some great stuff. 19:23:46 ah 19:23:54 The stuff of legends 19:23:57 *makmanalp* knows nothing about the politics 19:24:23 antoszka [n=antoszka@unaffiliated/antoszka] has joined #scheme 19:24:44 eli: I'm not sure the discussion needs any more reduction to reach absurdity. 19:26:04 makmanalp: Just sit back and watch -- it's kind of like watching the titanik go down into the water with a loud "plop" -- except that in with "Scheme" it's more like a small fishing boat and a much smaller "plop", but it *does* have enough weight to go down. 19:27:09 chandler: The Lord works in mysterious ways -- and can always surprise you. (Especially with the help of some bears.) 19:27:15 How can I use foldl/foldr with a function that takes more than one argument? 19:27:29 like: 19:27:53 (define (f a b c) (and a b c)) 19:28:13 eli: will do 19:28:22 (foldl (f a b ;c should be the value of each element on list;) true list) 19:28:45 steiger__: Use Lambda The Ultimate 19:28:49 :) 19:28:54 okay ;) 19:29:27 steiger__: Give it more than one list. The accumulator function will receive one value from each list and the current accumulator. (Whether it's the first or the last depends on your library.) 19:29:43 makmanalp: Make sure you buy popcorn in bulk. 19:30:51 eli: Neither Lord nor Bear have been especially surprising - or mysterious - so far. 19:31:33 chandler: Well, they both manage to continuously surprise me. 19:31:50 Perhaps you should reset your expectations. 19:32:46 Just a reminder: bear is the guy who bragged on c.l.s that Scheme macros are bad enough that he uses CPP with his Scheme code; and he was seriously advocating that as a way to implement (what he called) a module system. 19:33:06 Adamant [n=Adamant@unaffiliated/adamant] has joined #scheme 19:33:14 He also said that if there's any use for []s in Scheme, it's for macro forms so they're not confused with function applications. 19:33:31 He also wanted a module system where you can require everything from a module except for its macros. 19:33:59 But now it turns that not only is he playing with his own implementation -- but he actually uses fexpers in it... 19:34:41 And if that wasn't enough, he's seriously suggesting first class environments as the solution that will bring us world peace. 19:34:54 *That* surprised me. 19:37:13 I think that []'s for macros is a pretty good idea (the rest, not so much) 19:37:45 *sjamaan* agrees with p1dzkl 19:37:58 *eli* sighs 19:38:03 .oO( He actually uses CPP on his Scheme source? ) 19:38:13 use*d* 19:38:19 eli: Right. He doesn't like `syntax-rules' much. He would rather that first class environments are standardized so he can avoid using `syntax-rules'. I had forgotten about the CPP thing, I have to admit. 19:38:57 If there's anything you learn about Scheme it's that S-expresions are powerful because they're *uniform* -- using []s or whatever for macros is going to break that uniformity, which will greatly reduce the utility of macros. 19:39:18 chandler, that learning experience to which you referred earlier happened fifteen years ago. 19:39:25 -!- Poeir [n=Poeir@c-98-222-133-165.hsd1.il.comcast.net] has quit [Read error: 104 (Connection reset by peer)] 19:39:40 chandler: It's all just surreal in a way that I don't care much about... 19:39:43 eli: We also have syntax for vectors, strings, characters, ... 19:40:02 sjamaan: Those are data types. Macros aren't the same thing at all. 19:40:23 sjamaan: Right, but it is all uniform -- macros work directly on the language rather than on some different language, which is what you get with macros that are restricted to []s. 19:40:45 chandler: In Scheme, code is data. Why wouldn't you be able to use macro invocation as a separate data type? 19:41:31 Riastradh: I'm not sure how the length of time ago that the original research was done matters. 19:42:21 sjamaan: I'm a bit confused at what you want, I guess. 19:42:22 synx, here's how you can go from a promise to an event: (define (promise-event promise) (guard-evt (lambda () (let ((channel (make-channel))) (thread (lambda () (channel-put channel (force promise)))) channel] 19:42:37 -!- derdon [n=derdon@p4FC8DE62.dip.t-dialin.net] has left #scheme 19:43:39 chandler: symbols represent variables, lists represent function application and something else (vectors perhaps?) represent macro application 19:43:56 I'm not sure this is necessarily a good idea, but I'm just saying you could do it like that 19:45:43 chandler, what matters is that the folks who were doing it concluded that it wasn't a very good way to solve important problems -- in fact, it's not much different from what you called threads, together with a thread-join operation. 19:45:50 RageOfThou [n=RageOfTh@users-42-192.vinet.ba] has joined #scheme 19:46:44 It might have been useful if anyone figured out a way to do effective automatic parallelization, but nobody did, and the conclusion is that effective automatic parallelization is nigh impossible. 19:51:39 -!- karme [n=user@kallisto.karme.de] has quit [anthony.freenode.net irc.freenode.net] 19:51:39 -!- decker [n=chatzill@user-0c9h6n8.cable.mindspring.com] has quit [anthony.freenode.net irc.freenode.net] 19:51:39 -!- tessier [n=treed@mail.copilotco.com] has quit [anthony.freenode.net irc.freenode.net] 19:51:39 -!- rudybot [n=luser@q-static-138-125.avvanta.com] has quit [anthony.freenode.net irc.freenode.net] 19:51:39 -!- joast [n=rick@76.178.178.72] has quit [anthony.freenode.net irc.freenode.net] 19:51:39 -!- clog [n=nef@bespin.org] has quit [anthony.freenode.net irc.freenode.net] 19:51:39 -!- Adamant [n=Adamant@unaffiliated/adamant] has quit [anthony.freenode.net irc.freenode.net] 19:51:39 -!- steiger_1 [n=steiger@189.105.53.164] has quit [anthony.freenode.net irc.freenode.net] 19:51:39 -!- dsmith [n=dsmith@cpe-173-88-196-177.neo.res.rr.com] has quit [anthony.freenode.net irc.freenode.net] 19:51:39 -!- sladegen [n=nemo@unaffiliated/sladegen] has quit [anthony.freenode.net irc.freenode.net] 19:51:39 -!- blackened` [n=blackene@ip-89-102-28-224.karneval.cz] has quit [anthony.freenode.net irc.freenode.net] 19:51:39 -!- alaricsp [n=alaricsp@relief.warhead.org.uk] has quit [anthony.freenode.net irc.freenode.net] 19:51:39 -!- Piratero [n=user@c-24-7-64-72.hsd1.ca.comcast.net] has quit [anthony.freenode.net irc.freenode.net] 19:51:39 -!- Quadrescence [n=quad@unaffiliated/quadrescence] has quit [anthony.freenode.net irc.freenode.net] 19:51:39 -!- ski [n=slj@c-9011e055.1149-1-64736c10.cust.bredbandsbolaget.se] has quit [anthony.freenode.net irc.freenode.net] 19:51:39 -!- tjafk2 [n=timj@e176199186.adsl.alicedsl.de] has quit [anthony.freenode.net irc.freenode.net] 19:51:39 -!- offby1 [n=user@pdpc/supporter/monthlybyte/offby1] has quit [anthony.freenode.net irc.freenode.net] 19:51:41 -!- r0bby [n=wakawaka@guifications/user/r0bby] has quit [anthony.freenode.net irc.freenode.net] 19:51:41 -!- thesnowdog [i=thesnowd@122.110.62.22] has quit [anthony.freenode.net irc.freenode.net] 19:51:41 -!- dfeuer [n=dfeuer@wikimedia/Dfeuer] has quit [anthony.freenode.net irc.freenode.net] 19:51:41 -!- etoxam [n=||||||||@84.79.67.254] has quit [anthony.freenode.net irc.freenode.net] 19:51:41 -!- eli [n=eli@winooski.ccs.neu.edu] has quit [anthony.freenode.net irc.freenode.net] 19:51:41 -!- nothingHappens [n=nothingh@173-25-176-111.client.mchsi.com] has quit [anthony.freenode.net irc.freenode.net] 19:51:41 -!- jyujin [n=mdeining@vs166245.vserver.de] has quit [anthony.freenode.net irc.freenode.net] 19:51:41 -!- acieroid [n=acieroid@ks23738.kimsufi.com] has quit [anthony.freenode.net irc.freenode.net] 19:51:41 -!- Leonidas [n=Leonidas@unaffiliated/leonidas] has quit [anthony.freenode.net irc.freenode.net] 19:51:41 -!- Riastradh [n=rias@pool-141-154-207-110.bos.east.verizon.net] has quit [anthony.freenode.net irc.freenode.net] 19:51:41 -!- araujo [n=araujo@gentoo/developer/araujo] has quit [anthony.freenode.net irc.freenode.net] 19:51:41 -!- Axioplase [n=Axioplas@fortigate.kb.ecei.tohoku.ac.jp] has quit [anthony.freenode.net irc.freenode.net] 19:51:41 -!- antoszka [n=antoszka@unaffiliated/antoszka] has quit [anthony.freenode.net irc.freenode.net] 19:51:41 -!- ada2358 [n=ada2358@pinball.ccs.neu.edu] has quit [anthony.freenode.net irc.freenode.net] 19:51:41 -!- RageOfThou [n=RageOfTh@users-42-192.vinet.ba] has quit [anthony.freenode.net irc.freenode.net] 19:51:41 -!- saccade [n=saccade@65-78-24-131.c3-0.smr-ubr1.sbo-smr.ma.cable.rcn.com] has quit [anthony.freenode.net irc.freenode.net] 19:51:41 -!- xwl_` [n=user@esprx01x.nokia.com] has quit [anthony.freenode.net irc.freenode.net] 19:51:41 -!- Nshag [i=user@Mix-Orleans-106-1-49.w193-248.abo.wanadoo.fr] has quit [anthony.freenode.net irc.freenode.net] 19:51:41 -!- elf [i=elf@antenora.aculei.net] has quit [anthony.freenode.net irc.freenode.net] 19:51:41 -!- certainty [n=david@alpha.d-coded.de] has quit [anthony.freenode.net irc.freenode.net] 19:51:41 -!- lde [n=nnnnnuse@184-dzi-2.acn.waw.pl] has quit [anthony.freenode.net irc.freenode.net] 19:51:41 -!- brx [i=brx@erxz.com] has quit [anthony.freenode.net irc.freenode.net] 19:51:41 -!- Khisanth [n=Khisanth@pool-141-157-244-45.ny325.east.verizon.net] has quit [anthony.freenode.net irc.freenode.net] 19:51:44 -!- weinholt [i=weinholt@debian/emeritus/weinholt] has quit [anthony.freenode.net irc.freenode.net] 19:51:44 -!- ray [i=ray@drong.notacat.org] has quit [anthony.freenode.net irc.freenode.net] 19:51:44 -!- hosh [n=hosh@c-71-199-176-82.hsd1.ga.comcast.net] has quit [anthony.freenode.net irc.freenode.net] 19:51:44 -!- MrFahrenheit [n=RageOfTh@users-120-154.vinet.ba] has quit [anthony.freenode.net irc.freenode.net] 19:51:44 -!- Edico [n=Edico@unaffiliated/edico] has quit [anthony.freenode.net irc.freenode.net] 19:51:44 -!- Pepe_ [n=ppjet@78.113.44.92] has quit [anthony.freenode.net irc.freenode.net] 19:51:44 -!- TimMc [n=timmc@pinball.ccs.neu.edu] has quit [anthony.freenode.net irc.freenode.net] 19:51:44 -!- Arelius [n=indy@64.174.9.113] has quit [anthony.freenode.net irc.freenode.net] 19:51:44 -!- minion [n=minion@common-lisp.net] has quit [anthony.freenode.net irc.freenode.net] 19:51:44 -!- ecraven [n=nex@140.78.42.103] has quit [anthony.freenode.net irc.freenode.net] 19:51:44 -!- ASau [n=user@83.69.240.52] has quit [anthony.freenode.net irc.freenode.net] 19:51:44 -!- lisptast` [n=user@adsl-147-25-236.bgk.bellsouth.net] has quit [anthony.freenode.net irc.freenode.net] 19:51:44 -!- tltstc [n=tltstc@cpe-76-168-78-251.socal.res.rr.com] has quit [anthony.freenode.net irc.freenode.net] 19:51:44 -!- pbusser2 [n=peter@82.174.238.138] has quit [anthony.freenode.net irc.freenode.net] 19:51:44 -!- danking [n=danking@pinball.ccs.neu.edu] has quit [anthony.freenode.net irc.freenode.net] 19:51:44 -!- shawnps [n=shawn930@pinball.ccs.neu.edu] has quit [anthony.freenode.net irc.freenode.net] 19:51:44 -!- makmanalp [n=legato@80.76.201.55] has quit [anthony.freenode.net irc.freenode.net] 19:51:46 -!- m811 [n=user@84-50-207-42-dsl.est.estpak.ee] has quit [anthony.freenode.net irc.freenode.net] 19:51:46 -!- Phaze [n=PhazeDK@93.163.43.22] has quit [anthony.freenode.net irc.freenode.net] 19:51:46 -!- rouslan [n=Rouslan@unaffiliated/rouslan] has quit [anthony.freenode.net irc.freenode.net] 19:51:46 -!- choas [n=lars@91.13.228.159] has quit [anthony.freenode.net irc.freenode.net] 19:51:46 -!- Kusanagi [n=Lernaean@unaffiliated/kusanagi] has quit [anthony.freenode.net irc.freenode.net] 19:51:46 -!- XTL [i=t6haha00@rhea.oamk.fi] has quit [anthony.freenode.net irc.freenode.net] 19:51:46 -!- sstrickl [n=sstrickl@pool-151-199-62-61.bos.east.verizon.net] has quit [anthony.freenode.net irc.freenode.net] 19:51:46 -!- nasloc__ [i=tim@163.16.211.21] has quit [anthony.freenode.net irc.freenode.net] 19:51:46 -!- michaelw [i=michaelw@88.198.49.16] has quit [anthony.freenode.net irc.freenode.net] 19:51:46 -!- zbigniew [n=zb@69.12.216.46] has quit [anthony.freenode.net irc.freenode.net] 19:51:46 -!- tarbo_ [n=me@unaffiliated/tarbo] has quit [anthony.freenode.net irc.freenode.net] 19:51:46 -!- a-s [n=user@nat-240.ro.66.com] has quit [anthony.freenode.net irc.freenode.net] 19:51:46 -!- foof [n=user@dn157-046.naist.jp] has quit [anthony.freenode.net irc.freenode.net] 19:51:46 -!- eno [n=eno@nslu2-linux/eno] has quit [anthony.freenode.net irc.freenode.net] 19:51:46 -!- csmerlin [n=smileymy@99-31-211-124.lightspeed.sntcca.sbcglobal.net] has quit [anthony.freenode.net irc.freenode.net] 19:51:46 -!- Sveklo2 [n=sveklo@a88-115-8-123.elisa-laajakaista.fi] has quit [anthony.freenode.net irc.freenode.net] 19:51:46 -!- lisppaste [n=lisppast@common-lisp.net] has quit [anthony.freenode.net irc.freenode.net] 19:51:46 -!- ineiros [n=itniemin@james.ics.hut.fi] has quit [anthony.freenode.net irc.freenode.net] 19:51:46 -!- linas [n=linas@gnucash.org] has quit [anthony.freenode.net irc.freenode.net] 19:51:48 -!- rotty [n=rotty@nncmain.nicenamecrew.com] has quit [anthony.freenode.net irc.freenode.net] 19:51:48 -!- p1dzkl [i=p1dzkl@208.92.234.202] has quit [anthony.freenode.net irc.freenode.net] 19:51:48 -!- pfo_ [n=pfo@chello084114049188.14.vie.surfer.at] has quit [anthony.freenode.net irc.freenode.net] 19:51:48 -!- yosafbridge [n=yosafbri@ludios.net] has quit [anthony.freenode.net irc.freenode.net] 19:51:49 -!- jeapostrophe [n=jay@69.169.141.110.provo.static.broadweavenetworks.net] has quit [anthony.freenode.net irc.freenode.net] 19:51:49 -!- sphex_ [n=nobody@modemcable239.185-56-74.mc.videotron.ca] has quit [anthony.freenode.net irc.freenode.net] 19:51:49 -!- sad0ur [n=sad0ur@psi.cz] has quit [anthony.freenode.net irc.freenode.net] 19:51:49 -!- kazzmir [n=kazzmir@98.202.86.149] has quit [anthony.freenode.net irc.freenode.net] 19:51:49 -!- specbot [n=specbot@common-lisp.net] has quit [anthony.freenode.net irc.freenode.net] 19:51:49 -!- poucet [n=poucet@li23-146.members.linode.com] has quit [anthony.freenode.net irc.freenode.net] 19:51:49 -!- Fade [i=fade@outrider.deepsky.com] has quit [anthony.freenode.net irc.freenode.net] 19:51:49 -!- kilimanjaro [n=kilimanj@70.116.95.163] has quit [anthony.freenode.net irc.freenode.net] 19:51:49 -!- qebab [i=finnrobi@gaupe.stud.ntnu.no] has quit [anthony.freenode.net irc.freenode.net] 19:51:49 -!- roderic` [n=user@bubbles.ccs.neu.edu] has quit [anthony.freenode.net irc.freenode.net] 19:51:49 -!- chandler [n=n@opendarwin/developer/chandler] has quit [anthony.freenode.net irc.freenode.net] 19:51:51 -!- gnomon [n=gnomon@CPE001d60dffa5c-CM000f9f776f96.cpe.net.cable.rogers.com] has quit [anthony.freenode.net irc.freenode.net] 19:51:51 -!- Elly [n=pyxystyx@unaffiliated/elly] has quit [anthony.freenode.net irc.freenode.net] 19:51:51 -!- dlouhy [n=jdlouhy@pinball.ccs.neu.edu] has quit [anthony.freenode.net irc.freenode.net] 19:51:51 -!- peddie [n=peddie@c-67-170-201-38.hsd1.ca.comcast.net] has quit [anthony.freenode.net irc.freenode.net] 19:51:51 -!- tizoc [n=user@unaffiliated/tizoc] has quit [anthony.freenode.net irc.freenode.net] 19:51:51 -!- felipe [n=felipe@my.nada.kth.se] has quit [anthony.freenode.net irc.freenode.net] 19:51:51 -!- steiger__ [n=steiger@189.105.53.164] has quit [anthony.freenode.net irc.freenode.net] 19:51:51 -!- jonrafkind [n=jon@98.202.86.149] has quit [anthony.freenode.net irc.freenode.net] 19:51:51 -!- luz [n=davids@189.122.90.116] has quit [anthony.freenode.net irc.freenode.net] 19:51:51 -!- Adrinael [i=adrinael@rib4.kyla.fi] has quit [anthony.freenode.net irc.freenode.net] 19:51:51 -!- incubot [i=incubot@klutometis.wikitex.org] has quit [anthony.freenode.net irc.freenode.net] 19:51:51 -!- mornfall [n=mornfall@kde/developer/mornfall] has quit [anthony.freenode.net irc.freenode.net] 19:51:51 -!- synx [i=synx@gateway/gpg-tor/key-0xA71B0C6A] has quit [anthony.freenode.net irc.freenode.net] 19:51:51 -!- hiyuh [n=hiyuh@KD124214245222.ppp-bb.dion.ne.jp] has quit [anthony.freenode.net irc.freenode.net] 19:51:51 -!- arcfide [n=arcfide@adsl-99-14-211-8.dsl.bltnin.sbcglobal.net] has quit [anthony.freenode.net irc.freenode.net] 19:51:51 -!- copumpkin [n=pumpkin@c-24-63-67-154.hsd1.nh.comcast.net] has quit [anthony.freenode.net irc.freenode.net] 19:51:51 -!- REPLeffect [n=REPLeffe@69.54.115.254] has quit [anthony.freenode.net irc.freenode.net] 19:51:51 -!- Narrenschiff [n=ritchie@xolotl.plus.com] has quit [anthony.freenode.net irc.freenode.net] 19:51:51 -!- mmc [n=mima@cs137104.pp.htv.fi] has quit [anthony.freenode.net irc.freenode.net] 19:51:51 -!- kniu [n=kniu@ELMUNDO.RES.CMU.EDU] has quit [anthony.freenode.net irc.freenode.net] 19:51:52 -!- ponzao___ [n=vesam@xdsl-83-150-86-25.nebulazone.fi] has quit [anthony.freenode.net irc.freenode.net] 19:51:52 -!- leppie [n=lolcow@196.210.200.229] has quit [anthony.freenode.net irc.freenode.net] 19:51:52 -!- rntz [n=rntz@pool-96-235-185-65.cmdnnj.fios.verizon.net] has quit [anthony.freenode.net irc.freenode.net] 19:51:52 -!- elmex [i=elmex@ist.m8geil.de] has quit [anthony.freenode.net irc.freenode.net] 19:51:52 -!- mapreduce [n=ricky@varenka.cime.net] has quit [anthony.freenode.net irc.freenode.net] 19:51:52 -!- tonyg [n=tonyg@host226.lshift.net] has quit [anthony.freenode.net irc.freenode.net] 19:51:52 -!- poe [n=poe@unaffiliated/poe] has quit [anthony.freenode.net irc.freenode.net] 19:51:52 -!- heat [n=dima@8.21.172.227] has quit [anthony.freenode.net irc.freenode.net] 19:51:52 -!- csoy [n=csoy@174-143-208-224.static.cloud-ips.com] has quit [anthony.freenode.net irc.freenode.net] 19:51:52 -!- cky [n=cky@cpe-024-211-255-249.nc.res.rr.com] has quit [anthony.freenode.net irc.freenode.net] 19:55:53 ada2358 [n=ada2358@pinball.ccs.neu.edu] has joined #scheme 19:55:53 xwl_` [n=user@esprx01x.nokia.com] has joined #scheme 19:55:53 Nshag [i=user@Mix-Orleans-106-1-49.w193-248.abo.wanadoo.fr] has joined #scheme 19:55:53 elf [i=elf@antenora.aculei.net] has joined #scheme 19:55:53 Khisanth [n=Khisanth@pool-141-157-244-45.ny325.east.verizon.net] has joined #scheme 19:55:53 certainty [n=david@alpha.d-coded.de] has joined #scheme 19:55:53 brx [i=brx@erxz.com] has joined #scheme 19:55:53 lde [n=nnnnnuse@184-dzi-2.acn.waw.pl] has joined #scheme 19:55:53 saccade [n=saccade@65-78-24-131.c3-0.smr-ubr1.sbo-smr.ma.cable.rcn.com] has joined #scheme 19:55:53 antoszka [n=antoszka@unaffiliated/antoszka] has joined #scheme 19:55:53 RageOfThou [n=RageOfTh@users-42-192.vinet.ba] has joined #scheme 19:55:53 Arelius [n=indy@64.174.9.113] has joined #scheme 19:55:53 minion [n=minion@common-lisp.net] has joined #scheme 19:55:53 TimMc [n=timmc@pinball.ccs.neu.edu] has joined #scheme 19:55:53 ecraven [n=nex@140.78.42.103] has joined #scheme 19:55:53 ray [i=ray@drong.notacat.org] has joined #scheme 19:55:53 Pepe_ [n=ppjet@78.113.44.92] has joined #scheme 19:55:53 weinholt [i=weinholt@debian/emeritus/weinholt] has joined #scheme 19:55:53 Edico [n=Edico@unaffiliated/edico] has joined #scheme 19:55:53 hosh [n=hosh@c-71-199-176-82.hsd1.ga.comcast.net] has joined #scheme 19:55:53 steiger__ [n=steiger@189.105.53.164] has joined #scheme 19:55:53 arcfide [n=arcfide@adsl-99-14-211-8.dsl.bltnin.sbcglobal.net] has joined #scheme 19:55:53 kilimanjaro [n=kilimanj@70.116.95.163] has joined #scheme 19:55:53 Narrenschiff [n=ritchie@xolotl.plus.com] has joined #scheme 19:55:53 jeapostrophe [n=jay@69.169.141.110.provo.static.broadweavenetworks.net] has joined #scheme 19:55:53 jonrafkind [n=jon@98.202.86.149] has joined #scheme 19:55:53 mmc [n=mima@cs137104.pp.htv.fi] has joined #scheme 19:55:53 luz [n=davids@189.122.90.116] has joined #scheme 19:55:53 Phaze [n=PhazeDK@93.163.43.22] has joined #scheme 19:55:53 rouslan [n=Rouslan@unaffiliated/rouslan] has joined #scheme 19:55:53 sphex_ [n=nobody@modemcable239.185-56-74.mc.videotron.ca] has joined #scheme 19:55:53 gnomon [n=gnomon@CPE001d60dffa5c-CM000f9f776f96.cpe.net.cable.rogers.com] has joined #scheme 19:55:53 Elly [n=pyxystyx@unaffiliated/elly] has joined #scheme 19:55:53 chandler [n=n@opendarwin/developer/chandler] has joined #scheme 19:55:53 qebab [i=finnrobi@gaupe.stud.ntnu.no] has joined #scheme 19:55:53 dlouhy [n=jdlouhy@pinball.ccs.neu.edu] has joined #scheme 19:55:53 roderic` [n=user@bubbles.ccs.neu.edu] has joined #scheme 19:55:53 tizoc [n=user@unaffiliated/tizoc] has joined #scheme 19:55:53 peddie [n=peddie@c-67-170-201-38.hsd1.ca.comcast.net] has joined #scheme 19:55:53 a-s [n=user@nat-240.ro.66.com] has joined #scheme 19:55:53 foof [n=user@dn157-046.naist.jp] has joined #scheme 19:55:53 Adrinael [i=adrinael@rib4.kyla.fi] has joined #scheme 19:55:53 choas [n=lars@91.13.228.159] has joined #scheme 19:55:53 pfo_ [n=pfo@chello084114049188.14.vie.surfer.at] has joined #scheme 19:55:53 eno [n=eno@nslu2-linux/eno] has joined #scheme 19:55:53 sad0ur [n=sad0ur@psi.cz] has joined #scheme 19:55:53 kniu [n=kniu@ELMUNDO.RES.CMU.EDU] has joined #scheme 19:55:53 csmerlin [n=smileymy@99-31-211-124.lightspeed.sntcca.sbcglobal.net] has joined #scheme 19:55:53 hiyuh [n=hiyuh@KD124214245222.ppp-bb.dion.ne.jp] has joined #scheme 19:55:53 synx [i=synx@gateway/gpg-tor/key-0xA71B0C6A] has joined #scheme 19:55:53 copumpkin [n=pumpkin@c-24-63-67-154.hsd1.nh.comcast.net] has joined #scheme 19:55:53 yosafbridge [n=yosafbri@ludios.net] has joined #scheme 19:55:53 Kusanagi [n=Lernaean@unaffiliated/kusanagi] has joined #scheme 19:55:53 XTL [i=t6haha00@rhea.oamk.fi] has joined #scheme 19:55:53 sstrickl [n=sstrickl@pool-151-199-62-61.bos.east.verizon.net] has joined #scheme 19:55:53 ponzao___ [n=vesam@xdsl-83-150-86-25.nebulazone.fi] has joined #scheme 19:55:53 leppie [n=lolcow@196.210.200.229] has joined #scheme 19:55:53 nasloc__ [i=tim@163.16.211.21] has joined #scheme 19:55:53 rntz [n=rntz@pool-96-235-185-65.cmdnnj.fios.verizon.net] has joined #scheme 19:55:53 Sveklo2 [n=sveklo@a88-115-8-123.elisa-laajakaista.fi] has joined #scheme 19:55:53 lisppaste [n=lisppast@common-lisp.net] has joined #scheme 19:55:53 tarbo_ [n=me@unaffiliated/tarbo] has joined #scheme 19:55:53 zbigniew [n=zb@69.12.216.46] has joined #scheme 19:55:53 michaelw [i=michaelw@88.198.49.16] has joined #scheme 19:55:53 rotty [n=rotty@nncmain.nicenamecrew.com] has joined #scheme 19:55:53 p1dzkl [i=p1dzkl@208.92.234.202] has joined #scheme 19:55:53 linas [n=linas@gnucash.org] has joined #scheme 19:55:53 ineiros [n=itniemin@james.ics.hut.fi] has joined #scheme 19:55:53 kazzmir [n=kazzmir@98.202.86.149] has joined #scheme 19:55:53 poucet [n=poucet@li23-146.members.linode.com] has joined #scheme 19:55:53 specbot [n=specbot@common-lisp.net] has joined #scheme 19:55:53 Fade [i=fade@outrider.deepsky.com] has joined #scheme 19:55:53 mornfall [n=mornfall@kde/developer/mornfall] has joined #scheme 19:55:53 incubot [i=incubot@klutometis.wikitex.org] has joined #scheme 19:55:53 felipe [n=felipe@my.nada.kth.se] has joined #scheme 19:55:53 elmex [i=elmex@ist.m8geil.de] has joined #scheme 19:55:53 mapreduce [n=ricky@varenka.cime.net] has joined #scheme 19:55:53 poe [n=poe@unaffiliated/poe] has joined #scheme 19:55:53 tonyg [n=tonyg@host226.lshift.net] has joined #scheme 19:55:53 cky [n=cky@cpe-024-211-255-249.nc.res.rr.com] has joined #scheme 19:55:53 csoy [n=csoy@174-143-208-224.static.cloud-ips.com] has joined #scheme 19:55:53 heat [n=dima@8.21.172.227] has joined #scheme 19:55:53 REPLeffect [n=REPLeffe@69.54.115.254] has joined #scheme 19:56:20 ASau [n=user@83.69.240.52] has joined #scheme 19:56:20 lisptast` [n=user@adsl-147-25-236.bgk.bellsouth.net] has joined #scheme 19:56:20 tltstc [n=tltstc@cpe-76-168-78-251.socal.res.rr.com] has joined #scheme 19:56:20 makmanalp [n=legato@80.76.201.55] has joined #scheme 19:56:20 m811 [n=user@84-50-207-42-dsl.est.estpak.ee] has joined #scheme 19:56:20 danking [n=danking@pinball.ccs.neu.edu] has joined #scheme 19:56:20 shawnps [n=shawn930@pinball.ccs.neu.edu] has joined #scheme 19:56:20 pbusser2 [n=peter@82.174.238.138] has joined #scheme 19:56:21 Poeir [n=Poeir@c-98-222-133-165.hsd1.il.comcast.net] has joined #scheme 19:56:28 Adamant [n=Adamant@unaffiliated/adamant] has joined #scheme 19:56:28 steiger_1 [n=steiger@189.105.53.164] has joined #scheme 19:56:28 dsmith [n=dsmith@cpe-173-88-196-177.neo.res.rr.com] has joined #scheme 19:56:28 sladegen [n=nemo@unaffiliated/sladegen] has joined #scheme 19:56:28 blackened` [n=blackene@ip-89-102-28-224.karneval.cz] has joined #scheme 19:56:28 alaricsp [n=alaricsp@relief.warhead.org.uk] has joined #scheme 19:56:28 Piratero [n=user@c-24-7-64-72.hsd1.ca.comcast.net] has joined #scheme 19:56:28 Quadrescence [n=quad@unaffiliated/quadrescence] has joined #scheme 19:56:28 ski [n=slj@c-9011e055.1149-1-64736c10.cust.bredbandsbolaget.se] has joined #scheme 19:56:28 tjafk2 [n=timj@e176199186.adsl.alicedsl.de] has joined #scheme 19:56:28 offby1 [n=user@pdpc/supporter/monthlybyte/offby1] has joined #scheme 19:56:28 r0bby [n=wakawaka@guifications/user/r0bby] has joined #scheme 19:56:28 thesnowdog [i=thesnowd@122.110.62.22] has joined #scheme 19:56:28 Axioplase [n=Axioplas@fortigate.kb.ecei.tohoku.ac.jp] has joined #scheme 19:56:28 Riastradh [n=rias@pool-141-154-207-110.bos.east.verizon.net] has joined #scheme 19:56:28 dfeuer [n=dfeuer@wikimedia/Dfeuer] has joined #scheme 19:56:28 nothingHappens [n=nothingh@173-25-176-111.client.mchsi.com] has joined #scheme 19:56:28 araujo [n=araujo@gentoo/developer/araujo] has joined #scheme 19:56:28 Leonidas [n=Leonidas@unaffiliated/leonidas] has joined #scheme 19:56:28 eli [n=eli@winooski.ccs.neu.edu] has joined #scheme 19:56:28 acieroid [n=acieroid@ks23738.kimsufi.com] has joined #scheme 19:56:28 etoxam [n=||||||||@84.79.67.254] has joined #scheme 19:56:28 jyujin [n=mdeining@vs166245.vserver.de] has joined #scheme 19:57:02 chandler, by the way, would you like the lazy task creation paper, too? 19:58:28 npe [n=npe@94-224-251-223.access.telenet.be] has joined #scheme 20:01:03 macr0 [n=vista@71.21.122.103] has joined #scheme 20:01:12 karme [n=user@kallisto.karme.de] has joined #scheme 20:01:12 decker [n=chatzill@user-0c9h6n8.cable.mindspring.com] has joined #scheme 20:01:12 tessier [n=treed@mail.copilotco.com] has joined #scheme 20:01:12 rudybot [n=luser@q-static-138-125.avvanta.com] has joined #scheme 20:01:12 clog [n=nef@bespin.org] has joined #scheme 20:01:12 joast [n=rick@76.178.178.72] has joined #scheme 20:02:33 -!- r0bby [n=wakawaka@guifications/user/r0bby] has quit [Read error: 104 (Connection reset by peer)] 20:02:56 Riastradh: I was able to find that one. 20:03:25 -!- macr0 [n=vista@71.21.122.103] has left #scheme 20:03:33 -!- synx [i=synx@gateway/gpg-tor/key-0xA71B0C6A] has quit [anthony.freenode.net irc.freenode.net] 20:03:33 -!- hiyuh [n=hiyuh@KD124214245222.ppp-bb.dion.ne.jp] has quit [anthony.freenode.net irc.freenode.net] 20:04:53 lolcow [n=lolcow@196.210.200.229] has joined #scheme 20:05:22 hiyuh [n=hiyuh@KD124214245222.ppp-bb.dion.ne.jp] has joined #scheme 20:05:22 synx [i=synx@gateway/gpg-tor/key-0xA71B0C6A] has joined #scheme 20:05:34 -!- mmc [n=mima@cs137104.pp.htv.fi] has quit [anthony.freenode.net irc.freenode.net] 20:05:34 -!- heat [n=dima@8.21.172.227] has quit [anthony.freenode.net irc.freenode.net] 20:05:34 -!- tonyg [n=tonyg@host226.lshift.net] has quit [anthony.freenode.net irc.freenode.net] 20:05:34 -!- poe [n=poe@unaffiliated/poe] has quit [anthony.freenode.net irc.freenode.net] 20:05:34 -!- ponzao___ [n=vesam@xdsl-83-150-86-25.nebulazone.fi] has quit [anthony.freenode.net irc.freenode.net] 20:05:34 -!- kniu [n=kniu@ELMUNDO.RES.CMU.EDU] has quit [anthony.freenode.net irc.freenode.net] 20:05:34 -!- mapreduce [n=ricky@varenka.cime.net] has quit [anthony.freenode.net irc.freenode.net] 20:05:34 -!- csoy [n=csoy@174-143-208-224.static.cloud-ips.com] has quit [anthony.freenode.net irc.freenode.net] 20:05:34 -!- cky [n=cky@cpe-024-211-255-249.nc.res.rr.com] has quit [anthony.freenode.net irc.freenode.net] 20:05:34 -!- Narrenschiff [n=ritchie@xolotl.plus.com] has quit [anthony.freenode.net irc.freenode.net] 20:05:34 -!- elmex [i=elmex@ist.m8geil.de] has quit [anthony.freenode.net irc.freenode.net] 20:05:34 -!- rntz [n=rntz@pool-96-235-185-65.cmdnnj.fios.verizon.net] has quit [anthony.freenode.net irc.freenode.net] 20:05:34 -!- leppie [n=lolcow@196.210.200.229] has quit [anthony.freenode.net irc.freenode.net] 20:06:17 -!- synx [i=synx@gateway/gpg-tor/key-0xA71B0C6A] has quit [anthony.freenode.net irc.freenode.net] 20:06:17 -!- hiyuh [n=hiyuh@KD124214245222.ppp-bb.dion.ne.jp] has quit [anthony.freenode.net irc.freenode.net] 20:06:51 -!- lolcow is now known as leppie 20:06:51 -!- arcfide [n=arcfide@adsl-99-14-211-8.dsl.bltnin.sbcglobal.net] has quit [anthony.freenode.net irc.freenode.net] 20:06:51 -!- REPLeffect [n=REPLeffe@69.54.115.254] has quit [anthony.freenode.net irc.freenode.net] 20:06:51 -!- copumpkin [n=pumpkin@c-24-63-67-154.hsd1.nh.comcast.net] has quit [anthony.freenode.net irc.freenode.net] 20:12:41 -!- blackened` [n=blackene@ip-89-102-28-224.karneval.cz] has quit [] 20:13:18 -!- lisppaste [n=lisppast@common-lisp.net] has quit ["Want lisppaste in your channel? Email lisppaste-requests AT common-lisp.net."] 20:13:21 lisppaste [n=lisppast@common-lisp.net] has joined #scheme 20:14:03 blackened` [n=blackene@ip-89-102-28-224.karneval.cz] has joined #scheme 20:15:32 -!- decker [n=chatzill@user-0c9h6n8.cable.mindspring.com] has quit [anthony.freenode.net irc.freenode.net] 20:15:32 -!- rudybot [n=luser@q-static-138-125.avvanta.com] has quit [anthony.freenode.net irc.freenode.net] 20:15:32 -!- joast [n=rick@76.178.178.72] has quit [anthony.freenode.net irc.freenode.net] 20:15:32 -!- clog [n=nef@bespin.org] has quit [anthony.freenode.net irc.freenode.net] 20:15:32 -!- tessier [n=treed@mail.copilotco.com] has quit [anthony.freenode.net irc.freenode.net] 20:15:32 -!- karme [n=user@kallisto.karme.de] has quit [anthony.freenode.net irc.freenode.net] 20:16:40 hiyuh [n=hiyuh@KD124214245222.ppp-bb.dion.ne.jp] has joined #scheme 20:16:40 synx [i=synx@gateway/gpg-tor/key-0xA71B0C6A] has joined #scheme 20:16:41 copumpkin [n=pumpkin@c-24-63-67-154.hsd1.nh.comcast.net] has joined #scheme 20:16:41 REPLeffect [n=REPLeffe@69.54.115.254] has joined #scheme 20:17:02 -!- copumpkin [n=pumpkin@c-24-63-67-154.hsd1.nh.comcast.net] has quit [Client Quit] 20:17:14 copumpkin [n=pumpkin@c-24-63-67-154.hsd1.nh.comcast.net] has joined #scheme 20:17:16 karme [n=user@kallisto.karme.de] has joined #scheme 20:17:16 decker [n=chatzill@user-0c9h6n8.cable.mindspring.com] has joined #scheme 20:17:16 tessier [n=treed@mail.copilotco.com] has joined #scheme 20:17:16 rudybot [n=luser@q-static-138-125.avvanta.com] has joined #scheme 20:17:16 clog [n=nef@bespin.org] has joined #scheme 20:17:16 joast [n=rick@76.178.178.72] has joined #scheme 20:17:19 Sveklo [n=sveklo@cs181131.pp.htv.fi] has joined #scheme 20:17:19 Narrenschiff [n=ritchie@xolotl.plus.com] has joined #scheme 20:17:19 mmc [n=mima@cs137104.pp.htv.fi] has joined #scheme 20:17:19 kniu [n=kniu@ELMUNDO.RES.CMU.EDU] has joined #scheme 20:17:19 ponzao___ [n=vesam@xdsl-83-150-86-25.nebulazone.fi] has joined #scheme 20:17:19 rntz [n=rntz@pool-96-235-185-65.cmdnnj.fios.verizon.net] has joined #scheme 20:17:19 elmex [i=elmex@ist.m8geil.de] has joined #scheme 20:17:19 mapreduce [n=ricky@varenka.cime.net] has joined #scheme 20:17:19 heat [n=dima@8.21.172.227] has joined #scheme 20:17:19 csoy [n=csoy@174-143-208-224.static.cloud-ips.com] has joined #scheme 20:17:19 cky [n=cky@cpe-024-211-255-249.nc.res.rr.com] has joined #scheme 20:17:19 tonyg [n=tonyg@host226.lshift.net] has joined #scheme 20:17:19 poe [n=poe@unaffiliated/poe] has joined #scheme 20:17:48 -!- decker [n=chatzill@user-0c9h6n8.cable.mindspring.com] has quit [anthony.freenode.net irc.freenode.net] 20:17:48 -!- rudybot [n=luser@q-static-138-125.avvanta.com] has quit [anthony.freenode.net irc.freenode.net] 20:17:48 -!- joast [n=rick@76.178.178.72] has quit [anthony.freenode.net irc.freenode.net] 20:17:48 -!- clog [n=nef@bespin.org] has quit [anthony.freenode.net irc.freenode.net] 20:17:48 -!- tessier [n=treed@mail.copilotco.com] has quit [anthony.freenode.net irc.freenode.net] 20:17:48 -!- karme [n=user@kallisto.karme.de] has quit [anthony.freenode.net irc.freenode.net] 20:18:00 rudybot_ [n=luser@q-static-138-125.avvanta.com] has joined #scheme 20:18:04 clog [n=nef@bespin.org] has joined #scheme 20:18:08 karme` [n=user@kallisto.karme.de] has joined #scheme 20:18:16 decker [n=chatzill@user-0c9h6n8.cable.mindspring.com] has joined #scheme 20:18:45 -!- karme` is now known as karme 20:18:51 joast [n=rick@76.178.178.72] has joined #scheme 20:20:57 -!- Narrenschiff [n=ritchie@xolotl.plus.com] has quit [] 20:22:39 reprore [n=reprore@ntkngw598092.kngw.nt.ftth.ppp.infoweb.ne.jp] has joined #scheme 20:22:52 tessier [n=treed@mail.copilotco.com] has joined #scheme 20:32:42 peter_12 [n=peter_12@d75-157-233-41.bchsia.telus.net] has joined #scheme 20:37:17 mreggen [n=mreggen@cm-84.215.28.167.getinternet.no] has joined #scheme 20:37:20 sphex [n=nobody@modemcable239.185-56-74.mc.videotron.ca] has joined #scheme 20:38:19 arcfide [n=arcfide@adsl-99-14-211-8.dsl.bltnin.sbcglobal.net] has joined #scheme 20:38:57 emmy [n=em@72-63-168-177.pools.spcsdns.net] has joined #scheme 20:43:45 -!- lisppaste [n=lisppast@common-lisp.net] has quit ["Want lisppaste in your channel? Email lisppaste-requests AT common-lisp.net."] 20:43:48 lisppaste [n=lisppast@common-lisp.net] has joined #scheme 20:48:43 davazp [n=user@56.Red-79-153-148.dynamicIP.rima-tde.net] has joined #scheme 20:51:33 Riastradh: I want to examine your Rendezvous code, are you around to answer questions? 20:51:33 arcfide, memo from eli: Re your "Are they now?" reply to synx -- you should know better, that's a good nail he hit, and if you also attended Mitchfest, then this is what Danvy mentioned in one of his presentations (or maybe it was someone else who did). 20:52:09 eli: Um... 20:52:15 *arcfide* tries to remember what he said. 20:52:21 The point is that it was unnecessarily arrogant. 20:52:38 16:59:07 accumulators are just an explicit stack 20:52:38 16:59:07 synx: Are they now? 20:52:50 Ooh! 20:52:56 Sorry, I didn't mean it to be arrogant. 20:53:13 Ohh, *now* you're sorry. Psh! 20:53:23 :-) 20:53:36 *eli* goes back into non-irc-existence 20:54:06 -!- sphex_ [n=nobody@modemcable239.185-56-74.mc.videotron.ca] has quit [Read error: 110 (Connection timed out)] 20:54:59 I wasn't meaning to detract from the observation of somethings like the normal list accumulator being an explicit stack. And, I agree that it is a valid point, but I didn't think it was good to assume that all accumulators in the general sense were stacks in the sense of a one dimensional push/pop type stack as we normally understand it. 20:56:07 -!- reprore [n=reprore@ntkngw598092.kngw.nt.ftth.ppp.infoweb.ne.jp] has quit [Remote closed the connection] 20:57:18 incubot: (call-with-values * -) 20:57:19 -1 20:58:07 i take it that relies on the multiplicative identity 21:02:03 Narrenschiff [n=ritchie@xolotl.plus.com] has joined #scheme 21:02:30 *eli* 's forced into existence, again 21:02:33 arcfide: Well, if you've been there, there there was a short derivation of CPS form, then some simplifications on the continuation functions, and eventually that turned into a loop+accumulator. So synx's comment wasn't entirely accurate, but its core is an important observation that does hold. 21:03:54 -!- rudybot_ [n=luser@q-static-138-125.avvanta.com] has quit [anthony.freenode.net irc.freenode.net] 21:03:54 -!- karme [n=user@kallisto.karme.de] has quit [anthony.freenode.net irc.freenode.net] 21:03:54 -!- Poeir [n=Poeir@c-98-222-133-165.hsd1.il.comcast.net] has quit [anthony.freenode.net irc.freenode.net] 21:03:54 -!- incubot [i=incubot@klutometis.wikitex.org] has quit [anthony.freenode.net irc.freenode.net] 21:03:54 -!- luz [n=davids@189.122.90.116] has quit [anthony.freenode.net irc.freenode.net] 21:03:54 -!- steiger__ [n=steiger@189.105.53.164] has quit [anthony.freenode.net irc.freenode.net] 21:03:54 -!- mornfall [n=mornfall@kde/developer/mornfall] has quit [anthony.freenode.net irc.freenode.net] 21:03:54 -!- jonrafkind [n=jon@98.202.86.149] has quit [anthony.freenode.net irc.freenode.net] 21:03:54 -!- Adrinael [i=adrinael@rib4.kyla.fi] has quit [anthony.freenode.net irc.freenode.net] 21:03:54 -!- mreggen [n=mreggen@cm-84.215.28.167.getinternet.no] has quit [anthony.freenode.net irc.freenode.net] 21:03:54 -!- pfo_ [n=pfo@chello084114049188.14.vie.surfer.at] has quit [anthony.freenode.net irc.freenode.net] 21:03:54 -!- yosafbridge [n=yosafbri@ludios.net] has quit [anthony.freenode.net irc.freenode.net] 21:04:25 eli: Fair enough. 21:04:37 pfo_ [n=pfo@chello084114049188.14.vie.surfer.at] has joined #scheme 21:04:57 Does anyone know whether this Concurrent ML stuff has any sort of direct or nearly close and direct relation to Pi Calculus? 21:05:02 karme [n=user@kallisto.karme.de] has joined #scheme 21:05:02 rudybot_ [n=luser@q-static-138-125.avvanta.com] has joined #scheme 21:05:02 Poeir [n=Poeir@c-98-222-133-165.hsd1.il.comcast.net] has joined #scheme 21:05:02 steiger__ [n=steiger@189.105.53.164] has joined #scheme 21:05:02 jonrafkind [n=jon@98.202.86.149] has joined #scheme 21:05:02 luz [n=davids@189.122.90.116] has joined #scheme 21:05:02 Adrinael [i=adrinael@rib4.kyla.fi] has joined #scheme 21:05:02 incubot [i=incubot@klutometis.wikitex.org] has joined #scheme 21:05:02 mornfall [n=mornfall@kde/developer/mornfall] has joined #scheme 21:05:21 incubot: (delay eli) 21:05:21 # 21:05:57 *eli* slaps incubot at two different levels 21:06:22 rudybot_: eval (delay chandler) 21:06:23 eli: your scheme sandbox is ready 21:06:24 eli: ; Value: # 21:06:25 arcfide, I'm here. 21:06:31 -!- emmy [n=em@72-63-168-177.pools.spcsdns.net] has quit [Read error: 104 (Connection reset by peer)] 21:06:36 *eli* slaps rudybot too 21:06:46 mreggen [n=mreggen@cm-84.215.28.167.getinternet.no] has joined #scheme 21:07:02 Riastradh: As per the above, does it help to have any conception of Pi calculus when trying to understand what your Rendezvous code does? 21:07:31 Just from a quick quick quick overglance, it seems that this is a sophisticated means of communication over channels. 21:07:52 The channel part of CML is related to the pi calculus. 21:09:25 I also had absolutely no idea what semaphore.scm did inside the functions, though I "understand" semaphores. I have looked at some of the other files and it makes a slight bit more sense, but I'm still getting to the point where I can ask a question. 21:10:04 yosafbridge [n=yosafbri@ludios.net] has joined #scheme 21:10:21 The idea wasn't for you to dive into semaphore.scm and be drowned in confusion; the idea was for you to start reading it and to ask a question as soon as something wasn't obvious. 21:10:47 I also notice that one CML paper indicates that the CML stuff is meant to be high performance, is this just by nature of the implementation or is the concept naturally ameniable to fast execution? 21:10:58 I don't know what that claim means. 21:11:12 Riastradh: I'm not drowning yet, I've enough air to stay under water for a bit longer. ;-) 21:11:57 mejja [n=user@c-49b6e555.023-82-73746f38.cust.bredbandsbolaget.se] has joined #scheme 21:12:03 Is there something inherently fast about this model for concurrent programming over other models, or is it just a nice high-level model that can be optimized if the proper effort is made? 21:12:22 For example, you might start with `Eek! What does DEFINE-RECORD-TYPE do?' at which I'd point you to SRFI 9. Then you might say `What's MAKE-MAILBOX?', and I'd say that a mailbox is one way by which processes transmit objects. Then you might say `Yikes! DEFINE-VARIANT-TYPE???', &c. 21:13:09 reprore [n=reprore@ntkngw598092.kngw.nt.ftth.ppp.infoweb.ne.jp] has joined #scheme 21:13:12 Again, I don't know what that claim means. I have never measured any performance of anything related to CML. 21:13:18 -!- reprore [n=reprore@ntkngw598092.kngw.nt.ftth.ppp.infoweb.ne.jp] has quit [Remote closed the connection] 21:13:23 Okay, fair enough. 21:13:56 Eek! What is a mailbox? 21:14:42 I don't know what it means to transmit objects. 21:14:44 Well, a mailbox is one way by which processes transmit objects. Sending an object to a mailbox happens immediately; receiving an object from a mailbox must wait until there is an object ready to be received. If more objects are sent than received, they are queued up. 21:15:14 So if M is a fresh mailbox, and I say (MAILBOX-SEND M 'FNORD), and you say (MAILBOX-RECEIVE M), then you will get back the symbol FNORD. 21:16:12 -!- Adamant [n=Adamant@unaffiliated/adamant] has quit [] 21:16:15 So, a mailbox is some structure when has a send and receive operation on it, the send operation being immediate, and the receive operation either returns the earliest object sent to the mailbox or else blocks for the next send operation on that mailbox? 21:16:24 Right. 21:16:27 emma [n=em@unaffiliated/emma] has joined #scheme 21:17:36 Spawn, from my other reading, my guess is that spawn creates a new thread that is indexed in some global thread table. 21:17:53 Indexed in some global thread table? Forget that; it just creates a new thread. 21:18:30 Is it directly synonymous with 'fork-thread' in Chez Scheme or does it have some special property? 21:18:43 It is probably synonymous with Chez's FORK-THREAD, but that's only a guess. 21:19:08 The new thread is immediately ready for scheduling, if that's what you're asking -- it's not like SRFI 18's MAKE-THREAD. 21:19:24 So it begins in a suspended state? 21:19:39 ...no, it's *not* like SRFI 18's MAKE-THREAD. 21:19:47 It is immediately ready for scheduling. 21:20:07 So, in normal operating systems parlance, it's in a ready state? 21:20:12 Whether SPAWN immediately starts running the thread, or whether the thread is just put on the scheduling queue, is irrelevant. 21:20:16 Sure. 21:20:23 Okay. 21:21:42 So that sounds an awful lot like Chez Scheme's 'fork-thread'. My current curiosity is whether that's such a good idea given that Chez Scheme uses heavyweight threads. I assume that it is not necessary to have an Operating System thread in this context, but that green threading would be okay, or something similar? 21:21:51 Oh, don't worry about that! 21:21:58 That's totally irrelevant. 21:22:01 .... 21:22:04 Irrelevant to what? 21:22:10 Irrelevant to understanding the semantics of the code here. 21:22:15 what is a normal way to do an "iterator" in Scheme? Just make a function that can be called multiple times? 21:22:18 -!- npe [n=npe@94-224-251-223.access.telenet.be] has quit [] 21:22:25 Forget pragmatics, forget performance -- focus on what the code is saying. 21:22:29 peter_12: Define normal. 21:22:34 peter_12, define `iterator'. 21:22:49 for some definitions of "normal" and "iterator" 21:22:54 perhaps like Python 21:23:03 you call it and it returns something 21:23:20 maybe it returns a string each time 21:23:25 No, of course not! Those in the know create foof loop iterators, not stinkin' functions. :-P ... Oh, *that* kind of iterator.... 21:23:30 rudybot_: init r5rs 21:23:31 chandler: your r5rs sandbox is ready 21:23:41 rudybot_: (define f (lambda () "a string")) 21:23:42 chandler: eh? Try "rudybot_: help". 21:23:42 peter_12, although you can use procedures that return the `next' value each time you call them, you probably want streams. 21:23:47 rudybot_: eval (define f (lambda () "a string")) 21:23:52 rudybot_: eval (f) 21:23:53 chandler: ; Value: "a string" 21:23:53 rudybot_: eval (f) 21:23:54 chandler: ; Value: "a string" 21:24:00 rudybot_: init DeathStar 21:24:01 arcfide: error: DeathStar: standard-module-name-resolver: collection not found: "DeathStar" in any of: (#) in: DeathStar 21:24:04 peter_12: There you go! 21:24:15 chandler: awesome 21:24:23 I don't think that's quite what you wanted, though. 21:24:31 Riastradh: I think you are right. i think I want a stream 21:24:34 rudybot_: init ../../../../../../etc/passwd 21:24:34 chandler: error: make-evaluator: bad language spec: ../../../../../../etc/passwd 21:24:35 Riastradh: thanks 21:25:00 rudybot_: init r5rs 21:25:00 chandler: your r5rs sandbox is ready 21:26:43 rudybot_: eval (expt 2 (expt 2 128)) 21:26:44 chandler: error: with-limit: out of memory 21:26:59 Ah. 21:27:12 Riastradh: This semaphore-loop...what does it do? 21:28:10 arcfide, think of it as a network server. You send it requests in UDP packets; it sometimes hands back replies. There are three kinds of requests: ACQUIRE, RELEASE, and INQUIRE. 21:29:05 -!- Phaze [n=PhazeDK@93.163.43.22] has quit ["goes to bed"] 21:29:19 Okay, so I think I need to understand what this variant type stuff is about. 21:29:28 peter_12: streams are definitely the scheme way to do it. various ways to wrangle them though, up to and including lazy scheme. 21:29:36 Are you familiar with ML or Haskell, arcfide? 21:29:53 to make an iterator that is 21:29:59 -!- peter_12 [n=peter_12@d75-157-233-41.bchsia.telus.net] has quit [] 21:30:14 Eh...a little, enough to read a bit of code here and there or follow a friend's explanation, but I've never written a program or function in either. 21:30:28 but also peter_12, when iterating in scheme I usually loop over a named let. Tail recursion means I don't need to use any iterators. 21:31:15 arcfide, OK. Read the DEFINE-VARIANT-TYPE as three DFEINE-RECORD-TYPEs -- for an acquire request record type, a release request record type, and an inquire request record type -- along with a macro SEMAPHORE-REQUEST-CASE that expands into a COND for those three record types. 21:31:43 (Also, become familiar with Haskell. It will be worth your while. (But don't distract yourself at just this moment.)) 21:31:45 unless you need the iterator object itself, I'd just use a named let for most every case 21:31:51 synx, peter_12 left. 21:31:59 Or one of those fancy loop macros most implementations use 21:32:08 buh 21:32:08 so he did 21:32:58 -!- dsmith [n=dsmith@cpe-173-88-196-177.neo.res.rr.com] has quit [Remote closed the connection] 21:33:04 I should say "a scheme way to do it" not "the". Heck even using set! over a closure might be perfectly schemely. 21:34:18 *eli* lafs in chandler's general direction 21:34:54 does PLT-Scheme support variable-length arguments for functions? 21:35:12 like, SBCL has &rest or something like that 21:35:20 ... 21:35:23 steiger__: Yes. 21:35:25 steiger__: yes 21:35:34 what is the syntax? i'm failing to find it on the docs 21:35:36 Yes, steiger__, just like every implementation of Scheme does. 21:35:43 Look for the syntax of LAMBDA. 21:35:49 steiger__: you'll be hard pressed to find any scheme that doesn't support variable length arguments 8/ that wouldn't really be scheme 21:36:13 dsmith [n=dsmith@cpe-173-88-196-177.neo.res.rr.com] has joined #scheme 21:36:22 rudybot_: eval ((lambda args args) 1 2 3 4) 21:36:23 synx: your "http://paste.lisp.org/display/86023,1/raw" sandbox is ready 21:36:23 synx: ; Value: (1 2 3 4) 21:36:54 great 21:36:54 rudybot_: eval ((lambda (first second . args) (list first second args)) 'foo 1 2 3 4 5) 21:36:55 synx: ; Value: (foo 1 (2 3 4 5)) 21:37:10 . 21:37:14 thank you guys :) 21:37:31 np ^.^ 21:37:39 keyword arguments aren't quite as standardized I don't think though. 21:37:51 or arguments with defaults... 21:38:14 Riastradh: So, it's a shortcut for doing dispatch on type or some such thing? 21:38:24 Yes, arcfide. 21:39:29 There are three types of requests: acquire requests, of which each contains a reply channel and a nack rendezvous (don't worry about nacks for now); release requests, which contain nothing; and inquire requests, of which each contains a reply placeholder. 21:40:00 SEMAPHORE-REQUEST/ is the procedure to construct a request. SEMAPHORE-REQUEST-CASE dispatches on the type of request and binds variables for its components. 21:40:00 What is in the queue of this semaphore-loop thing? 21:40:14 Look for ENQUEUE!. 21:41:33 pantsd_pcf [n=pantsd_p@pigscanfly.ca] has joined #scheme 21:45:50 haesbaert [n=haesbaer@c925a8c5.virtua.com.br] has joined #scheme 21:46:47 -!- karme [n=user@kallisto.karme.de] has left #scheme 21:46:56 Basically, it stores the acquisition requests in first-in/first-out order. 21:48:01 Riastradh: So, what does 'synchronize' do? 21:49:31 -!- masm [n=masm@bl11-78-235.dsl.telepac.pt] has quit [Read error: 110 (Connection timed out)] 21:50:33 SYNCHRONIZE waits for an event to happen that synchronizes the state of two processes (waits for a rendezvous, in other words). In this case, it waits until there is a message ready to be received from the mailbox. (It appears that there is only one process involved here, but you can express a mailbox using a server process and a pair of channels; in that case, it really is synchronizing the server process and a client process. 21:50:49 ...er. 21:50:51 Excuse me. 21:51:19 In SEMAPHORE-ACQUIRE, SYNCHRONIZE waits for a message on the reply channel that was constructed in %SEMAPHORE-ACQUIRE-RENDEZVOUS. 21:51:33 In SEMAPHORE-VALUE, SYNCHRONIZE waits for a value to be put in the placeholder. 21:52:30 masm [n=masm@bl11-78-183.dsl.telepac.pt] has joined #scheme 21:52:34 A placeholder is a cell that can be assigned only once, at which time any processes waiting for its value will be revived (or, `rendezvous for its value will be enabled'). 21:53:18 The call to SYNCHRONIZE in SEMAPHORE-VALUE is not immediately apparent: it's hidden inside PLACEHOLDER-VALUE, whose definition is: (define (placeholder-value placeholder) (synchronize (placeholder-value-rendezvous placeholder))) 21:56:39 Okay, then I think I feel relatively comfortable with this implementation of semaphores. 21:56:54 -!- antoszka [n=antoszka@unaffiliated/antoszka] has quit ["+++ killed by SIGSEGV +++"] 21:56:59 Well, that was straightforward! 21:57:37 If you are comfortable with this, then I ought to explain what this nack business is all about, unless you have figured it out and would like to explain it yourself. 21:57:41 syntropy [n=who@unaffiliated/syntropy] has joined #scheme 21:58:06 -!- dsmith [n=dsmith@cpe-173-88-196-177.neo.res.rr.com] has quit [Remote closed the connection] 22:00:31 antoszka [n=antoszka@unaffiliated/antoszka] has joined #scheme 22:01:30 I'm not sure I know exactly how semaphore-grant works, and as such, I'm not sure precisely the use of nack, but if I had to guess, I would say it has something to do with allowing yourself to wait for more than one semaphore to be acquired, and not having to block on any single one. I'm likely way off, though. 22:02:14 Riastradh: You could explain how 'rendezvous-case' works. :-) 22:02:15 Almost. Suppose you have a choice of several different semaphores to acquire, but you want to deal with them only one at a time, and yet you don't care which one goes first. 22:02:41 So as soon as you have acquired one of them -- and again, you don't care which --, you don't want to acquire any more of them until you're done with the first one. 22:03:07 Right, so you can usethe acquire-rendezvous to get these promises or some kind and do that for a bunch, and then do that wrap or mapping synchronize on it, right? 22:03:14 In this case, you pass a semaphore acquisition rendezvous, which you got with SEMAPHORE-ACQUIRE-RENDEZVOUS, to RENDEZVOUS-CASE, or to SYNCHRONIZE-CHOSEN-RENDEZVOUS, or something like that. 22:03:21 And it will give you the one that first gets the nack signal or whatever it is called? Maybe? 22:03:23 This causes two things to be sent to the semaphore server: 22:03:45 1. A reply channel, with which the semaphore will try to grant your request. 22:03:51 -!- Edico [n=Edico@unaffiliated/edico] has quit ["Ex-Chat"] 22:03:52 2. A nack rendezvous. 22:04:10 The semaphore grants acquisition requests by sending messages to reply channels. 22:04:23 You, the client of the semaphore, will be waiting for a message on one of *several* reply channels. 22:04:40 (This, recall, is because you tried to acquire one of several semaphores.) 22:05:11 -!- Narrenschiff [n=ritchie@xolotl.plus.com] has quit [] 22:05:16 As soon as a message is sent to *one* of those channels, you flag all of the nack (negative acknowledgement) rendezvous, telling all the *other* semaphore servers that you aren't actually interested in acquiring them. 22:05:29 Then they can try to grant semaphores to other clients. 22:06:41 Well, to be more precise: you flag all of the nack rendezvous for the other semaphores, not for the one that you acquired. 22:06:58 And when I say `you flag the nack rendezvous', I don't mean that you the programmer must take any particular action; flagging the nack rendezvous happens as part of the rendezvous engine. 22:08:28 Okay. 22:09:53 I'm not sure I'm that much closer to understanding rendezvous. 22:11:10 An event is, well, something that happens. It happens only once, however. For example, if you have a mailbox at a particular time, you could consider the event of receiving the next message on that mailbox. 22:11:28 Or rather, you could consider the event of the next message's being delivered to that mailbox. 22:11:42 As soon as someone delivers a message to that mailbox, the event has happened. 22:12:49 This is just the general notion of event in everyday English. If you render this concept into Scheme, you might have a collection of data structures for objects called events, of which you might have one for the events of messages' being delivered to mailboxes. 22:13:13 The data structure for this kind of event might have a place where the next message goes as soon as it is delivered. 22:13:55 You could ask of an event `Have you happened yet?' by calling a procedure with a name such as EVENT-HAPPENED?, and you might wait for an event to happen by calling a procedure with a name such as WAIT-FOR-EVENT> 22:13:59 . 22:14:02 Follow? 22:14:32 Yes. 22:15:22 A /rendezvous/ is an object describing not an event but a class of events. 22:16:04 For example, you might have a rendezvous object RV for receiving a message from a mailbox. 22:17:17 If you pass RV to SYNCHRONIZE, the process will wait until there is a message in the mailbox, but you can pass RV to SYNCHRONIZE many times, and each time it will wait until there is a message in the mailbox -- perhaps different messages at different times. 22:18:18 A rendezvous is an entity in one of two states at any given time: blocked or enabled. If a rendezvous is enabled, it has a value associated with it, such as the first value in a mailbox. If a rendezvous is blocked, it has no value associated with it, and you can use SYNCHRONIZE to wait until an event happens to put the rendezvous in the enabled state. 22:19:05 In this example, RV is a rendezvous that is enabled whenever there are messages in the mailbox from which you obtained RV, and blocked when there are not. 22:19:52 Okay. 22:20:20 Channels are symmetric (synchronous) tubes along which one can pass internets^Wmessages. For any channel, there is a rendezvous for sending a message and a rendezvous for receiving a message. Whenever a process is synchronizing a rendezvous to send a message, the rendezvous to receive a message is enabled, and vice versa; otherwise they are both blocked. 22:22:02 Shiba [n=mohr@boys.temerity.net] has joined #scheme 22:23:08 I'm having trouble understanding scheme and was hoping someone could help me 22:23:11 masm1 [n=masm@bl7-195-128.dsl.telepac.pt] has joined #scheme 22:23:38 I wrote the following (almost certainly grammatically incorrect) statement: 22:23:52 (define (add seq) (if (= length(seq) 0) 0 (+ (car seq) (add (cdr seq))))) 22:24:06 Is SEQ supposed to be a procedure, Shiba? 22:24:17 no, its supposed to be a list 22:24:27 an argument 22:24:36 The code you wrote uses it both as a list, by passing it to CAR and CDR, and as a procedure, by calling it: (SEQ). 22:24:37 tahts what scheme was telling me, it expects a procedure 22:24:50 ohhhh 22:24:54 When you write (SEQ), that means: Scheme, please call the procedure SEQ with zero arguments. 22:25:14 ohhh so what I want is (length seq) 22:25:18 Yep. 22:25:29 lemme try that 22:26:26 a-HA! it works! thank you :)))) 22:27:56 sphex_ [n=nobody@modemcable239.185-56-74.mc.videotron.ca] has joined #scheme 22:28:05 arcfide, now, what's interesting about CML is that you can compose rendezvous in various ways. 22:29:47 You can make a rendezvous synchronizing which first causes an action to be taken and then which reduces to another rendezvous. You saw an example of this with semaphore acquisition: In order to know whether the semaphore acquisition rendezvous is enabled, you need to send a message to the semaphore server asking it; then the question of whether the semaphore can be acquired reduces to the question of whether there is a message 22:31:50 This example also shows the use of negative acknowledgement, of course, which matters with another kind of composition of rendezvous: 22:32:32 Given two rendezvous, you can make a third that is enabled whenever either of the first is enabled. 22:33:59 Such rendezvous are called choosing rendezvous. The connection of choosing rendezvous with negative acknowledgements is best understood by thinking about everything in terms of channels: if the rendezvous for receiving messages on two channels are both enabled, and you take the message from one of them, that enables the *sending* rendezvous for only one of channels; the rendezvous being synchronized by whomever is trying to send 22:34:40 (Although scm-rendezvous provides direct implementations of placeholders and mailboxes, they could just as well be implemented using channels, plus an extra process per mailbox/placeholder.) 22:35:27 Is it possible to seralize something like (lambda (k) (+ 8 k)) ? 22:35:44 What meaning of the word `ser[i]alize' are you using, pantsd_pcf? 22:37:18 I'd like to pass it around through the plt-webserver as a paramter 22:38:07 what's the prefered way of recursing with a function that takes an variable number of args? 22:38:23 steiger__, generally, not to do that, but if you must, use APPLY. 22:38:25 r5rs apply 22:38:25 http://www.schemers.org/Documents/Standards/R5RS/HTML/r5rs-Z-H-9.html#%_idx_556 22:38:27 -rudybot_:#scheme- http://tinyurl.com/2kjgxd 22:39:36 -!- masm [n=masm@bl11-78-183.dsl.telepac.pt] has quit [Read error: 110 (Connection timed out)] 22:39:37 Riastradh: Hrm.... 22:39:56 i'll check that out, Riastradh , thanks 22:40:26 so 22:40:32 sorry wrong channel 22:40:57 merus [n=merus@pal-176-050.itap.purdue.edu] has joined #scheme 22:41:54 tjafk1 [n=timj@e176204187.adsl.alicedsl.de] has joined #scheme 22:44:11 sepult [n=buggarag@xdsl-87-78-27-43.netcologne.de] has joined #scheme 22:44:44 Sveklo1 [n=sveklo@cs181131.pp.htv.fi] has joined #scheme 22:44:46 Riastradh: worked beautifully :) 22:45:25 -!- sphex [n=nobody@modemcable239.185-56-74.mc.videotron.ca] has quit [Read error: 110 (Connection timed out)] 22:45:53 dsmith [n=dsmith@cpe-173-88-196-177.neo.res.rr.com] has joined #scheme 22:46:16 Riastradh: So I'm still not sure how rendezvous works. :-) I think I understand the high level operation, but I can't translate that into an understanding of, say, channel.scm. 22:50:31 Riastradh: how does 'rendezvous-case' work? 22:51:57 MononcQc [n=mononcqc@modemcable062.225-20-96.mc.videotron.ca] has joined #scheme 22:53:35 Don't worry about rendezvous.scm, channel.scm, mailbox.scm, and placeholder.scm just yet. 22:53:57 *arcfide* waits impatiently. 22:53:59 :-) 22:54:12 What's next then, in this path to CML enlightenment? 22:55:06 There's a third way to compose rendezvous, which is to map their enabled values by some procedure to other values. For example, if RV is a rendezvous whose value when enabled at some time is 4, then (MAP-RENDEZVOUS RV (LAMBDA (X) (* X 2))) yields another rendezvous that is enabled at the same time, but its value is 8, rather than 4. 22:55:38 RENDEZVOUS-CASE is just syntactic sugar for two layers of rendezvous composition: 22:56:10 (RENDEZOUS-CASE ( ) ...) is equivalent to (CHOOSING-RENDEZVOUS (MAP-RENDEZVOUS (LAMBDA IGNORE )) ...). 22:57:06 (RENDEZVOUS-CASE ( => ) ...) is equivalent to (CHOOSING-RENDEZVOUS (MAP-RENDEZVOUS ) ...). The two forms of clauses may be mixed, too. 22:57:59 -!- tjafk2 [n=timj@e176199186.adsl.alicedsl.de] has quit [Read error: 110 (Connection timed out)] 22:59:18 Riastradh: can you clarify something for me? 22:59:27 If you say what it is to clarify, perhaps I can, Shiba. 22:59:31 I'm trying to wrap my head around hte concept of Lambda 22:59:50 as far as I can tell lambda is Scheme's equivalent of a C callback 22:59:57 is that close? 23:00:29 lambda is ... a way to map a name to an anonymous function 23:00:43 No, LAMBDA is just the form that constructs procedures, irrespective of names. 23:00:43 -!- Sveklo [n=sveklo@cs181131.pp.htv.fi] has quit [Read error: 110 (Connection timed out)] 23:01:18 okay, so lambda is a generic term for an anonymous function 23:01:47 C requires you to give a name to each procedure, *and* makes you go to some effort, if you want it to make one that has free variables, to allocate some place for those variables' values. 23:02:15 Not a `generic term for an anonymous function'; a LAMBDA form, (LAMBDA ), is just an expression in Scheme for an anonymous procedure. 23:02:36 okay, that makes sense 23:03:06 now, to use such an anonymous procedure you have to immediately call it or give it a name for later use correct? 23:04:04 You can pass it as an argument to another procedure. 23:04:06 You can return it from a procedure. 23:04:24 yes but you must keep a reference to it somehow, somewhere, in order to call it 23:04:50 I can see hwo that might be useful for a jump table type construct 23:05:43 mongooseWA [n=mongoose@c-76-121-136-178.hsd1.wa.comcast.net] has joined #scheme 23:06:09 The point of this exercise is that the name and the procedure are distinct entities, just like for any other objects. You don't need to give a name to the pointer to a hunk of memory you allocate with malloc; the pointer and the hunk of memory are independent of any names used to refer to them. 23:06:29 r0bby [n=wakawaka@guifications/user/r0bby] has joined #scheme 23:07:19 I see 23:07:37 -!- choas [n=lars@91.13.228.159] has quit [Read error: 145 (Connection timed out)] 23:08:00 I understand what you're saying, but the concept is still quite difficult for me to grasp 23:08:39 thanks for your explanation 23:10:03 -!- RageOfThou [n=RageOfTh@users-42-192.vinet.ba] has quit [Read error: 110 (Connection timed out)] 23:15:04 is it just me, or does it seem like performance is an inverse function of functionality when it comes to scheme implementations? 23:16:18 twobitsprite: What makes you think that? 23:16:33 i.e., mzscheme seems to have all this cool stuff in it... but as best I can tell has relatively poor performance... whereas gambit has great performance, but is fairly trimmed down when it comes to built-in functionality 23:17:27 twobitsprite: MzScheme isn't excessively slow all the time, but you should remember that they are built on different technical foundations and somewhat different approaches. 23:19:13 twobitsprite: Additionally, Ikarus and Chez Scheme both have ports to the portable R6RS SRFI effort, and they aren't realy slow. That's a lot of functinality. 23:21:25 "isn't excessively slow all the time" doesn't sound like is has competative performance :P 23:22:04 as for r6rs, I haven't read up on it much... I suppose I should read up on it 23:23:04 alaricsp1 [n=alaricsp@relief.warhead.org.uk] has joined #scheme 23:24:19 proq [n=user@38.100.211.40] has joined #scheme 23:26:09 -!- weinholt [i=weinholt@debian/emeritus/weinholt] has quit [Read error: 60 (Operation timed out)] 23:26:12 weinholt [i=weinholt@debian/emeritus/weinholt] has joined #scheme 23:27:54 Totally random: Can anyone recommend a place to find lunch in Albany? 23:27:56 sphex [n=nobody@modemcable239.185-56-74.mc.videotron.ca] has joined #scheme 23:28:35 -!- syntropy [n=who@unaffiliated/syntropy] has left #scheme 23:29:12 ask vark.com :) 23:29:13 twobitsprite: Normally, PLT Scheme's speed won't bother you in most deployments. 23:30:20 -!- sphex_ [n=nobody@modemcable239.185-56-74.mc.videotron.ca] has quit [Read error: 60 (Operation timed out)] 23:31:09 arcfide: classic case of damning with faint praise ;) 23:31:19 arcfide: I'm looking to write a 3d game :) 23:31:29 You realize, arcfide, that you are providing twobitsprite with about zero information by saying that, right? 23:31:33 and I really like the idea of writing it in scheme :) 23:31:51 Riastradh: :) 23:31:53 twobitsprite: Um...yeah, depending on how you use it, speed might be an issue, but if you are writing a 3-D game, what do you need all of PLT Scheme for?! 23:32:25 -!- alaricsp [n=alaricsp@relief.warhead.org.uk] has quit [Read error: 110 (Connection timed out)] 23:32:43 twobitsprite: You are aware of the 3-D puzzle game written by Gamerizon in Scheme? 23:32:59 arcfide: I think I've seen it 23:33:07 *Riastradh* vanishes, but will skim the log for any lunch recommendations in Albany. 23:33:47 and its not that I think I need all of PLT... it's just that so many implementations seem so barren and minimally implemented 23:34:03 twobitsprite: The conventional wisdom is for you to write your code well, and don't worry about speed until it becomes an issue. If you know that you are going to need lot's of performance from the Scheme side of your code in this game, then examinging something like Ikarus, Chez, Gambit and the like would make sense. 23:34:27 twobitsprite: There are many libraries out there; don't think that you can only use what is built-in. 23:34:51 In fact, if it means enough to you, you could probably port many of PLT Scheme's libraries to Gambit. 23:35:29 well... I think I'm mostly frustrated at the moment by the lack of SMP support by the schemes I've looked at... 23:35:33 I mean, your C compiler doesn't come with OpenGL libraries, does it? Those are usually a separate package. 23:35:40 sure, of course 23:35:46 Aaah. 23:35:56 dmoerner [n=dmr@89-151.res.pomona.edu] has joined #scheme 23:35:57 You mean native threading? 23:36:04 -!- mongooseWA [n=mongoose@c-76-121-136-178.hsd1.wa.comcast.net] has quit [] 23:36:07 yeah 23:36:09 The ability to utilize more than one core in an explicit manner through something like threads? 23:36:54 If you want that, PLT Scheme has an effort to add it back into the system, I think, and there are a few special Schemes that specifically focus on concurrency, but Chez Scheme is one of the few general Schemes I have seen that has a full native threading interface. 23:36:55 not necessarily threads or even explicit usage of SMP... but most computers these days have at least a dual-core CPU and it seems a waste to not be able to use it 23:37:13 twobitsprite: You can spawn two Scheme processes or such, but that's a apin. 23:37:36 *arcfide* can't recall if Gambit or Chicken have native threading support. 23:37:41 yeah, and there's the overhead of IPC between processes 23:37:50 neither do that I've found 23:38:08 twobitsprite: There is also the case to be made that most of the time you don't need native threading. :-) 23:38:14 But yeah, I like my native threads. 23:38:49 I have thought though that it'd be cool if you could spawn "thread domains" where you spawn just enough processes (or OS threads) the fill each CPU, then use light-weight threading within them... 23:39:42 twobitsprite: Maybe this rendezvous stuff I am porting to Chez Scheme will let you do that. :-) 23:39:48 but passing continuations/closures between them would be tricky I imagine 23:40:35 twobitsprite: Not really. It's concurrent execution, so you have to be careful as you normally would, but there's nothing really strange about jumping back and forth between threads unless you introduce problems by not being sane/careful. 23:40:52 true... 23:41:07 But I can only speak to that from Chez's perspective. 23:41:16 Anyways, I am going to grab some Supper. 23:41:32 I think that would be the ideal solution... that way you could still get the benefits of continuation based light-weight threading, but also be able to utilize SMP 23:41:43 cool... and I'll check out chez 23:41:44 thanks 23:42:14 twobitsprite: Keep in mind that I am very biased. :-) 23:42:22 :) 23:42:36 twobitsprite: And no one else is taking me out for suggesting Chez Scheme yet, so...hehe. 23:42:40 real quick (or when you get back)... what is this about a "petite" chez? 23:43:04 is the full version for-pay? 23:43:24 twobitsprite: Chez Scheme is a commercial Scheme, it costs money to buy the compiler. Petite Chez Scheme is the free version. It uses a threaded interpreter model instead of the incremental compiler. 23:43:46 twobitsprite: It's pretty much the same system, but without the compiler. 23:44:02 -!- davazp [n=user@56.Red-79-153-148.dynamicIP.rima-tde.net] has quit [Read error: 104 (Connection reset by peer)] 23:44:28 The main limitation I see there is debugging infromation and access to the FFI (which requires the compiler). For a 3-D game, that you don't want to invest money in, that could be a showstopper. 23:45:12 Anyways, I'll talk to you later! 23:45:18 good info, thanks again 23:47:54 davazp [n=user@56.Red-79-153-148.dynamicIP.rima-tde.net] has joined #scheme 23:48:40 emmy [n=em@173-118-88-106.pools.spcsdns.net] has joined #scheme 23:49:20 -!- emma [n=em@unaffiliated/emma] has quit [Nick collision from services.] 23:49:30 -!- emmy is now known as emma 23:50:20 came around a mountain there. 23:51:05 driving six white horses? 23:51:12 Is there an easy way to run/interact with command line programs? 23:52:12 -!- davazp [n=user@56.Red-79-153-148.dynamicIP.rima-tde.net] has quit [Remote closed the connection] 23:52:53 -!- alaricsp1 [n=alaricsp@relief.warhead.org.uk] has quit [Client Quit] 23:53:33 pantsd_pcf: care to be more specific? 23:54:30 twobitsprite: I'd like something equivelent to perls open($foo, "|./someprogram") 23:54:36 is there a way to test a function argument for type? For example, can I determine whether the actual argument "arg1" is of type vector or list? 23:54:46 ohh.... 23:55:05 or string? 23:55:06 Shiba: (list?) (vector?) 23:55:40 I think srfi-13 has (string?) 23:56:22 twobitsprite: something equivelent to perl's back ticks (like `./program`) would also be useful 23:56:28 gambit and chicken both have (string?) loaded by default, actually 23:56:44 pantsd_pcf: what scheme are you using? 23:56:47 twobitsprite: I'm totally new to scheme. so, how would I actually do it? "(list?arg1)"? 23:57:20 (if (list? arg1) (... it's a list...) (... it's not a list...)) 23:57:41 twobitsprite: plt-scheme 23:57:55 ahh, thanks 23:57:56 or (cond ((list? arg1) (...it's a list...)) ((vector? arg1) (...it's a vector)) ...) 23:59:55 pantsd_pcf: http://docs.plt-scheme.org/reference/subprocess.html