00:01:08 jonrafkind [~jon@jonr5.dsl.xmission.com] has joined #scheme 00:03:02 -!- myu2 [~myu2@x108121.dynamic.ppp.asahi-net.or.jp] has quit [Remote host closed the connection] 00:08:53 -!- dralston [~dralston@S0106687f74a12729.va.shawcable.net] has quit [Quit: leaving] 00:23:18 ada2358 [~ada2358@login.ccs.neu.edu] has joined #scheme 00:25:18 -!- Teeko [~Teeko@184.Red-83-49-132.dynamicIP.rima-tde.net] has quit [Ping timeout: 255 seconds] 00:33:25 -!- tauntaun [~Antoninus@ool-457c37c3.dyn.optonline.net] has quit [Quit: Ex-Chat] 00:34:08 -!- blueadept2 [~blueadept@cpe-24-160-96-254.tampabay.res.rr.com] has left #scheme 00:35:07 blueadept [~blueadept@unaffiliated/blueadept] has joined #scheme 00:39:59 -!- aleix [~aleix@179.Red-79-145-20.dynamicIP.rima-tde.net] has quit [Quit: ERC Version 5.3 (IRC client for Emacs)] 00:51:28 tauntaun [~Antoninus@64.134.66.212] has joined #scheme 00:53:49 Someone said to me that Scheme is ill-suited for large-scale applications. Would Schemers here agree? 00:55:10 No, no, that's not it at all. It's large-scale applications that are ill-suited for Scheme! 00:55:21 =p 00:56:31 -!- user17 [~user@p5B2A9DED.dip0.t-ipconnect.de] has quit [Ping timeout: 240 seconds] 00:59:32 evhan_ [~evhan@209.242.237.5] has joined #scheme 01:01:38 -!- evhan [~evhan@209.242.237.5] has quit [Ping timeout: 260 seconds] 01:04:53 -!- jesusito [~user@110.pool85-49-242.dynamic.orange.es] has quit [Quit: ERC Version 5.3 (IRC client for Emacs)] 01:15:13 -!- Caleb-- [thedude@bzq-79-176-206-190.red.bezeqint.net] has quit [] 01:22:55 aidalgol: that's a pretty generic statement; did that someone give details as to why that is supposed to be the case? 01:23:19 also, what foof said :-) 01:25:54 No, and they also admitted that they didn't know much about Lisps and that garbage collection was the work of the devil. :-P 01:26:01 *fds* watches #emacs too 01:32:07 ah I see 01:32:11 *DerGuteMoritz* just read the backlog 01:41:14 kilimanjaro [~kilimanja@unaffiliated/kilimanjaro] has joined #scheme 01:45:26 -!- tronador_ [~guille@190.66.172.162] has quit [Quit: tronador_] 01:45:45 -!- gravicappa [~gravicapp@ppp91-77-168-146.pppoe.mtu-net.ru] has quit [Remote host closed the connection] 01:48:44 -!- foocraft [~dsc@78.100.210.180] has quit [Quit: Leaving] 02:01:07 aidalgol: scheme and lisp in general is the language most suited for any kind of application, because of its meta-linguistic properties, which makes all kind of abstractions easy to implement. 02:01:38 I <3 coding in Scheme. Wouldn't trade it for anything. 02:09:11 -!- zilt [~zilt@67.23.13.119] has quit [Read error: Operation timed out] 02:09:17 zilt [~zilt@67.23.13.119] has joined #scheme 02:21:19 ijp [~user@host109-154-208-169.range109-154.btcentralplus.com] has joined #scheme 02:34:01 -!- masm [~masm@bl16-182-101.dsl.telepac.pt] has quit [Ping timeout: 255 seconds] 02:35:01 -!- kilimanjaro [~kilimanja@unaffiliated/kilimanjaro] has quit [Ping timeout: 264 seconds] 02:44:35 -!- paulh_ [~paulh@3-12-ftth.onsnetstudenten.nl] has quit [Quit: Lost terminal] 02:55:53 masm [~masm@bl16-182-101.dsl.telepac.pt] has joined #scheme 02:58:46 -!- lithpr [~user@cpe-204-210-208-155.neo.res.rr.com] has quit [Ping timeout: 255 seconds] 02:58:57 corruptmemory [~jim@ool-18bbd5b2.static.optonline.net] has joined #scheme 03:00:59 kilimanjaro [~kilimanja@unaffiliated/kilimanjaro] has joined #scheme 03:06:02 tronador_ [~guille@190.66.172.162] has joined #scheme 03:08:42 foocraft [~dsc@dyn-86-36-42-96.wv.qatar.cmu.edu] has joined #scheme 03:12:10 -!- masm [~masm@bl16-182-101.dsl.telepac.pt] has quit [Ping timeout: 240 seconds] 03:32:21 -!- tauntaun [~Antoninus@64.134.66.212] has quit [Quit: Ex-Chat] 03:32:59 -!- rageous [~Adium@user-38q461p.cable.mindspring.com] has quit [Quit: Leaving.] 03:42:16 tauntaun [~Antoninus@64.134.66.212] has joined #scheme 03:50:02 -!- tauntaun [~Antoninus@64.134.66.212] has quit [Ping timeout: 264 seconds] 03:52:40 timj_ [~timj@e176194111.adsl.alicedsl.de] has joined #scheme 03:56:22 -!- timj__ [~timj@e176193170.adsl.alicedsl.de] has quit [Ping timeout: 255 seconds] 04:01:37 aidalgol: I find the lack of strong static typing to be a major drawback for large projects. It's certainly possible to use scheme/lisp for them, but as the codebase gets larger, it becomes progressively harder to write correct and efficient code, and I'm not sure it's worth the effort, despite the elegance of scheme. 04:02:59 Obfuscate: Two options: 1. Typed Racket. 2. A typed language, like Haskell, OCaml, etc. Option 2 isn't Scheme, of course. 04:05:04 Well, neither is option one, imo. 04:05:14 :-P 04:05:16 option 3: write a typed scheme 04:05:17 hiyuh [~hiyuh@KD124214245222.ppp-bb.dion.ne.jp] has joined #scheme 04:05:22 Then again, I'm already a few months into implementing my own typed-scheme like language. 04:05:36 *rien* guessed it right 04:05:43 Hahahahaha. 04:05:53 Obfuscate: let's have a sneak peek 04:07:45 Maybe someone should write an SRFI for static typing, it seems to be mentioned a lot in here. :-P 04:07:51 cky: what does it mean when r5rs says "library syntax" to the right of something it is explaining? 04:08:38 Am I allowed to answer? Or only cky? :-P 04:08:48 fds: only you and cky :P 04:09:05 `To aid in understanding and implementing Scheme, some features are marked as "library". These can be easily implemented in terms of the other, primitive, features. They are redundant in the strict sense of the word, but they capture common patterns of usage, and are therefore provided as convenient abbreviations.' 04:10:02 oh so it's their way of saying "these you don't need to implement in the implementation language, they can be implemented on the scheme you're implementing" ? 04:11:13 why aren't they more explicit? e.g. "let can be implemented in terms of lambda lifting" 04:11:20 rien: It's superficially similar to scheme, except types/modes are done similarly to mercury via scope poisoning. 04:11:56 Obfuscate: I don't know those things around "via" so I guess I'll look them up :P 04:12:40 rien: Because they don't want to tell you how to implement them, just that you can. (I guess.) 04:13:02 fds: that's a bit mean :P 04:14:15 No. One could easily argue that's how standards should work. There are many other sources of information about implementation details. :-P 04:14:29 rien: If you haven't used mercury or prolog, it's worth taking some time to toy with them just for the change in mindset: prolog itself is only really useful for quick prototyping (it's really ill-suited for large projects, on a whole other level than scheme), but the time I spent working with it has really furthered my ability elsewhere. 04:15:38 I've only played with prolog for solving those logic puzzles. I've never heard of mercury 04:16:14 mercury is a prolog variant with typing and enforced argument modes. 04:16:26 rien: "Library syntax" are macros. "Syntax" are builtin special forms. 04:16:29 rien: :-P 04:17:16 cky: why doesn't it say how they are macros? 04:18:38 mye^ [~mye@dslb-088-070-019-232.pools.arcor-ip.net] has joined #scheme 04:18:55 rien: It does, in section 7.3. 04:19:13 cky: awesome then (not there yet :P) 04:19:18 :-P 04:20:16 Oh yes, good old `Derived expression types' 04:20:27 I failed to find that earlier 04:20:48 fds: :-P 04:21:47 -!- ^mye^ [~mye@dslb-088-070-029-014.pools.arcor-ip.net] has quit [Ping timeout: 240 seconds] 04:22:20 I should read through R5RS again, it's been a while and I've levelled up in Scheme several times since then. 04:22:51 fds: Yes, it's fun reading. Especially, you should look at section 7.2 with fresh eyes. 04:23:53 Ah, yeah. I basically skipped over 7.2 last time because it's quite intimidating :-P 04:24:36 I mean, I looked at all of the words, but my eyes were sort of glazed over. 04:27:14 fds: Back in 2004, when I was riding the train to attend a friend's wedding, I made myself actually grok that section. 04:27:38 fds: It was an enlightening experience, when I finally got it. 04:28:22 *rien* rushes and reads inattentively just to get to 7.2 04:28:34 *fds* nods 04:31:11 :-P 04:36:45 steshaw [~steshaw@220-245-107-64.static.tpgi.com.au] has joined #scheme 04:43:47 jcowan [~John@cpe-74-68-112-189.nyc.res.rr.com] has joined #scheme 04:44:47 christopher_ [~christoph@70-138-81-199.lightspeed.hstntx.sbcglobal.net] has joined #scheme 04:50:52 preyalone [81ae6164@gateway/web/freenode/ip.129.174.97.100] has joined #scheme 04:52:31 -!- bgs100 [~ian@unaffiliated/bgs100] has quit [Quit: Leaving] 04:53:30 hmm. r5rs says the part of define-syntax should be an instance of syntax-rules, but I've seen cases where it doesn't use syntax-rules 04:53:52 -!- tupi [~david@189.60.162.71] has quit [Quit: Leaving] 04:54:37 rien: To be portable, you should use syntax-rules. However, most implementations actually implement syntax-rules in terms of syntax-case, and you can use the latter. 04:54:57 what about chicken, that doesn't have syntax-case? 04:55:02 -!- pearle [~pearle@blk-224-181-222.eastlink.ca] has quit [Quit: Leaving] 04:55:14 I saw the code for the miscmacros egg and it's really different 04:55:24 it is able to define anaphoric-if 04:55:46 -!- christopher_ [~christoph@70-138-81-199.lightspeed.hstntx.sbcglobal.net] has quit [Ping timeout: 255 seconds] 04:55:59 rien: Let's see.... 04:56:17 How do I setup tab completion for Chicken Scheme? 04:56:17 preyalone, memo from pjb: the manual of clisp gives a reader macro to deal with #! 04:56:28 minion: Thanks 04:56:28 you're welcome 04:56:37 it goes: (define-syntax if* (lambda (f r c) (##sys#checksyntax ... 04:57:41 Oh wow. That looks like low-level macros. 04:57:45 I'm sure f stands for form... 04:58:03 Probably. "r" stands for "rename". 04:58:07 that looks like it need a CL-like defmacro :) 04:58:32 Notice how _every_ syntax and function used is renamed, including let and if. 04:58:44 rename? what does that mean? gensym? I don't see it used as gensym 04:59:05 -!- dnolen [~davidnole@184.152.69.75] has quit [Quit: dnolen] 04:59:09 annodomini [~lambda@c-65-96-220-241.hsd1.ma.comcast.net] has joined #scheme 04:59:09 -!- annodomini [~lambda@c-65-96-220-241.hsd1.ma.comcast.net] has quit [Changing host] 04:59:09 annodomini [~lambda@wikipedia/lambda] has joined #scheme 04:59:35 rien: Google for "explicit renaming". 04:59:35 -!- foocraft [~dsc@dyn-86-36-42-96.wv.qatar.cmu.edu] has quit [Ping timeout: 252 seconds] 04:59:53 The Wikipedia article even has an example using it. 05:00:12 ok. 05:00:13 There are many tutorials for setting up tab completion using Emacs/SLIME, but I'd like to use tab completion in csi. Any links? 05:00:33 preyalone: my csi works with tab completion after I install readline for it 05:00:51 rien: Explicit renaming gives you most flexibility, but you must fastidiously rename everything, or else you will lose hygiene. 05:01:11 cky: f r c = form rename compare :) 05:01:12 Well, syntax-case gives you a lot of flexibility too. It does so a different way to explicit renaming. 05:01:16 rien: Exactly. 05:01:34 rien: I guess there's an egg? 05:01:40 preyalone: yes. 05:01:49 preyalone: hold on 05:02:17 preyalone: http://wiki.call-cc.org/eggref/4/readline#installation-problems 05:02:43 Section 7.2 of the R5RS was originally written in Scheme. Then it was translated automatically by a program into dingbats, and tweaked to correct aesthetic concerns of the typography. 05:02:47 Syntax-case is widely used, and R6RS standardized on it. However, it now looks like R7RS will standardize on explicit renaming. 05:03:09 Riastradh: Wow, nice. 05:03:14 cky: I see now. so does r5rs specify that that must exist somehow? (low-level macros and breaking hygiene that easily) 05:03:33 I am very unsurprised. I find formal semantics in that style annoying, because it's obviously just an obfuscation of code. 05:03:42 rien: No, it doesn't. 05:03:50 This happened about two decades ago. Then about a decade ago, Anton van Straaten translated it by hand back into Scheme, at , if memory serves. 05:04:13 jcowan: so in some r5rs implementations it may be impossible to define anaphoric macros? 05:04:31 http://www.appsolutions.com/SchemeDS 05:05:11 Wow. 05:05:38 Quite so. But IMHO anaphoric for the sake of anaphoric is not interesting. You can rewrite (aif pred then else) as (iif it pred then else), and then it can be hygienic. 05:06:28 foocraft [~dsc@dyn-86-36-42-96.wv.qatar.cmu.edu] has joined #scheme 05:06:47 yeah zbigniew showed me that. hygiene is good but not being able to break it diminishes what can be accomplished with macros greatly. 05:06:48 If you look the least bit closely, perhaps with the aid of either of the Scheme versions, you'll see that the dingbats of Section 7.2 in the R5RS are really just the analyzing evaluator of SICP. 05:07:45 I don't see the value in hygiene for the sake of hygiene either 05:07:58 rien: Heresy! 05:08:07 rien: Thanks for the link. For me, even those two fixes don't help. It's probably because I installed MacPorts to ~/macports, not /opt/local. I modified the fixes to take this into account, but I still get compilation errors. 05:08:12 christopher_ [~christoph@c-98-201-58-105.hsd1.tx.comcast.net] has joined #scheme 05:08:26 preyalone: errors when compiling the egg? 05:08:28 rien, hygiene is necessary for macros to be compilable and composable. 05:08:39 rien: Yes 05:08:57 rien: http://pastebin.com/tGwR7Qq9 05:09:28 Riastradh: unhygienic macros may not be compileable? are they always not compileable? that by itself is a very good reason to like hygiene. to me it's important that scheme compiles. 05:10:37 preyalone: hmm, never seen that. my port is indeed in /opt/local... 05:10:55 put the path to your port in your PATH variable, maybe? 05:11:01 rien: I'd use /opt/local, but Homebrew hates when MacPorts is installed there. 05:11:17 preyalone: brew has a readline too, try that 05:11:19 Actually, syntax-rules macros are much more powerful than you think. There is a compiler from a substantial subset of Scheme to syntax-rules. 05:11:35 rien: "Formula already installed: /usr/local/Cellar/readline/6.1" 05:11:41 rien: Is that version too old? 05:12:00 And hygiene prevents your code from being bitten in the ass by the problem of names that are free in the macro definition but bound at the point of macro call. 05:12:11 jcowan: what Riastradh said is reason enough for me to prefer hygienic macros :) 05:12:39 preyalone: port uninstall readline && brew install readline 05:12:39 rien: The CS docs say v6.1 should be fine. 05:13:02 *jcowan* rather likes implicit renaming. 05:13:32 so the rnrs are concerned also with the compile-ability of scheme? 05:13:38 jcowan: Googling "site:trac.sacrideo.us explicit renaming" did not give anything useful. 05:13:47 Is there a discussion of why explicit renaming was chosen over syntax-case? 05:14:11 rien: Of course. 05:14:11 don't people hate syntax-case for some reason? 05:14:23 cky: that's good then. :) 05:14:47 rien: The standards documents do not explicitly talk about compilation but nothing in them should preclude a good compiler from doing its job. 05:16:28 I don't think SYNTAX-CASE is expressible as a macro in terms of, say, explicit renaming. SYNTAX-CASE extends the language more than adding an API like explicit renaming, by adding new types of denotations for names (pattern variables). 05:17:06 cky: gotcha 05:17:13 Consequently, the expansion process is mixed up with the language used to express macros, which makes them hard to understand independently, which in turn makes the whole system harder to understand. 05:18:10 it seems to me explicit renaming was the right choice then 05:19:00 rien: Explicit renaming seems simpler to understand but more hands-on; if you forget to rename, you've made your macro unhygienic. 05:19:14 syntax-case renames by default, and requires special action to withhold renaming. 05:19:23 Contrariwise, explicit renaming is a pain to use, and, as found in Scheme48 and Larceny (and perhaps other systems), insufficient for certain name-introducing macros to compose. 05:20:58 if r7rs is going to go with explict renaming then that means it will then be possible in every r7rs to write unhygienic macros? what of compilation then? 05:21:26 No, it will be an optional package. 05:21:29 (Also, the reference implementation for SYNTAX-CASE (psyntax) is unbelievably hairy and unnecessarily complicated; the reference implementation for explicit renaming (_Implementing Lexically Scoped Macros_, by Jonathan Rees in Lisp Pointers around 1993 or 1994) is very easy to understand and not circularly implemented.) 05:21:52 Implicit renaming is a simple layer over explicit renaming, but it may be too soon to standardize it. 05:21:54 jcowan: the low-level macros will be an optional package, you say? 05:22:04 Yes, part of the WG2 effort. 05:22:34 Riastradh: Re psyntax being unbelievably hairy: agree. 05:22:42 The WG voted on syntax-case, explicit-renaming, and syntactic-closures (not exclusively, separately) and voted e-r in and the others out. 05:22:44 jcowan: *nods* 05:22:47 ok. I take it that means syntax-rules will be available in wg1? 05:22:51 Yes. 05:22:52 Implicit renaming is not practically a simple layer over explicit renaming. 05:23:11 ...if `implicit renaming' is what I think it is. 05:23:12 jcowan: thanks :) 05:23:29 That said, implicit renaming -- if it is what I think it is -- is tantamount to syntactic closures. 05:23:38 http://bugs.call-cc.org/ticket/394 05:24:25 OK, that's not exactly what I thought it was. It's worse. 05:24:43 In particular, the `little overhead' it adds changes the order of growth of the macro expansion process's running time. 05:27:54 Riastradh: but it's optional and you can decide not to use it 05:27:56 preyalone_ [81ae6164@gateway/web/freenode/ip.129.174.97.100] has joined #scheme 05:27:57 Hmm, this doesn't sound like a huge win for R7RS. 05:28:00 I like the idea 05:28:33 But, not including hygeinic macros at all in the standard? That sounds.. unfortunate to me. 05:28:50 (Unless I missed something, just reading up now.) 05:29:20 -!- preyalone [81ae6164@gateway/web/freenode/ip.129.174.97.100] has quit [Ping timeout: 245 seconds] 05:29:44 nome [~user@c-98-249-30-223.hsd1.va.comcast.net] has joined #scheme 05:31:02 I guess that means that people who care will just continue using the current syntax-case stuff (from R6RS?) 05:31:16 Explicit renaming is a hygienic macro system, fds. 05:31:33 Oh, okay. 05:31:40 rien: I uninstalled MacPorts readline, reinstalled Homebrew readline, modified the fixes to point to Homebrew readline libs, and I still get the compilation errors. I really wish csi was built with readline support. 05:32:00 why didn't the wg vote on implicit renaming? 05:32:43 preyalone_: same compilation errors? 05:32:53 By the way, jcowan, when you say that the working group voted explicit renaming in and the others out, was `explicit renaming' exactly what is found in Scheme48 and Larceny, or does it include the extra procedure necessary to make name-introducing macros composable? 05:32:55 I was judging from `if you forget to rename, you've made your macro unhygienic.' That doesn't fit my mental model of a hygeinic macro system. 05:33:06 rien: Yep. 05:33:14 Riastradh: They were not specific. 05:33:28 The current implementation of implicit renaming in Chicken is O(n^2) in the size of the source. 05:33:34 preyalone_: :/ 05:33:37 Damn, s/hygeine/hygiene/ ; I always do that. 05:33:39 Yes, it is. 05:34:03 As I say, standardizing it is premature. I just like it a lot. 05:35:01 Currently, WG2 has mostly not voted on specifics. 05:35:02 foof: isn't it O(n^2) just once? or is it for every use of that same macro? 05:35:26 plus there are no macros in execution time, right? so that only matters for compile time? 05:35:54 Yes, *if* you are using a compiler. If your program is a script, costs like that are expensive. 05:36:08 rien: Well, it's roughly O(n*d) where n is the size of the source and d is the number of nested IR macros you use. 05:36:31 In general, d is proportional to n. 05:37:20 okay, I understand. I'm still new to the scheme world but it seems they put more value on compilation than interpreting, e.g. chicken has a slow interpreter but having a good interpreter is not part of its goals. 05:38:07 (By the way, you folks all realize that implicit renaming is a rehashing of the original hygienic macro system described by Eugene Kohlbecker back in 1986, and that the Indiana and PLT crowds probably find this whole business of arguing over implicit/explicit renaming to be pretty ridiculous and backwards, right?) 05:38:14 Compilation speed matters. 05:39:36 agreed. 05:39:47 rien: From the compilation errors, it looks like CSC_OPTIONS and LIBRARY_PATH do nothing to inform chicken-install where readline is located. 05:39:54 jcowan: I still don't know what's the best behavior in your noodle/foodle example, but in the presense of overwhelming consensus I changed chibi to agree with the others. 05:40:22 preyalone_: try some brute force attempts, like moving readline to where chicken expects it to be 05:40:24 What's this about the noodle incident? I'm innocent, I tell you; I was framed!! 05:40:28 It's a lot more transparent. 05:40:43 I don't necessarily think it's worth standarding. In particular, doing so would forbid the hyper-dynamic repls some people want. 05:41:02 You are indeed innocent, Riastradh. The guilty parties are foof, Andrew "Tom" Wingo, and of course SCM. 05:41:40 ... and I also changed it in large part not to be associated with those impls. 05:42:13 Riastradh: That was my gut feeling. What's the Right Thing then? Syntax-case? 05:42:33 rien: No dice. 05:42:55 Tools are but tools. 05:43:12 The right thing? Probably something like the SYNTAX-GRAMMAR (was that its name?) that Ryan Culpepper and a couple others did about a year ago. 05:43:15 I'll have to check later, but I suspect almost every impl leaks memory with repl syntax redefinitions. 05:43:32 syntax-grammer looked nice. 05:43:34 Why? 05:43:35 syntax-parse 05:43:35 What's the issue, foof? 05:43:50 What's this noodle foodle? 05:44:28 Riastradh: In brief, noodle calls foodle. What happens when foodle is redefined to be a syntax keyword and noodle is left alone? 05:45:16 The memory leak issue is in: http://groups.google.com/group/scheme-reports-wg1/msg/201bb3574d0ae98e 05:45:36 You mean (define (noodle x) (foodle x)) in one input, and (define-syntax foodle (syntax-rules () ((foodle x) 'x))) in the next, so that on the third input, (noodle 0) gives the symbol X? 05:45:49 Yes, except it does not. 05:46:04 Noodle continues to give an error in all Schemes. 05:46:17 preyalone_: if you keep getting the same error then it seems chicken is not picking up on the changes you're making. I suspect it would throw the same error even if you uninstalled all your readlines from both ports and brew 05:46:21 (define (noodle) (foodle)) 05:46:22 Riastradh: No, it's not about the f word. 05:46:26 (define (foodle) 23) 05:46:36 (noodle) => 23 05:46:45 (define-syntax foodle (syntax-rules () ((foodle) 17))) 05:46:54 (noodle) => 23 on all Schemes except a few. 05:46:59 rien: Yep. Did just that. 05:47:29 On Chibi (until now), Guile 2.0, and one other (I forget which; not SCM) (noodle) throws an error. 05:47:30 preyalone_: see? :) 05:47:58 jcowan: And on Gauche. 05:48:15 Why is rename in explicit renaming a function and not a macro? 05:48:16 rien: I'll ask Homebrew for help, though they absolutely hate to help anyone. 05:48:16 preyalone_: you gotta find out what readline it thinks is the right one (that is giving those errors) and delete that, and put the right readline there :) 05:48:35 chrissbx: It's a parameter to your transformer function. 05:48:43 chrissbx: You can't pass macros as arguments. 05:48:49 Why make it a macro, chrissbx? 05:48:52 -!- corruptmemory [~jim@ool-18bbd5b2.static.optonline.net] has quit [Ping timeout: 255 seconds] 05:49:17 cky: yes, but why not define the macro statically? Because, the identifiers you want to rename come from the scope of the macro definition, 05:49:18 Anyway, why would syntax redefinitions leak memory, foof? 05:49:37 jcowan: Read my message. 05:49:38 and the scope of the macro definition is static, so it could as well be evaluated at compile time, hence, a macro would work. 05:50:01 Riastradh: because it would save typing the quote :) 05:50:40 I'd rather see something equivalent to with-gensyms, i.e. (with-renames (let if do) 05:51:05 There exist uses of the renaming procedure that do not admit a straightforward implementation as an auto-quoting special operator, chrissbx. In order for an auto-quoting special operator to suffice for the purpose, then, it is necessary to show that every one of these uses has no practical merit. 05:51:16 Can you show that? 05:52:03 Riastradh: what sense would it make for an argument to be fed to rename if it's not describing the scope of the macro definition? 05:52:20 (rename (symbol-append foo '- bar)) 05:52:21 foof: Okay, done. I don't know what I screwed up in testing Gauche, possibly I typed mosh instead of gosh. 05:52:25 -!- tronador_ [~guille@190.66.172.162] has quit [Quit: tronador_] 05:53:23 Riastradh: where would foo and bar come from? 05:53:42 foof: I understand *that* your example leaks memory in Chicken and Gambit, but not why. 05:54:17 Inputs to the macro, perhaps, chrissbx. That, or perhaps it is expedient to express the macro in terms of auxiliary routines that generate the parts to the symbols -- perhaps there is a cartesian product involved. 05:54:25 jcowan: Because, as I said, they have to push a new cell in order to preserve the old cell. 05:55:00 So the old env cell is forever in the chain, unaccessible to new definitions, but unreclaimable even if all old definitions are removed. 05:55:09 preyalone_: gtg. good luck! 05:55:16 rien: Thanks 05:55:27 -!- preyalone_ [81ae6164@gateway/web/freenode/ip.129.174.97.100] has quit [Quit: Page closed] 05:55:29 :) 05:55:56 Riastradh: the inputs must always take into account that the result must exist; hence they depend on the definition of the scope (module) where it's going to be used. Hence I don't see why they can be something else than statically determined by the program in that scope. 05:56:11 What chibi does now is push a new cell, then splice the individual old cell out of the env chain, so that existing references to it are still valid but if all references are gone it can be reclaimed. 05:56:16 Riastradh: Not sure what you mean with the cartesian product. 05:57:03 (define (generate-names) (for-each-element-of-cartesian-product '(a b c) '(d e f) (lambda (x y) (rename (symbol-append x y))))) 05:57:14 chrissbx: Think: {foo,bar,baz,qux}-{foo,bar,baz,qux} (in shell glob syntax). 05:57:20 chrissbx: That generates 16 results. 05:57:27 yeah ok, hm 05:57:41 weird 05:57:52 Ah yes, it was only Chibi and Guile. I was thinking of the reverse case, define-syntax+define, where there are three criminals against nature: Bigloo, Chicken, and Scheme 9. 05:58:08 (where + means "followed by") 05:59:18 saccade [~saccade@74-95-7-186-SFBA.hfc.comcastbusiness.net] has joined #scheme 05:59:57 Time for bed. 06:00:14 Riastradh: those could be pre-produced by a macro 06:00:21 Or no, Chibi had a bug (now fixed), so the list was Chicken, Bigloo, STklos weird and Scheme 9 broken. 06:00:49 By weird I mean that in those three a name can have a value and be a syntax keyword simultaneously. 06:01:27 i.e. a macro that evaluates the cartesian product and outputs the list of results inside the rename macro form. 06:01:48 But I'll keep it in mind for further thinking. Thanks Riastradh, good night 06:01:59 chrissbx: I think it's a demonstration of why "omitting the quote" is not always a neat idea. 06:02:01 Hmmm... in tickets #28 and #29 PortsCowan wins the vote but doesn't have a simple majority over "undecided". 06:02:19 Caleb-- [thedude@bzq-79-176-206-190.red.bezeqint.net] has joined #scheme 06:02:30 cky: I'm not convinced, as I've shown 06:02:55 "Undecided" should be treated as an abstention from voting: it's not synonymous with "no". 06:02:56 cky: the problem is really that when you can create references to code in static scope that it can fail; 06:03:34 cky: and maybe more than the possibility for failure on the hands of the programmer, it seems to me this is opening a can of worms for the implementation of explicit renaming systems. 06:03:49 Undecided is *specifically not* an abstention! That was the purpose of it. It means those members want to discuss it more. 06:04:03 You abstain by leaving your preferences blank. 06:04:09 Oh, okay. Bump it to ballot 3, then. 06:04:54 cky: It just seems unclean, it crosses evaluation boundaries; like, a system that should help crossing evaluation boundaries safely itself is requiring crossing such boundaries unsafely :) 06:05:19 chrissbx: Inevitably so. The whole point of such systems is to hide the dirt where you can't see it. 06:05:30 why inevitably? 06:05:54 (My concern is that it just shifts it) 06:05:59 (and wouldn't need to) 06:06:18 -!- MrFahrenheit [~RageOfTho@users-151-109.vinet.ba] has quit [Ping timeout: 276 seconds] 06:06:19 Yes, but it shifts it where *you* don't have to deal with it, just as writing in Scheme shifts the problem of writing machine language where you don't have to see it. 06:06:19 nilg [~user@77.70.2.229] has joined #scheme 06:06:29 As I said, I'll have to think more about the practicability to do those cross products etc. at compile time. 06:07:10 jcowan: Yes, I'll have to. The resolution at the end of ballot 3 will be: if it wins the ranked-pairs vote against undecided, then even without a simple majority we'll keep it. 06:07:21 But if undecided wins outright we use the default. 06:07:21 jcowan: but why. It would shift it anyway but without doing the renaming at expansion time 06:07:31 -!- blueadept [~blueadept@unaffiliated/blueadept] has quit [Quit: Leaving] 06:07:42 chrissbx: Sorry, I've lost track of the context. 06:08:21 Which means, if this were the last ballot, we'd be keeping it, so I'm wondering if I should write it up to get the communities response. 06:08:34 dralston [~dralston@S0106687f74a12729.va.shawcable.net] has joined #scheme 06:08:40 jcowan: what I'm saying is, we've got an identifier like |let|, now it can't be used as this symbol but needs to renamed to really point to what you mean, and the rename function does this, it assumes that you mean |let| in the scope of the macro definition (correct?). 06:08:52 Yes. 06:09:20 jcowan: what I'm saying is that this referencing isn't something you need to do when the macro expander runs, but something that is static, it can be done when the expander is compiled. 06:09:44 cfy [~cfy@unaffiliated/chenfengyuan] has joined #scheme 06:09:48 jcowan: now Riastradh gave me the example where you would like to refer to multiple identifiers in your current scope programmatically; 06:10:15 which is fine, but for that (dealing with source code) you usually use a macro. 06:10:45 -!- dralston [~dralston@S0106687f74a12729.va.shawcable.net] has left #scheme 06:11:02 You can't make any assumptions about what the macro will or will not do when it executes, because (in e-r) it's in plain Scheme. 06:11:32 If you know the macro is just one big backquote, then you could do something like what you suggest. But it does not have to be. 06:12:01 Like, you want to output foo-a, foo-b, foo-c from your macro, and all of these are already existing in the current scope (we're not talking about introducing them newly into the user's program). 06:12:17 As well as bar-a, bar-b, bar-c. So you want that cross product. 06:13:10 What I'm proposing is to write a macro that evaluates the cross product and inserts the list of all 6 above identifiers into the macro expander (each of them wrapped in my proposed rename-as-a-macro form). 06:13:33 You can write it as an ordinary function to run at macroexpansion time. Much easier. 06:13:35 I have to think whether that can always work. 06:14:07 The point about low-level macros is precisely that they cross levels. If you are not crossing a level, just write plain Scheme. 06:14:17 -!- jonrafkind [~jon@jonr5.dsl.xmission.com] has quit [Ping timeout: 250 seconds] 06:14:35 It may look easier and innocent, but doesn't it seem to be weird that the renaming function needs to know about the compile time scope of the expander at runtime? 06:14:38 http://tinyurl.com/wg2-ballot is the list of what WG2 voted for. 06:15:34 (if anyone on the channel still cares). 06:15:59 Well, first of all, what do you mean by "runtime"? Macros by definition run at compile time, or at any rate before the *true* run time. 06:16:18 That is, if noodle invokes foodle, then when noodle is compiled, foodle runs within the compiler. 06:16:30 (noodle is a procedure, foodle a syntax keyword) 06:16:30 I'm talking about the runtime of the macro expander 06:16:37 jcowan: Apparently I need to request permission to view that page. 06:16:47 Sorry, that's the insider link. 06:17:40 -!- Caleb-- [thedude@bzq-79-176-206-190.red.bezeqint.net] has quit [Ping timeout: 252 seconds] 06:17:43 versus its compiletime. When the macro expander runs, rename needs not only to know the user program compile time context, but also the expander's compile time context. 06:18:13 Is there anywhere else that I can see it? It's not terribly important, but I thought I'd prove that someone here still cared. :-) 06:18:17 https://spreadsheets.google.com/pub?key=0Ar8UUpsyGZ0wdEtoMy0ta1piRDcwZUVQZ29wbk8yNEE&output=html 06:18:18 http://tinyurl.com/6jmbjof 06:18:30 Ah, thanks 06:22:25 -!- nilg [~user@77.70.2.229] has quit [Read error: Connection reset by peer] 06:27:49 -!- christopher_ [~christoph@c-98-201-58-105.hsd1.tx.comcast.net] has quit [Ping timeout: 246 seconds] 06:27:53 christopher__ [~christoph@c-98-201-58-105.hsd1.tx.comcast.net] has joined #scheme 06:30:32 -!- jcowan [~John@cpe-74-68-112-189.nyc.res.rr.com] has quit [Quit: Leaving] 06:32:22 evhan [~evhan@209.242.237.5] has joined #scheme 06:34:46 -!- evhan_ [~evhan@209.242.237.5] has quit [Ping timeout: 255 seconds] 06:41:01 -!- saccade [~saccade@74-95-7-186-SFBA.hfc.comcastbusiness.net] has quit [Quit: This computer has gone to sleep] 06:45:56 nilg [~user@77.70.2.229] has joined #scheme 06:48:43 Caleb-- [thedude@bzq-79-176-206-190.red.bezeqint.net] has joined #scheme 06:58:31 nilg` [~user@77.70.2.229] has joined #scheme 06:59:35 -!- annodomini [~lambda@wikipedia/lambda] has quit [Quit: annodomini] 06:59:37 -!- nilg` [~user@77.70.2.229] has quit [Remote host closed the connection] 07:00:29 -!- nilg [~user@77.70.2.229] has quit [Remote host closed the connection] 07:06:17 nilg [~user@77.70.2.229] has joined #scheme 07:12:47 -!- kilimanjaro [~kilimanja@unaffiliated/kilimanjaro] has quit [Ping timeout: 250 seconds] 07:13:07 jewel [~jewel@196-215-16-243.dynamic.isadsl.co.za] has joined #scheme 07:16:43 -!- antoszka [~antoszka@unaffiliated/antoszka] has quit [Ping timeout: 260 seconds] 07:18:32 saccade [~saccade@74-95-7-186-SFBA.hfc.comcastbusiness.net] has joined #scheme 07:24:08 antoszka [~antoszka@unaffiliated/antoszka] has joined #scheme 07:39:59 -!- saccade [~saccade@74-95-7-186-SFBA.hfc.comcastbusiness.net] has quit [Read error: Connection reset by peer] 07:45:06 evhan_ [~evhan@209.242.237.5] has joined #scheme 07:48:08 -!- evhan [~evhan@209.242.237.5] has quit [Ping timeout: 255 seconds] 07:49:47 -!- christopher__ [~christoph@c-98-201-58-105.hsd1.tx.comcast.net] has quit [Ping timeout: 248 seconds] 07:50:11 -!- steshaw [~steshaw@220-245-107-64.static.tpgi.com.au] has quit [Quit: steshaw] 07:52:39 -!- evhan_ [~evhan@209.242.237.5] has quit [Quit: leaving] 07:58:01 myu2 [~myu2@x108121.dynamic.ppp.asahi-net.or.jp] has joined #scheme 08:07:14 -!- vu3rdd [~vu3rdd@fsf/member/vu3rdd] has quit [Remote host closed the connection] 08:10:30 nilg` [~user@77.70.2.229] has joined #scheme 08:21:51 -!- nilg` [~user@77.70.2.229] has quit [Remote host closed the connection] 08:27:18 -!- futilius [~otheruser@2001:470:d:128:216:3eff:fe86:c70e] has quit [Ping timeout: 260 seconds] 08:30:48 -!- kanru [~kanru@kanru-1-pt.tunnel.tserv15.lax1.ipv6.he.net] has quit [Ping timeout: 260 seconds] 08:39:13 femtoo [~femto@95-89-198-8-dynip.superkabel.de] has joined #scheme 08:53:59 steshaw [~steshaw@60-240-111-207.tpgi.com.au] has joined #scheme 09:09:40 taylanuc [~taylanub@p4FD938E2.dip.t-dialin.net] has joined #scheme 09:13:30 -!- taylanub [~taylanub@p4FD93FDC.dip.t-dialin.net] has quit [Ping timeout: 276 seconds] 09:23:05 -!- jewel [~jewel@196-215-16-243.dynamic.isadsl.co.za] has quit [Ping timeout: 255 seconds] 09:23:08 -!- gnomon [~gnomon@CPE0022158a8221-CM000f9f776f96.cpe.net.cable.rogers.com] has quit [Ping timeout: 276 seconds] 09:23:48 gnomon [~gnomon@CPE0022158a8221-CM000f9f776f96.cpe.net.cable.rogers.com] has joined #scheme 09:25:55 -!- taylanuc is now known as taylanub 09:36:03 femtooo [~femto@95-89-198-8-dynip.superkabel.de] has joined #scheme 09:39:17 -!- femtoo [~femto@95-89-198-8-dynip.superkabel.de] has quit [Ping timeout: 255 seconds] 09:39:42 femtoo [~femto@95-89-198-8-dynip.superkabel.de] has joined #scheme 09:40:40 josephholsten [~josephhol@ip70-185-215-221.ok.ok.cox.net] has joined #scheme 09:42:26 -!- femtooo [~femto@95-89-198-8-dynip.superkabel.de] has quit [Ping timeout: 255 seconds] 09:46:23 Gmind [~Nevermind@113.190.174.110] has joined #scheme 09:46:43 -!- homie [~levgue@xdsl-78-35-152-209.netcologne.de] has quit [Read error: Connection reset by peer] 09:47:05 -!- Gmind [~Nevermind@113.190.174.110] has quit [Client Quit] 09:48:03 homie [~levgue@xdsl-84-44-211-90.netcologne.de] has joined #scheme 09:48:43 -!- homie [~levgue@xdsl-84-44-211-90.netcologne.de] has quit [Remote host closed the connection] 09:53:38 homie [~levgue@xdsl-84-44-211-90.netcologne.de] has joined #scheme 09:54:11 wingo [~wingo@90.164.198.39] has joined #scheme 09:57:45 z0d [~z0d@artifact.hu] has joined #scheme 09:57:45 -!- z0d [~z0d@artifact.hu] has quit [Changing host] 09:57:45 z0d [~z0d@unaffiliated/z0d] has joined #scheme 10:00:07 lithpr [~user@cpe-204-210-208-155.neo.res.rr.com] has joined #scheme 10:01:03 Gmind [~Nevermind@113.190.174.110] has joined #scheme 10:02:33 -!- Gmind [~Nevermind@113.190.174.110] has quit [Client Quit] 10:04:58 femtooo [~femto@95-89-198-8-dynip.superkabel.de] has joined #scheme 10:08:18 -!- femtoo [~femto@95-89-198-8-dynip.superkabel.de] has quit [Ping timeout: 246 seconds] 10:16:48 jake [~user@cpe-204-210-208-155.neo.res.rr.com] has joined #scheme 10:18:10 -!- jake [~user@cpe-204-210-208-155.neo.res.rr.com] has left #scheme 10:20:55 -!- lithpr [~user@cpe-204-210-208-155.neo.res.rr.com] has quit [Remote host closed the connection] 10:22:02 lithpr [~user@cpe-204-210-208-155.neo.res.rr.com] has joined #scheme 10:25:59 -!- nilg [~user@77.70.2.229] has quit [Read error: Connection reset by peer] 10:50:46 -!- lithpr [~user@cpe-204-210-208-155.neo.res.rr.com] has quit [Remote host closed the connection] 10:55:17 lithpr [~user@cpe-204-210-208-155.neo.res.rr.com] has joined #scheme 10:57:16 kanru [~kanru@kanru-1-pt.tunnel.tserv15.lax1.ipv6.he.net] has joined #scheme 10:59:51 -!- josephholsten [~josephhol@ip70-185-215-221.ok.ok.cox.net] has quit [Quit: josephholsten] 11:03:14 josephholsten [~josephhol@ip70-185-215-221.ok.ok.cox.net] has joined #scheme 11:03:38 nilg [~user@77.70.2.229] has joined #scheme 11:15:37 shows what I know, this is the first I have heard of wg3 11:20:05 -!- nilg [~user@77.70.2.229] has quit [Ping timeout: 255 seconds] 11:21:58 nilg [~user@77.70.2.229] has joined #scheme 11:28:57 Gmind [~Nevermind@113.190.195.57] has joined #scheme 11:31:11 -!- wingo [~wingo@90.164.198.39] has quit [Ping timeout: 276 seconds] 11:43:30 -!- nilg [~user@77.70.2.229] has quit [Remote host closed the connection] 11:45:14 gum [~bubblegum@pool-108-1-63-147.chi01.dsl-w.verizon.net] has joined #scheme 11:47:27 -!- gum [~bubblegum@pool-108-1-63-147.chi01.dsl-w.verizon.net] has quit [Quit: Leaving] 11:47:38 _reid [~reid@pool-108-1-63-147.chi01.dsl-w.verizon.net] has joined #scheme 12:00:56 -!- steshaw [~steshaw@60-240-111-207.tpgi.com.au] has quit [Read error: Connection reset by peer] 12:01:57 lbc [~quassel@1908ds1-aboes.0.fullrate.dk] has joined #scheme 12:21:41 -!- Gmind [~Nevermind@113.190.195.57] has quit [Quit: Leaving.] 12:29:06 -!- josephholsten [~josephhol@ip70-185-215-221.ok.ok.cox.net] has quit [Quit: josephholsten] 12:30:09 gravicappa [~gravicapp@ppp91-77-165-168.pppoe.mtu-net.ru] has joined #scheme 12:36:13 Zol [~Zolomon@li152-84.members.linode.com] has joined #scheme 12:36:29 -!- Zol [~Zolomon@li152-84.members.linode.com] has quit [Client Quit] 12:37:29 Zol [~Zolomon@li152-84.members.linode.com] has joined #scheme 12:54:48 rageous [~Adium@user-38q461p.cable.mindspring.com] has joined #scheme 12:55:54 -!- rageous [~Adium@user-38q461p.cable.mindspring.com] has quit [Read error: Connection reset by peer] 12:55:55 rageous1 [~Adium@user-38q461p.cable.mindspring.com] has joined #scheme 13:02:18 Gmind [~Nevermind@113.190.181.143] has joined #scheme 13:05:51 -!- rageous1 [~Adium@user-38q461p.cable.mindspring.com] has quit [Quit: Leaving.] 13:07:59 tauntaun [~Antoninus@64.134.66.212] has joined #scheme 13:19:48 corruptmemory [~jim@ool-18bbd5b2.static.optonline.net] has joined #scheme 13:29:58 masm [~masm@bl16-182-101.dsl.telepac.pt] has joined #scheme 13:31:44 -!- ijp [~user@host109-154-208-169.range109-154.btcentralplus.com] has quit [Quit: ERC Version 5.3 (IRC client for Emacs)] 13:59:52 -!- mario-goulart [~user@67.205.85.241] has quit [Read error: Operation timed out] 14:00:09 mario-goulart [~user@67.205.85.241] has joined #scheme 14:00:28 gok12 [5dadb8a6@gateway/web/freenode/ip.93.173.184.166] has joined #scheme 14:02:15 -!- gok12 [5dadb8a6@gateway/web/freenode/ip.93.173.184.166] has quit [Client Quit] 14:02:48 -!- leppie [~lolcow@196-210-170-60.dynamic.isadsl.co.za] has quit [] 14:07:05 leppie [~lolcow@196-210-170-60.dynamic.isadsl.co.za] has joined #scheme 14:15:51 -!- lbc [~quassel@1908ds1-aboes.0.fullrate.dk] has quit [Remote host closed the connection] 14:17:42 lbc [~quassel@1908ds1-aboes.0.fullrate.dk] has joined #scheme 14:27:59 -!- cfy is now known as hymnusalae1 14:30:44 bgs100 [~ian@unaffiliated/bgs100] has joined #scheme 14:34:21 -!- hymnusalae1 [~cfy@unaffiliated/chenfengyuan] has quit [Ping timeout: 250 seconds] 14:37:58 -!- foocraft [~dsc@dyn-86-36-42-96.wv.qatar.cmu.edu] has quit [Quit: Leaving] 14:38:19 -!- rpg [~rpg@216.243.156.16.real-time.com] has quit [Ping timeout: 248 seconds] 14:45:15 dnolen [~davidnole@184.152.69.75] has joined #scheme 14:54:37 tupi [~david@189.60.162.71] has joined #scheme 14:55:44 MrFahrenheit [~RageOfTho@users-151-109.vinet.ba] has joined #scheme 14:57:14 Teeko [~Teeko@184.Red-83-49-132.dynamicIP.rima-tde.net] has joined #scheme 15:14:15 -!- xwl [~user@114.241.240.139] has quit [Ping timeout: 276 seconds] 15:40:25 -!- Gmind [~Nevermind@113.190.181.143] has quit [Read error: Connection reset by peer] 15:42:27 -!- _reid [~reid@pool-108-1-63-147.chi01.dsl-w.verizon.net] has quit [Ping timeout: 255 seconds] 15:54:26 choas [~lars@p548B6AA0.dip.t-dialin.net] has joined #scheme 15:55:22 -!- tauntaun [~Antoninus@64.134.66.212] has quit [Quit: Ex-Chat] 15:55:26 jewel [~jewel@196-215-16-243.dynamic.isadsl.co.za] has joined #scheme 15:55:39 tauntaun [~icarus@64.134.66.212] has joined #scheme 16:02:12 nilg [~user@77.70.2.229] has joined #scheme 16:11:49 paulh_ [~paulh@3-12-ftth.onsnetstudenten.nl] has joined #scheme 16:16:21 Intensity [lTPZzKoqIN@unaffiliated/intensity] has joined #scheme 16:22:54 drdo [~user@91.205.108.93.rev.vodafone.pt] has joined #scheme 16:26:58 kilimanjaro [~kilimanja@unaffiliated/kilimanjaro] has joined #scheme 16:27:16 -!- drdo [~user@91.205.108.93.rev.vodafone.pt] has quit [Remote host closed the connection] 16:27:59 -!- dnolen [~davidnole@184.152.69.75] has quit [Quit: dnolen] 16:28:09 drdo [~user@91.205.108.93.rev.vodafone.pt] has joined #scheme 16:32:24 -!- kilimanjaro [~kilimanja@unaffiliated/kilimanjaro] has quit [Ping timeout: 240 seconds] 16:33:03 christopher__ [~christoph@c-98-201-58-105.hsd1.tx.comcast.net] has joined #scheme 16:33:28 tronador_ [~guille@190.66.170.123] has joined #scheme 16:36:12 -!- hiyuh [~hiyuh@KD124214245222.ppp-bb.dion.ne.jp] has quit [Quit: Leaving.] 16:37:36 jonrafkind [~jon@jonr5.dsl.xmission.com] has joined #scheme 16:40:47 annodomini [~lambda@c-65-96-220-241.hsd1.ma.comcast.net] has joined #scheme 16:40:48 -!- annodomini [~lambda@c-65-96-220-241.hsd1.ma.comcast.net] has quit [Changing host] 16:40:48 annodomini [~lambda@wikipedia/lambda] has joined #scheme 16:43:19 chrissbx, here's another example: (define-syntax ref-variable (er-macro-transformer (lambda (e r c) (rename (symbol-append 'EDWIN-VARIABLE$ (cadr e)))))). This isn't exactly what REF-VARIABLE does in Edwin. But it's similar. 16:46:03 unbound identifier: rename 16:46:48 s/rename/r/1 16:46:56 ;-) 16:56:40 hrmm, how would you write an anonymous factorial function? my head is about to explode 16:57:24 Like this: (lambda (n) (define (factorial n) (if (< n 2) 1 (* n (factorial (- n 1))))) (factorial n)) 16:57:46 that's not really anonymous, is it ? 16:57:54 Well, gee, I dunno, what does `anonymous' mean? 16:58:00 no names used 16:58:03 pure lambda 16:58:05 taylanub: It doesn't introduce any top-level bindings. 16:58:15 taylanub: The inner define is just syntactic sugar for letrec. 16:58:29 taylanub: Now, if you want to do a no-letrec approach, then you can use the Y combinator. 16:58:29 No names!? But if I use lambda, I have to give a name to the parameter. 16:58:56 (Contrariwise, cky, LETREC is often syntactic sugar for internal DEFINE. `Equivalent to' is more accurate than `just syntactic sugar for'.) 16:58:57 well, no names with lambdas assigned to them 16:59:07 Riastradh: Ah, fair enough. 16:59:13 taylanub, hmm, so what if I write ((lambda (f) ...) (lambda ...))? Is that not allowed either? 16:59:14 taylanub: That's crazy talk. 16:59:25 Riastradh: that is 16:59:38 taylanub: That assigned lambda to the name "f". 16:59:42 Hmm, OK, so you're OK using ((lambda (f) (f f)) (lambda ...)), then. 16:59:59 In that case, you should be all set to fill in the ellipsis and solve your problem! 17:00:04 cky: is that the same as letrec ? 17:00:13 taylanub: Not necessarily. 17:00:14 ((lambda (f) (lambda (x) (if (zero? x) 1 (* ((f f) (- x 1)))))) (lambda (f) (lambda (x) (if (zero? x) 1 (* ((f f) (- x 1))))))) 17:00:33 Meanwhile, I'm going to get a delicious baguette (I hope it's not too late in the morning) and have lunch. 17:00:36 DT``, don't spoil it! 17:00:44 cky: well i think what i meant is just "pure lambda calculus" and not "no names lambdas" 17:00:47 named* 17:01:10 -!- femtooo [~femto@95-89-198-8-dynip.superkabel.de] has quit [Read error: Connection reset by peer] 17:01:10 taylanub, perhaps what you want to avoid is recursive bindings, i.e. LETREC or definitions. 17:01:12 taylanub: Then you should definitely read up on "fixed point combinator". 17:01:43 -!- tronador_ [~guille@190.66.170.123] has quit [Quit: tronador_] 17:01:49 indeed, i should read some more on lambda calculus... 17:02:15 taylanub, anyway, here's a hint: ((lambda (f) (f f)) (lambda (g) (g g))) is an infinite loop, and ((lambda (f) (f f)) (lambda (g) (lambda () ((g g))))) yields a nullary procedure that when called goes into an infinite loop. 17:02:21 Baguette time! 17:02:24 it's ok that DT spoils it, i really couldn't figure it out myself :P 17:02:27 :-D 17:02:48 thanks all, lemme soak this up now 17:02:50 (You can figure it out!) 17:04:00 taylanub: Read this: http://www.ccs.neu.edu/home/matthias/BTLS/sample.ps (but do it slowly) 17:05:13 taylanub: Take a breather whenever you feel the pace is too fast for you. 17:05:32 It is a roller-coaster of a chapter, but it's a lot of fun. 17:08:12 rageous [~Adium@user-38q461p.cable.mindspring.com] has joined #scheme 17:08:18 taylanub, http://paste.lisp.org/display/120250 17:08:58 DT``: what the fuck am i reading 17:09:29 factorial in "(almost) pure lambda calculus". 17:10:00 are you serious ? 17:10:11 I think. I don't remember if I used church numerals or got bored and used natural numbers. 17:10:32 taylanub, you can try it. 17:10:41 it's even tail-recursive. 17:11:19 (we really need a obfuscated scheme code contest) 17:11:29 what you literally posted returned "#:26:0 (lambda)>" O_O 17:11:54 but sub1 is unbound it says 17:12:00 taylanub: That's because of church numerals. 17:12:08 (define (sub1 x) (- x 1)) 17:12:11 taylanub: You're using Guile, right? Use 1- instead of sub1. 17:12:18 sorry, sub1 it's a racket thing. 17:12:30 and (define (add1 x) (+ x 1)) 17:12:33 and chicken 17:12:35 or 1+, or whatever. 17:12:41 Yep, 1+. :-) 17:12:45 ok 17:13:21 -!- rageous [~Adium@user-38q461p.cable.mindspring.com] has quit [Quit: Leaving.] 17:13:28 now that I think about it, I think Riastradh was having me on yesterday. surely anaphoric macros are compileable since no matter what a macro does it does so before compile time? 17:14:09 DT``: it ... works 17:14:11 rien: The point isn't that anaphoric macros are not compilable, but that uncontrolled unhygiene makes macros not compilable. 17:14:24 isn't it beautiful, taylanub? 17:14:45 it is. but i would've expected that it expects input in the form of church numerals 17:15:09 tronador_ [~guille@190.66.170.123] has joined #scheme 17:15:17 rien: Because then all variable bindings are resolved based on the point of call, rather than the point of definition. 17:15:19 and is there a sanely whitespaced version or so of this ? or was it auto-generated somehow ? 17:15:56 taylanub, it uses natural numbers because I got bored of fail at implementing church nums' sub1. 17:16:16 cky: I don't understand how macros can rely on anything that happens beyond their expansion time 17:16:28 cky: in other words, all macros in CL are compileable 17:16:36 the sanely whitespaced version should be somewhere on my laptop, wait. 17:17:09 Hyzer [~Hyzer@cpe-69-204-33-156.buffalo.res.rr.com] has joined #scheme 17:17:14 cky: because that is almost meaningless - when compilation happens there are no macros around anymore. 17:17:16 rien: Are CL macros compilable at the point of definition? Or only at the point of use? 17:17:55 cky: well, you know more about this than I do :) but you know that when compilation begins, the source code has got no more macros left 17:20:55 taylanub, http://paste.lisp.org/display/120260 17:20:59 rien: Of course. 17:21:35 cky: so that's why I have trouble understand why any kind of macro would interfere with compilation at all. 17:22:14 what does "(lambda)" do ? 17:22:20 cky: btw I've peeked at r5rs 7.2 and I can't wait to get there. that looks like it defines the basic functions in a more mathematical grammar, is that it? 17:23:17 taylanub, which (lambda)? after ? It's just the argument's name. 17:23:25 same of ( (x) ...) 17:24:17 oh  has a meaning ? 17:24:28 it's (lambda (x) ...) 17:24:32 -!- amoe_ [~amoe@cpc1-brig13-0-0-cust658.3-3.cable.virginmedia.com] has quit [Quit: leaving] 17:24:51 i see, "" is alias to "lambda" 17:24:56 fun 17:26:17 tronador__ [~guille@190.66.163.182] has joined #scheme 17:27:18 -!- tronador_ [~guille@190.66.170.123] has quit [Ping timeout: 255 seconds] 17:27:19 -!- tronador__ is now known as tronador_ 17:31:25 zmv [~daniel@c934a9f5.virtua.com.br] has joined #scheme 17:40:34 -!- zmv is now known as himself 17:41:05 -!- himself is now known as int 17:41:48 -!- int is now known as zmv 17:48:01 -!- Caleb-- [thedude@bzq-79-176-206-190.red.bezeqint.net] has quit [Ping timeout: 255 seconds] 17:50:16 Caleb-- [thedude@bzq-79-176-206-190.red.bezeqint.net] has joined #scheme 17:51:20 -!- lithpr [~user@cpe-204-210-208-155.neo.res.rr.com] has quit [Remote host closed the connection] 17:55:20 -!- Hyzer [~Hyzer@cpe-69-204-33-156.buffalo.res.rr.com] has quit [Ping timeout: 276 seconds] 18:01:12 rookiejet [~mazin@dhcp-0-f-3d-bc-41-3b.cpe.quickclic.net] has joined #scheme 18:01:18 -!- choas [~lars@p548B6AA0.dip.t-dialin.net] has quit [Ping timeout: 260 seconds] 18:02:46 -!- rookiejet [~mazin@dhcp-0-f-3d-bc-41-3b.cpe.quickclic.net] has quit [Client Quit] 18:04:22 -!- drdo [~user@91.205.108.93.rev.vodafone.pt] has quit [Remote host closed the connection] 18:08:44 -!- nilg [~user@77.70.2.229] has quit [Remote host closed the connection] 18:09:28 femtoo [~femto@95-89-198-8-dynip.superkabel.de] has joined #scheme 18:14:07 -!- corruptmemory [~jim@ool-18bbd5b2.static.optonline.net] has quit [Ping timeout: 255 seconds] 18:15:03 lithpr [~user@cpe-204-210-208-155.neo.res.rr.com] has joined #scheme 18:15:30 -!- tmi [~tmi@138.n0.bofiber.no] has quit [Ping timeout: 246 seconds] 18:15:53 tmi [~tmi@138.n0.bofiber.no] has joined #scheme 18:21:50 -!- kanru [~kanru@kanru-1-pt.tunnel.tserv15.lax1.ipv6.he.net] has quit [Ping timeout: 264 seconds] 18:28:19 Nils^ [hammerfest@gateway/shell/devio.us/x-qmvuylxokduacuaq] has joined #scheme 18:29:20 hello. sorry to bother you with trivial stuff.. I used (apply) so often but what am I doing wrong here: (apply (lambda (x) (+ x)) (list 1 2 3 4)) 18:29:58 You applied a procedure of one parameter, (lambda (x) (+ x)), to four arguments. 18:30:00 Nils^: Are you sure you don't mean to use "map"? 18:30:39 Is it much important for a lisper to understand the organization of a computer and some low level aspects of it all, such as how a CPU works? 18:30:41 cky: this is an abstract example. In reality I have a function with 4 parameters and then arbitraty 18:31:03 Riastradh: + has unlimited parameters? 18:31:05 DrDuck: Well, every programmer should know how a computer works. 18:31:07 Nils^: Yes. 18:31:11 rudybot: (+ 1 2 3 4) 18:31:11 cky: your racket sandbox is ready 18:31:11 cky: ; Value: 10 18:31:11 cky: ah, lambda only one 18:31:20 rudybot: (apply + '(1 2 3 4)) 18:31:20 cky: ; Value: 10 18:31:31 Nils^, no, the procedure *you* wrote, (lambda (x) ...), has only one parameter. 18:32:25 DrDuck, you should be able to make a working scale replica of your CPU using toothpicks, pipe cleaners, and a soldering iron. 18:32:46 It's left as an exercise for the reader. 18:32:57 cky: Is it possible to have access to some of the closer parts, like cache, with Scheme? 18:33:17 DrDuck: If your Scheme implementation provides such access, sure. But it's not part of standard Scheme. 18:34:13 nilg [~user@77.70.2.229] has joined #scheme 18:34:31 cky: (apply + (list 1 2 3 4)) sure works. I'm looking for the lambda way. 18:34:35 Also, if lisp encourages recursion so much, how was it /the/ language for AI years back? Wouldn't that mean working in embedded systems type environments where the memory is not plentiful? 18:34:44 Riastradh: and how do I tell lambda to accept unlimited parameters? 18:35:20 Nils^, you can write (lambda x ...). The resulting procedure will accept any number of arguments, and within the ellipsis, X will name a list of all the arguments that were passed. 18:37:22 rudybot: (define other+ (lambda args (apply + args))) 18:37:23 cky: Done. 18:37:26 rudybot: (apply (lambda x ... (+ x)) '(1 2 3 4)) 18:37:27 Nils^: your sandbox is ready 18:37:27 Nils^: error: eval:1:17: ...: ellipses not allowed as an expression in: ... 18:37:27 rudybot: (apply other+ '(1 2 3 4)) 18:37:27 cky: ; Value: 10 18:37:31 Nils^: ^^--- 18:37:38 Maybe that was a silly question, but I just thought it was easy to cause memory issues with recursion, especially if you're in a environment with little memory. 18:37:40 No, Nils^, you fill in the ellipsis with the body of the lambda. 18:38:10 DrDuck: It encourages recursion? :-O 18:38:20 Nils^: See my example above with the other+. 18:38:29 Best to read up on it, I guess. I'm just an outsider looking in. 18:39:13 DrDuck, well, what are `memory issues', exactly, and why does recursion cause them? 18:39:36 -!- paulh_ [~paulh@3-12-ftth.onsnetstudenten.nl] has quit [Quit: Lost terminal] 18:39:54 rudybot: (apply (lambda args (apply + args)) '(1 2 3 4)) 18:39:54 cky: ; Value: 10 18:39:56 Nils^: ^^--- 18:40:03 (apply (lambda args (apply + args)) '(1 2 3 4)) 18:40:04 got it 18:40:09 :-D 18:40:13 -!- ASau [~user@93-80-218-22.broadband.corbina.ru] has quit [Read error: Connection reset by peer] 18:40:15 ah, you did it yourself 18:41:13 Riastradh, I guess if the functions don't break out of the recursion, it would call itself over and over which would make ya eventually run out of memory. 18:41:42 But like I said, I'm just an outsider looking in. I won't understand until I sit my but down and learn some lisp, likely. 18:41:50 DrDuck: if I'm not mistaken thats the difference between tail recursion and the other. 18:41:52 Well, infinite loops might be undesirable (or desirable: an operating system, for instance, is usually an infinite loop). But what does that have to do with memory? 18:41:53 s/but/butt 18:42:26 Riastradh: I like how you like maieutics so much :) 18:43:36 Meh. 18:44:05 I'm not getting anywhere with this because I don't know lisp. Sorry for the ramblings. 18:44:06 F019 [~molly@212.203.98.114] has joined #scheme 18:44:16 Sure there's a fix or somethin'. Just curious. 18:44:18 By the way, DrDuck, what programming languages do you use? 18:44:25 cky: hm... I would better have formulated my example with a better example function: 18:44:25 Or know well, at least? 18:45:07 cky: what I'm trying to do is apply '(1 2 3 4) to (+ constant ...) 18:45:24 or (+ (function) ... ) 18:45:45 Nils^, step back a moment. What problem are you trying to solve, of which you believe applying a list of arguments to + or something to be a subproblem? 18:46:23 Riastradh: here is the real world problem 18:47:17 Riastradh: My resume isn't so hot. I'm still a student. We're using Java and C++ this semester at my school, but mostly in my free time, I use C. I'm trying to get a better understanding of computer organization. Do I come off as an idiot? 18:47:22 Sorry if I do. :< 18:47:23 I have (AttachDirective type field tag content . overrides) . This function but if its of interest inside there is another apply with a simple function name without lambda. that works. The problem is the wrapper around this: 18:47:32 No, DrDuck, you don't at all. Don't worry about that. 18:47:48 :] 18:48:02 (ToggleDirective type field tag content . overrides) This does some pre-processing and then feeding the overrides to (AttachDirective) 18:48:24 the ovverides are numbers, btw. 18:48:27 DrDuck, consider a naive recursive definition of factorial in C, ignoring the boundedness of arithmetic in C: int factorial (int n) { if (n < 2) return n; else return (n * (factorial (n - 1))); } 18:48:57 int? 18:48:59 Riastradh: so I'm trying to give (AttachDirective) parameters as if I had written them 18:49:11 wouldn't you probably use "unsigned long int"? 18:49:35 Nils^: (apply attach-directive type field tag content overrides) 18:49:40 Nils^: That should work. 18:49:55 In order to evaluate `factorial (5)', the C machine reduces it to evaluating `5 * (factorial (4))', and it reduces that to evaluating `5 * (4 * (factorial (3))', and so on. Each step of the way, the expression that the C machine reduces the evaluation to increases in size, until we get to the base case. 18:50:03 -!- tauntaun [~icarus@64.134.66.212] has quit [Ping timeout: 240 seconds] 18:50:18 zmv, doesn't really matter; as I said: `ignoring the boundedness of arithmetic in C'. 18:50:48 ASau [~user@93-80-218-22.broadband.corbina.ru] has joined #scheme 18:51:30 Riastradh: oh. 18:51:39 Makes sense, Riastradh. 18:51:41 cky: oh 18:52:17 DrDuck, what's going on here is that each recursive call to factorial is a subexpression of a larger expression, and the C machine has to remember that it was evaluating the larger expression when it starts to evaluate the subexpression. 18:52:30 cky: well, yes.. this looks easy and works 18:52:46 Nils^: Things don't have to be hard. :-D 18:53:01 For that matter, every time the machine evaluates a subexpression of a larger expression, it must remember that it was evaluating the larger expression when it starts to evaluate the subexpression. It doesn't matter whether the subexpression is a recursive call or not. 18:53:03 I though apply expects lists 18:53:11 Nils^: It does, but only in the last argument. 18:53:25 Nils^: Arguments other than the last are passed through directly. 18:53:34 ah, the missing fact 18:53:41 :-) 18:55:00 DrDuck, if the depth of recursion *in*subexpressions* were unbounded, then there might be `memory issues', because the program would require the machine to remember (i.e., store in memory) an unbounded number of larger expressions of which it is evaluating subexpressions. 18:55:18 cky: thank you 18:55:21 Riastradh: thank you 18:55:34 :-) 18:55:45 soluce Eq [x=x+1], x=? why...? 18:55:57 F019: That doesn't look like Scheme. 18:56:01 Now consider the following variation on the factorial routine: int factorial (int n, int product) { if (n < 2) return product; else return (factorial ((n - 1), (product * n))); } 18:56:52 scheme is better than lisp :) 18:57:20 F019: In my opinion, yes, if by "lisp" you mean Common Lisp. :-P But there are certainly CL users who like CL more than Scheme. 18:57:21 DrDuck, we'll pass 1 as the first value for product in order to get the factorial. If we evaluate `factorial (5, 1)', C will reduce that to `factorial ((5 - 1), (1 * 5))' or `factorial (4, 5)', which it will reduce to `factorial (3, 20)', and that to `factorial (2, 60)', and that to `factorial (1, 120)', and that to 120. 18:58:04 CL... is just ISO ? 18:58:28 F019: What? CL is standardised, but, I'm not sure what your question is about. 18:59:18 DrDuck, the critical point is that the recursive call to factorial is not a subexpression, so to evaluate it, the machine doesn't have to remember any larger expression; thus, even if memory is bounded, there can be an unbounded number of such recursive calls. 18:59:33 *fds* thinks that Scheme is a Lisp... The best Lisp. :-) 18:59:34 DrScheme, lulz. ...I haven't question about untyped langages... 18:59:54 both lisp, scheme aren't 19:00:00 (This is not really true: most C machines will treat the recursive call to factorial as a `subexpression', and still remember a `larger expression', leading to unbounded memory use.) 19:00:26 tail recursion... 19:02:09 DrDuck, so, while this doesn't quite work in C, it is guaranteed to work in Scheme: if you (define (factorial n product) (if (< n 2) product (factorial (- n 1) (* product n)))), then even if memory is bounded, then the number of recursive calls to FACTORIAL is unbounded (although the bound on memory will put a bound on the size of the arguments, which will indirectly put a bound on the number of recursive calls). 19:02:12 -!- kephas [pierre@AStrasbourg-551-1-105-57.w90-13.abo.wanadoo.fr] has quit [Remote host closed the connection] 19:02:52 nowhere_man [pierre@AStrasbourg-551-1-105-57.w90-13.abo.wanadoo.fr] has joined #scheme 19:02:52 fds: best and first :) 19:02:58 or somewhat 19:03:08 tauntaun [~icarus@64.134.66.112] has joined #scheme 19:03:30 head and tail ? ....lulz=AE-infinite... ? 19:03:56 Riastradh: What does it take to know how it works so in depth. I want to learn, too. 19:04:24 DrDuck, well, this little discussion of factorials and subexpressions and larger expressions is covered fairly early on in SICP. 19:04:38 :| 19:05:06 I have a hard copy, but with classes and having to prepare for this summer internship that's mostly C, I haven't had time. 19:05:19 rookiejet [~mazin@dhcp-0-f-3d-bc-41-3b.cpe.quickclic.net] has joined #scheme 19:05:27 DrDuck: you'll find that the real-world will always get in the way of the fun stuff :) 19:05:28 I've had my hard copy since last summer and haven't gotten out of Ch 1. Pretty pathetic. :< 19:07:20 kanru [~kanru@kanru-1-pt.tunnel.tserv15.lax1.ipv6.he.net] has joined #scheme 19:11:50 -!- tauntaun [~icarus@64.134.66.112] has quit [Quit: Ex-Chat] 19:13:21 amoe [~amoe@cpc1-brig13-0-0-cust658.3-3.cable.virginmedia.com] has joined #scheme 19:14:07 blueadept [~blueadept@unaffiliated/blueadept] has joined #scheme 19:21:03 Jimmy? 19:27:12 -!- rookiejet [~mazin@dhcp-0-f-3d-bc-41-3b.cpe.quickclic.net] has quit [Quit: WeeChat 0.3.4] 19:29:30 -!- pygospa [~pygospa@kiel-5f77b53c.pool.mediaWays.net] has quit [Quit: "sorry for any inconveniences caused"] 19:31:58 -!- zmv is now known as uhagrez 19:32:34 -!- uhagrez is now known as mzi 19:32:43 -!- mzi is now known as zmv 19:35:59 aleix [~aleix@179.Red-79-145-20.dynamicIP.rima-tde.net] has joined #scheme 19:39:48 -!- zmv is now known as tuz 19:39:54 -!- nowhere_man [pierre@AStrasbourg-551-1-105-57.w90-13.abo.wanadoo.fr] has quit [Remote host closed the connection] 19:41:28 -!- tuz is now known as zmv 19:41:39 -!- zmv is now known as tuz 19:41:41 nowhere_man [pierre@AStrasbourg-551-1-105-57.w90-13.abo.wanadoo.fr] has joined #scheme 19:44:06 pygospa [~TheRealPy@kiel-5f77b53c.pool.mediaWays.net] has joined #scheme 19:44:16 -!- githogori [~githogori@adsl-66-123-22-146.dsl.snfc21.pacbell.net] has quit [Remote host closed the connection] 19:44:38 -!- rapacity_ is now known as rapacity 19:45:42 Hyzer [~Hyzer@cpe-69-204-33-156.buffalo.res.rr.com] has joined #scheme 19:47:13 -!- tuz is now known as zmv 19:48:05 -!- F019 [~molly@212.203.98.114] has quit [Quit: Leaving] 19:50:35 karme [~user@stgt-5f7083c2.pool.mediaWays.net] has joined #scheme 19:51:25 -!- karme [~user@stgt-5f7083c2.pool.mediaWays.net] has left #scheme 19:51:50 RyanRN [~Adium@98.190.209.49] has joined #scheme 19:52:26 -!- nowhere_man [pierre@AStrasbourg-551-1-105-57.w90-13.abo.wanadoo.fr] has quit [Remote host closed the connection] 19:52:46 nowhere_man [pierre@AStrasbourg-551-1-105-57.w90-13.abo.wanadoo.fr] has joined #scheme 19:58:36 -!- aleix [~aleix@179.Red-79-145-20.dynamicIP.rima-tde.net] has quit [Quit: ERC Version 5.3 (IRC client for Emacs)] 20:00:42 HG` [~HG@dslb-188-109-151-128.pools.arcor-ip.net] has joined #scheme 20:00:46 -!- jewel [~jewel@196-215-16-243.dynamic.isadsl.co.za] has quit [Ping timeout: 255 seconds] 20:01:58 -!- Nils^ [hammerfest@gateway/shell/devio.us/x-qmvuylxokduacuaq] has left #scheme 20:05:25 -!- eno [~eno@nslu2-linux/eno] has quit [Read error: Connection reset by peer] 20:10:03 eno [~eno@nslu2-linux/eno] has joined #scheme 20:11:45 githogori [~githogori@adsl-66-123-22-146.dsl.snfc21.pacbell.net] has joined #scheme 20:16:40 -!- eut [~m@cpe-24-24-136-239.socal.res.rr.com] has quit [Quit: Leaving] 20:21:57 -!- HG` [~HG@dslb-188-109-151-128.pools.arcor-ip.net] has quit [Quit: Leaving.] 20:23:43 -!- christopher__ [~christoph@c-98-201-58-105.hsd1.tx.comcast.net] has quit [Ping timeout: 255 seconds] 20:24:07 -!- annodomini [~lambda@wikipedia/lambda] has quit [Quit: annodomini] 20:25:31 -!- Teeko [~Teeko@184.Red-83-49-132.dynamicIP.rima-tde.net] has quit [Ping timeout: 248 seconds] 20:26:38 -!- RyanRN [~Adium@98.190.209.49] has quit [Ping timeout: 264 seconds] 20:28:21 -!- lbc [~quassel@1908ds1-aboes.0.fullrate.dk] has quit [Remote host closed the connection] 20:37:02 wingo [~wingo@90.164.198.39] has joined #scheme 20:38:42 -!- amoe [~amoe@cpc1-brig13-0-0-cust658.3-3.cable.virginmedia.com] has quit [Read error: Operation timed out] 20:47:34 -!- eno [~eno@nslu2-linux/eno] has quit [Ping timeout: 255 seconds] 20:48:29 eut [~m@cpe-24-24-136-239.socal.res.rr.com] has joined #scheme 20:50:26 Teeko [~Teeko@184.Red-83-49-132.dynamicIP.rima-tde.net] has joined #scheme 20:50:53 -!- femtoo [~femto@95-89-198-8-dynip.superkabel.de] has quit [Read error: Connection reset by peer] 20:53:56 amoe [~amoe@cpc1-brig13-0-0-cust658.3-3.cable.virginmedia.com] has joined #scheme 21:02:11 -!- zilt [~zilt@67.23.13.119] has quit [Read error: Operation timed out] 21:02:16 zilt [~zilt@67.23.13.119] has joined #scheme 21:02:48 -!- cmatei [~cmatei@95.76.17.75] has quit [Read error: Operation timed out] 21:03:03 cmatei [~cmatei@95.76.17.75] has joined #scheme 21:15:31 josephholsten [~josephhol@adsl-99-102-63-150.dsl.tul2ok.sbcglobal.net] has joined #scheme 21:18:03 -!- pjb [~t@81.202.16.46.dyn.user.ono.com] has quit [Quit: erc lost its colors again.] 21:19:07 pjb [~t@81.202.16.46.dyn.user.ono.com] has joined #scheme 21:26:06 _reid [~reid@pool-71-186-127-197.chi01.dsl-w.verizon.net] has joined #scheme 21:27:00 foocraft [~dsc@78.100.210.180] has joined #scheme 21:31:38 -!- em [~em@unaffiliated/emma] has quit [Ping timeout: 240 seconds] 21:33:31 em [~em@unaffiliated/emma] has joined #scheme 21:40:03 -!- wingo [~wingo@90.164.198.39] has quit [Ping timeout: 260 seconds] 21:41:08 -!- homie [~levgue@xdsl-84-44-211-90.netcologne.de] has quit [Quit: ERC Version 5.3 (IRC client for Emacs)] 21:48:57 -!- lithpr [~user@cpe-204-210-208-155.neo.res.rr.com] has quit [Remote host closed the connection] 21:51:00 ASau` [~user@93-80-218-22.broadband.corbina.ru] has joined #scheme 21:51:11 lithpr [~user@cpe-204-210-208-155.neo.res.rr.com] has joined #scheme 21:51:36 Euthydemus` [~euthydemu@vaxjo7.80.cust.blixtvik.net] has joined #scheme 21:51:38 DT-sama [~Feeock@2.32.84.48] has joined #scheme 21:52:01 aoh_ [~aki@80.75.102.51] has joined #scheme 21:52:24 eno [~eno@adsl-70-137-154-18.dsl.snfc21.sbcglobal.net] has joined #scheme 21:52:25 -!- eno [~eno@adsl-70-137-154-18.dsl.snfc21.sbcglobal.net] has quit [Changing host] 21:52:25 eno [~eno@nslu2-linux/eno] has joined #scheme 21:52:31 ada2358_ [~ada2358@login.ccs.neu.edu] has joined #scheme 21:52:36 nohcel [~l@Macaw.cens.UCLA.EDU] has joined #scheme 21:52:51 -!- aoh [~aki@80.75.102.51] has quit [Ping timeout: 250 seconds] 21:52:52 -!- ada2358 [~ada2358@login.ccs.neu.edu] has quit [Ping timeout: 250 seconds] 21:52:52 -!- tessier [~treed@kernel-panic/copilotco] has quit [Ping timeout: 250 seconds] 21:52:52 -!- lechon [~l@unaffiliated/keram] has quit [Ping timeout: 250 seconds] 21:52:52 -!- DT`` [~Feeock@2.32.84.48] has quit [Ping timeout: 250 seconds] 21:52:53 sloyd_ [sloyd@station457.vo3.net] has joined #scheme 21:52:53 -!- ASau [~user@93-80-218-22.broadband.corbina.ru] has quit [Remote host closed the connection] 21:52:54 -!- sloyd [sloyd@station457.vo3.net] has quit [Read error: Connection reset by peer] 21:52:54 tauntaun [~icarus@64.134.66.112] has joined #scheme 21:52:54 -!- dsmith [~dsmith@cpe-184-56-129-232.neo.res.rr.com] has quit [Ping timeout: 250 seconds] 21:53:17 dsmith [~dsmith@cpe-184-56-129-232.neo.res.rr.com] has joined #scheme 21:53:19 -!- Euthydemus [~euthydemu@vaxjo7.80.cust.blixtvik.net] has quit [Ping timeout: 250 seconds] 21:53:57 mark_weaver [~mhw@ip68-9-118-38.ri.ri.cox.net] has joined #scheme 22:00:38 tessier [~treed@mail.copilotco.com] has joined #scheme 22:01:00 RyanRN [~Adium@98.190.209.49] has joined #scheme 22:05:57 new2net [~N2N@unaffiliated/new2net] has joined #scheme 22:06:33 -!- nilg [~user@77.70.2.229] has quit [Read error: Connection reset by peer] 22:12:52 -!- RyanRN [~Adium@98.190.209.49] has quit [Read error: Connection reset by peer] 22:13:05 RyanRN [~Adium@98.190.209.49] has joined #scheme 22:13:22 Sveklo [~sveklo@unaffiliated/sveklo] has joined #scheme 22:19:44 choas [~lars@p548B6AA0.dip.t-dialin.net] has joined #scheme 22:20:37 noonian [~noonian@c-76-105-129-255.hsd1.or.comcast.net] has joined #scheme 22:20:51 tronador__ [~guille@190.66.175.221] has joined #scheme 22:21:19 drdo [~user@91.205.108.93.rev.vodafone.pt] has joined #scheme 22:22:41 -!- tronador_ [~guille@190.66.163.182] has quit [Ping timeout: 260 seconds] 22:22:41 -!- tronador__ is now known as tronador_ 22:23:39 -!- lithpr [~user@cpe-204-210-208-155.neo.res.rr.com] has quit [Read error: Connection reset by peer] 22:25:04 lithpr [~user@cpe-204-210-208-155.neo.res.rr.com] has joined #scheme 22:25:44 -!- RyanRN [~Adium@98.190.209.49] has quit [Ping timeout: 276 seconds] 22:26:01 RyanRN [~Adium@98.190.209.49] has joined #scheme 22:29:36 -!- RyanRN [~Adium@98.190.209.49] has quit [Client Quit] 22:35:31 RyanRN [~Adium@98.190.209.49] has joined #scheme 22:35:46 -!- RyanRN [~Adium@98.190.209.49] has quit [Client Quit] 22:40:32 what does the 'pred' function do ? 22:40:54 homie [~levgue@xdsl-78-35-139-66.netcologne.de] has joined #scheme 22:42:28 something cool 22:43:21 maybe racket extension or so? mentioned here[http://www.cs.washington.edu/education/courses/cse341/99su/lectures/scheme/ppframe.htm, section about scoping], can't find anything about it 22:43:22 http://tinyurl.com/62xt6w9 22:43:59 ugh, i'm stupid 22:44:04 it's defined in the same sample code :P 22:46:19 you know what would be cool, if identifiers were colored relative to how physically close their definition appears 22:47:08 lol, something cool 22:48:38 that would be cool lol 22:49:21 zac314159 [~user@c-68-84-149-234.hsd1.nm.comcast.net] has joined #scheme 22:49:47 -!- zac314159 [~user@c-68-84-149-234.hsd1.nm.comcast.net] has left #scheme 22:52:41 -!- masm [~masm@bl16-182-101.dsl.telepac.pt] has quit [Quit: Leaving.] 22:53:48 -!- ASau` is now known as ASau 22:56:59 davazp [~user@201.Red-88-6-204.staticIP.rima-tde.net] has joined #scheme 22:58:10 nilg [~user@77.70.2.229] has joined #scheme 22:59:38 kilimanjaro [~kilimanja@unaffiliated/kilimanjaro] has joined #scheme 23:05:42 -!- josephholsten [~josephhol@adsl-99-102-63-150.dsl.tul2ok.sbcglobal.net] has quit [Quit: josephholsten] 23:06:41 -!- zmv [~daniel@c934a9f5.virtua.com.br] has quit [Ping timeout: 246 seconds] 23:07:55 zmv [~daniel@c934a9f5.virtua.com.br] has joined #scheme 23:08:30 -!- Hyzer [~Hyzer@cpe-69-204-33-156.buffalo.res.rr.com] has quit [Read error: Operation timed out] 23:10:30 -!- tronador_ [~guille@190.66.175.221] has quit [Quit: tronador_] 23:19:58 corruptmemory [~jim@ool-18bbd5b2.static.optonline.net] has joined #scheme 23:22:46 -!- choas [~lars@p548B6AA0.dip.t-dialin.net] has quit [Ping timeout: 260 seconds] 23:23:02 -!- mark_weaver [~mhw@ip68-9-118-38.ri.ri.cox.net] has quit [Quit: Leaving.] 23:24:09 -!- nilg [~user@77.70.2.229] has quit [Read error: Connection reset by peer] 23:34:02 tronador_ [~guille@190.66.175.221] has joined #scheme 23:37:07 -!- kilimanjaro [~kilimanja@unaffiliated/kilimanjaro] has quit [Read error: Operation timed out] 23:39:21 rookiejet [~mazin@dhcp-0-f-3d-bc-41-3b.cpe.quickclic.net] has joined #scheme 23:41:51 -!- zmv is now known as nobody 23:42:31 -!- nobody is now known as zmv 23:45:36 -!- new2net [~N2N@unaffiliated/new2net] has quit [Remote host closed the connection] 23:49:23 mark_weaver [~mhw@ip68-9-118-38.ri.ri.cox.net] has joined #scheme 23:58:17 -!- Sveklo [~sveklo@unaffiliated/sveklo] has quit [Remote host closed the connection]