00:17:01 -!- toekutr [~user@50-0-51-11.dsl.static.sonic.net] has quit [Remote host closed the connection] 00:17:22 toekutr [~user@50-0-51-11.dsl.static.sonic.net] has joined #scheme 00:22:29 karswell [~user@87.112.161.139] has joined #scheme 00:24:56 -!- elliottcable^ is now known as elliottcable 00:26:09 -!- Riastradh [~riastradh@fsf/member/riastradh] has quit [Ping timeout: 240 seconds] 00:28:24 -!- pyro- [~pyro@unaffiliated/purplepanda] has quit [Ping timeout: 245 seconds] 00:28:31 pyro- [~pyro@chopstick.dcollins.info] has joined #scheme 00:43:18 -!- kib0 [~kib0@200.92.100.68] has quit [Remote host closed the connection] 00:43:39 kib0 [~kib0@200.92.100.68] has joined #scheme 00:54:38 -!- toekutr [~user@50-0-51-11.dsl.static.sonic.net] has quit [Ping timeout: 252 seconds] 00:57:10 langmartin [~user@host-68-169-154-130.WISOLT2.epbfi.com] has joined #scheme 00:57:18 -!- langmartin [~user@host-68-169-154-130.WISOLT2.epbfi.com] has quit [Remote host closed the connection] 01:13:09 zacts [~zacts@unaffiliated/zacts] has joined #scheme 01:15:41 jcowan [~jcowan@mail.digitalkingdom.org] has joined #scheme 01:15:49 -!- amgarchIn9 [~amgarchin@p4FD56C4E.dip0.t-ipconnect.de] has quit [Quit: Konversation terminated!] 01:16:01 amgarchIn9 [~amgarchin@p4FD56C4E.dip0.t-ipconnect.de] has joined #scheme 01:17:45 felipe_lopes [~felipe@200.189.95.228] has joined #scheme 01:18:21 -!- LAMMJohnson [~ja@user-5af4385c.broadband.tesco.net] has quit [Remote host closed the connection] 01:19:45 walter [~walter@c-24-218-217-69.hsd1.ma.comcast.net] has joined #scheme 01:22:41 So should the R7RS-large hash table package require or just recommend randomization? 01:24:01 jcowan, what are the tradeoffs? (I would be entirely content with an answer in the form of a link to the gmane conversation thread on the topic, if you happen to have that handy...) 01:25:07 Well, randomization eats randomness, which is expensive to acquire fast in large quantities. 01:25:27 Lacking randomization, you are open to DoS attacks of the form "send lots of keys which all hash to the same thing". 01:25:51 causing lookups to become O(n) instead of expected amortized O(1). 01:26:52 Sorry, I understand the technical tradeoffs (though thank you for that); I was thinking more about the specific tradeoffs in the implementations being represented by the implementers. 01:29:50 Which implementers? 01:30:43 Currently Chicken has it, and I don't know about any other implementations. Lots of non-Schemes have it now too. 01:31:03 Am I wrong in assuming that the majority of the R7RS listdwellers maintain an RnRS implementation of one stripe or another? 01:32:56 gnomon: I suppose that's true for me 01:33:06 I think that's pretty clearly wrong. 01:33:26 but I was on the list before I started writing an impl 01:33:29 The WG has been primarily users, not implementers, though foof has kept us honest in that respect. 01:34:46 As R7RS-small was mostly aimed at library authors, so R7RS-large is mostly aimed at application authors. 01:35:52 Gah 01:36:45 Why gah? 01:37:25 jcowan, thank you for the perspective, and for papering over my failure to keep up to date with the project. I'm ramping up at $DAY_JOB to a place from which I'll be able to carve some semblance of a work/life balance so I can participate in the things I care about like R7RS, but I'm not there yet and I feel guilty about it. 01:37:30 Thus "gah". 01:38:39 Ah, okay. I feared you were saying "gah" to the idea of a user-driven standard. 01:38:57 Good gracious no. 01:39:20 In fact I'm more than delighted to learn that the users outnumber the implementers. That sounds healthy! 01:39:23 Well, R7RS-large WG will be a drop-in/drop-out operation: join when you can, leave when you must. 01:48:38 avery [~avery@host-74-211-18-15.beyondbb.com] has joined #scheme 01:50:21 -!- walter [~walter@c-24-218-217-69.hsd1.ma.comcast.net] has quit [Quit: This computer has gone to sleep] 01:53:49 -!- waxysubs [hope0@world.peace.net] has quit [Ping timeout: 245 seconds] 02:00:54 -!- ffio_ [~fire@unaffiliated/security] has quit [Quit: WeeChat 0.4.0] 02:01:25 ffio [~fire@unaffiliated/security] has joined #scheme 02:09:19 -!- jcowan [~jcowan@mail.digitalkingdom.org] has quit [Quit: Leaving] 02:11:31 -!- ffio [~fire@unaffiliated/security] has quit [Quit: WeeChat 0.4.0] 02:11:52 ffio [~fire@unaffiliated/security] has joined #scheme 02:22:36 -!- brianloveswords [~brianlove@li124-154.members.linode.com] has quit [Excess Flood] 02:24:48 brianloveswords [~brianlove@li124-154.members.linode.com] has joined #scheme 02:27:14 Riastradh [~riastradh@fsf/member/riastradh] has joined #scheme 02:34:55 -!- zacts [~zacts@unaffiliated/zacts] has quit [Quit: leaving] 02:36:59 -!- adu [~ajr@pool-173-66-11-197.washdc.fios.verizon.net] has quit [Quit: adu] 02:41:01 jonrafkind [~jon@racket/jonrafkind] has joined #scheme 02:48:25 danblick [~dan@c-24-18-238-230.hsd1.wa.comcast.net] has joined #scheme 02:51:21 -!- felipe_lopes [~felipe@200.189.95.228] has quit [Quit: Leaving] 02:52:55 jerryzhou [~jerryzhou@58.245.253.218] has joined #scheme 02:57:21 -!- avery [~avery@host-74-211-18-15.beyondbb.com] has quit [Quit: avery] 02:59:50 i watched this lecture on "open data types" yesterday - http://channel9.msdn.com/Shows/Going+Deep/C9-Lectures-Dr-Ralf-Lmmel-Advanced-Functional-Programming-Type-Classes ; it is about the "expression problem" in typed programming languages... 02:59:51 http://tinyurl.com/247dyez 03:00:33 in the talk, he is defining some data types in an expression language (in this case, Const and Add) and showing how he can add new operations (pretty-printer, evaluate) and new data types freely 03:01:17 i figured this would be really easy to do in scheme, but i'm pretty new, so i'm wondering how this might be done... 03:02:41 so if i do this, it works but it's "closed": http://paste.lisp.org/display/137372 03:04:04 i want to be able to make pretty-print extensible ; like how he defines "evaluate" on page 19 of these slides - http://developers.svn.sourceforge.net/viewvc/developers/repository/ralfs-channel9-lectures/decks/typeclasses.pdf 03:04:05 http://tinyurl.com/q69wtvr 03:05:42 cinolt [~cinolt@108-230-150-77.lightspeed.bcvloh.sbcglobal.net] has joined #scheme 03:06:35 If I were going to rewrite pretty-print from http://paste.lisp.org/display/137372 so that it used a list of cases that could be updated later, what would be a good way to do that? 03:10:39 (concretely: suppose I want to add a "Neg x" type that will pretty print as "-x"; how can I write pretty-print in a way that lets me do that without changing the code for pretty-print? 03:10:52 tenq [~tenq@ip68-100-228-234.dc.dc.cox.net] has joined #scheme 03:13:47 zacts [~zacts@unaffiliated/zacts] has joined #scheme 03:14:33 I know that lambda expressions have historical value, but as a language construct is it necessary? A lambda expression by itself evaluates to itself, and a pair is evaluated by first evaluating the car; if car is a lambda expression then evaluate and bind the arguments, then evaluate the lambda expression's contents; or if car is a "syntactic keyboard" (if, and, or) then do some magic to do 03:14:33 the computation. However, there's nothing inherently magical about lambda expressions it seems to me; for instance, if there was a language construct "id" such that: (id (1 2)) -> (id (1 2)), then lambda could be replaced by this id construct so that (lambda (n) (* n n)) becomes (id (n) (* n n)) and the evaluation rules remain unchanged. However, unlike lambda, the id construct is just a list, 03:14:33 and is straightforwardly printed to the user, whereas lambda expressions are "implementation dependent". Am I wrong in my reasoning somewhere? 03:15:05 -!- jerryzhou [~jerryzhou@58.245.253.218] has quit [Quit: Leaving] 03:16:55 Not only does id serve as a replacement for lambda that is easily printable, but it also serves as a general construct for preserving data. 03:18:16 So, if the object is to define a language that has only a "few different ways to form expressions", the id way seems to be more fitting. 03:19:18 waxysubs [hope3@world.peace.net] has joined #scheme 03:20:37 cinolt, I can't really tell here if you're making a very subtle point that I'm missing, or if you're missing the point of the difference between the procedure bound to LAMBDA and the way it operates on a list as its input. 03:20:48 cinolt, can you give me a hand in figuring out which one it is? 03:21:03 cinolt: i'm not sure i follow why you want to get rid of lambda, but it reminds me of eval/apply from http://mitpress.mit.edu/sicp/full-text/sicp/book/node77.html ; does lambda really even have such a special status? 03:26:09 amgarching [~amgarchin@p4FD632B3.dip0.t-ipconnect.de] has joined #scheme 03:26:11 gnomon,danblick: I don't know which one it is honestly. The point came to me while trying to write my own Scheme interpreter; I don't see a case where replacing lambda with id wouldn't work. 03:26:47 So the point is, if lambda can be replaced with the more general id, it follows that the more general id should be preferred. 03:27:16 cinolt, but why do you believe that your ID construct is any more general than any other self-evaluating form? 03:28:47 Well, because the combination (lambda (n) (* n n)) evaluates to a "lambda expression", whereas the id construct will evaluate to simply a list. There'd be no need for a "lambda expression". 03:29:12 cinolt, then how do you define procedures? 03:29:37 (define my-proc (id (n) (* n n))) 03:30:19 -!- amgarchIn9 [~amgarchin@p4FD56C4E.dip0.t-ipconnect.de] has quit [Ping timeout: 276 seconds] 03:30:28 If ID just evaluates to itself, you haven't defined a procedure, you've DEFINEd my-proc to be a list. How does that become a procedure? 03:31:36 Sure, without lambda there would no longer be the concept of a unique procedure, just another list. However, the evaluation process can be accomodated to treat it as a procedure. 03:32:30 Oh, so you're actually deliberately _removing_ the guarantee that LAMBDAs produce an opaque object, and extending your runtime to always expand and evaluate lists until the evaluator bottoms out at only atoms... right? 03:33:03 It seems so. 03:33:15 No-o-ow we're getting to the meat of the matter! 03:33:27 Ok, you're reimplementing PicoLisp, but let's move past that. 03:33:34 -!- kobain [~kobian@unaffiliated/kobain] has quit [Quit: l'unica veritŕ.. č la morte stessa!] 03:34:08 I mean this only to aim the point of my next few questions: have you read SICP to the end, or the full source for any other Scheme or lisp implementation? And have you ever written an interpreter before, and a compiler? 03:34:33 No to all of it. 03:35:03 To which point would you say you are familiar, to the point of being able to explain the general concepts without having to consult the book? 03:36:21 I don't consult the book at all to be honest; I've read here and there until about chapter 3, where I've the general concepts enough to be confident that I could write my own Scheme interpreter, or if anything another dialect of LISP that fits my needs. 03:39:11 cinolt, OK, that makes sense. So, the point of the LAMBDA procedure is to accept a list as input and return an opaque procedure. This opaque procedure may, behind its privacy guard, still be a bunch of lists of atoms; but it also may be implemented as a lower level construct, such as a routine built from machine code to operate on the rest of the environment. 03:40:00 cinolt, the implementation is free to make this choice at any point, _even at runtime_, without having to worry about breaking anything, by virtue of that guarantee of opacity. Behind that barrier is where all the interpreters, compilers, and optimizers do their work. 03:40:06 -!- wbooze [~wbooze@xdsl-78-35-178-142.netcologne.de] has quit [Read error: Operation timed out] 03:40:27 Ah, so it's a matter of optimization? 03:40:39 If you remove that opacity guarantee and commit to storing procedures as mere lists, you disallow or drastically complicate all of that potential. 03:40:41 -!- MichaelRaskin [~MichaelRa@195.91.224.225] has quit [Quit: MichaelRaskin] 03:41:31 It's not _only_ a matter of optimization; if a procedure may be treated like any other list, and if your implementation supports mutability (eg. SET-CAR!/SET-CDR!), you have created for yourself a very awkward complexity spout. 03:41:51 That is, you'll have an interesting thing with some lispy characteristics, but it will very much not be Scheme. 03:43:12 I've thought of not supporting mutability anyway; doesn't seem to me to be in the spirit of LISP. 03:43:31 preflex_ [~preflex@unaffiliated/mauke/bot/preflex] has joined #scheme 03:43:53 cinolt, I won't rise to that particular bait (; 03:44:58 -!- preflex [~preflex@unaffiliated/mauke/bot/preflex] has quit [Ping timeout: 256 seconds] 03:44:59 -!- preflex_ is now known as preflex 03:45:41 -!- jao [~jao@pdpc/supporter/professional/jao] has quit [Ping timeout: 252 seconds] 03:45:44 finger cinolt 03:45:50 uh 03:46:03 sorry weird misclick 03:47:15 Right. Anyway, I see now the significance of lambda. It's something that I would consider as an add-on to this interpreter I'm making, but as far as getting to the core issues it seems id can be used. 03:47:59 Perhaps both id and lambda could be used? 03:48:35 Thanks for the discussion in any case 03:48:37 cinolt, how would you feel if your procedure named ID were instead bound to the symbol LIST? 03:49:00 cinolt, oh, my pleasure entirely; thanks for putting up with the abrasiveness of my dialogue style today. 03:49:50 Well, that wouldn't work as LIST is already bound to something else. 03:50:40 Well, let me put it this way 03:50:59 (define (id x) (list id x)) 03:52:56 You're not actually simplifying anything by leaving out LAMBDA, or by opting to use a list construction instead. You're still going to need to solve your issue of how to treat "native" atoms and user-defined constructs, and leaving out LAMBDA means there will always be a difference between the two, which means your language isn't a lisp. 03:52:56 That seems to be a valid definition of my ID construct in Scheme. 03:53:50 To be a real lisp, whatever that means, there needs to be a [single] mechanism for promoting lists from the drudgery of mere data structures to the more noble plan of executable code. 03:54:45 If not in one place, in LAMBDA, then you'll have pieces of that functionality instead scattered all over your implementation, buried in special forms and code paths in your interpreter. 03:55:12 There's nothing inherently wrong with that, but... well, let me put it this way: nobody ever wrote a video game about breaking up the Triforce and hiding the pieces of it all over Hyrule. 03:57:08 I don't see how it would be as hectic as you imply if we're neglecting optimization at the moment; you're right that there are separate "native" atoms (C function pointers to be precise), and user-defined constructs (in this case id constructs). How does that make it not a lisp? 03:58:16 In that model there remains a difference at the language level between native atoms and user-defined atoms. Everything the user writes is a second-class citizen in that world: there is a plane of unattainable nobility. 03:58:59 If users can define atoms _from within the language_ with precisely the same semantics as the native atoms, then you're in the clear. 03:59:54 That's the main strength of lispy languages: they let you extend the language from within the language itself, with all the power that implies, without having to jump behind the scenes and recompile the implementation. 04:00:48 ...is this making any sense? This is an epiphany kind of thing, it usually either makes sense or it doesn't, and understanding strikes like inspiration all in its own time. 04:01:17 In any case even with Scheme, any non-trivial program is going to use some sort of FFI anyway; there's a limit to what lambda can accomplish; I chose to develop my own LISP primarily so that I have control over the FFI; the native atoms are meant to be implemented in C. 04:01:47 That's fine, but there is another way. 04:02:43 You imply that the user can write something more than "second-class citizen" code; I don't see how so. 04:03:13 Shall I talk through it? I'm keen to do so but I don't want to annoy you by prattling on. 04:03:33 Scheme to me is more about the abstraction of higher level concepts, whereas the lower-level constructs are coded in a more fitting language such as C. 04:03:44 Please, go ahead. I'm quite interested. 04:04:01 Excellent, excellent! Thank you! 04:04:23 So, let's hypothesize that behind your LAMBDA procedure hides a very powerful procedure. 04:04:54 This procedure evaluates all the atoms in the list passed to LAMBDA, turns them all into pointers to the appropriate C functions, and so on. 04:04:57 but 04:04:59 BUT 04:05:21 It _also_ goes behind the scenes and writes a new entry into the C dispatch table. 04:05:52 It sets up call slots so the C stack can pass arguments into and out of this new procedure, like any other C function. 04:06:08 toekutr [~user@50-0-51-11.dsl.static.sonic.net] has joined #scheme 04:06:20 It puts some entries in a type table to protect against the kind of type errors the C compiler can catch at compilation time. 04:06:55 And then this LAMBDA function fires up its native code compiler and writes some machine code into the area pointed to by that new entry in the C dispatch table. 04:07:35 Then, back at the language level, it binds the symbol name passed in to LAMBDA to a pointer to that dispatch table entry. 04:08:39 And, just like a JIT, the native (or at least lower-level) code generated at runtime has access to all the same power of the implementation language at runtime. 04:09:10 -!- toekutr [~user@50-0-51-11.dsl.static.sonic.net] has quit [Read error: No route to host] 04:09:49 If you extend that process far enough, and if you carefully expose this native code compilation process to Scheme - perhaps through eg. an assembler, let's call it Sassy for convenience - you can eventually hoist yourself out of C entirely, and end up with native code compiled directly from Scheme, with no intermediate layer. 04:10:03 You will have hoisted yourself up by your bootstraps, and made your language fully self-hosting. 04:10:28 When you do that, the ghost of John McCarthy smiles and hands you your wizard hat. 04:10:39 gavilan2 [~Gavilan2@cpe-198.144.156.141.ca.yorkinet.com] has joined #scheme 04:11:19 There's a secret behind this all, though. 04:11:26 Want to know it? 04:11:30 Sure. 04:12:11 The secret is, what I've described sounds complicated... but it's actually easier than what you're trying to do. 04:12:12 So far though, it seems to be quite ambitious; I'm not exactly familiar with the detailed concepts you're talking about, and I don't plan on writing a self-hosting LISP. 04:12:15 http://wry.me/misc/peval.html 04:14:21 The reason I asked how far you had gotten in SICP is that it teaches you precisely how to do this. Darius Bacon's article there teaches another path, but it leads to the same destination. 04:15:31 -!- joneshf-laptop [~joneshf@mail.concordusapps.com] has quit [Ping timeout: 264 seconds] 04:16:57 -!- rszeno [~rszeno@79.114.63.139] has quit [Quit: Leaving.] 04:18:00 offby1` [~user@ec2-54-215-10-197.us-west-1.compute.amazonaws.com] has joined #scheme 04:18:09 -!- RageOfThou [~RageOfTho@77.221.25.95] has quit [Ping timeout: 248 seconds] 04:18:22 I'm afraid I'm not getting the gist here. 04:18:42 -!- offby1 [~user@pdpc/supporter/monthlybyte/offby1] has quit [Ping timeout: 264 seconds] 04:19:10 cinolt, well, as I said, it's one of those AHA! moments that can't really be forced. Keep working on your implementation, though, and it will click! 04:19:37 So the point is to use lambda because it allows one to write a self-hosting LISP (from what I understand, a LISP interpreter made solely from LISP); even in that case if I wanted to use some C library I'd have to resort to using C anyway. 04:20:22 Very close 04:21:39 The point of using LAMBDA is because it _doesn't forbid_ you from doing that, should you choose to do so at some point in the future. If you don't have someplace in your language with that guarantee of opacity, you have ruled out ever being able to make your language self-hosting, or ever weaning it off its dependency on the host implementation language. 04:21:58 You'll end up with an Emacs Lisp instead of a Common Lisp or Scheme48. 04:22:05 gnomon: What do you mean by self-hosting? 04:22:05 MichaelRaskin [~MichaelRa@195.178.216.22] has joined #scheme 04:22:33 -!- jonrafkind [~jon@racket/jonrafkind] has quit [Excess Flood] 04:22:49 gavilan2, I mean a language capable of generating a fresh executable with merely its own source code and an existing executable version of itself. 04:23:09 jonrafkind [~jon@racket/jonrafkind] has joined #scheme 04:23:29 -!- offby1` is now known as offby1 04:23:29 -!- offby1 [~user@ec2-54-215-10-197.us-west-1.compute.amazonaws.com] has quit [Changing host] 04:23:29 offby1 [~user@pdpc/supporter/monthlybyte/offby1] has joined #scheme 04:24:13 gavilan2, in the presence of a functional C compiler, C may be self-hosting. Forth is the canonical example of a language which encourages self-hosting fanaticism. Lua cannot be self-hosting because it lacks the appropriate "escape hatch" to make it easy (though check out LuaJIT, which is accomplishing that goal the ve-e-ery long way around). 04:25:49 Those are examples... What about a definition? 04:26:22 gavilan2, are you seeking an explanation or an argument? 04:26:29 an explanation... 04:26:37 Ok, just making sure. One moment, please. 04:26:38 I've no idea what a self hosting argument is... 04:26:50 Is it to say that the self-hosting LISP can produce executables, with no reference to any assembly at all? I don't see how that's possible 04:26:51 I was just asking for a brief description... 04:27:29 In any case, what's the benefit of self-hosting in the first place? 04:28:09 gavilan2, well, you could do worse than starting at http://en.wikipedia.org/wiki/Self-hosting ; see also the second definition at http://c2.com/cgi/wiki?BootStrap 04:29:09 cinolt, the benefit of being self-hosting is to allow you to exercise the language to extend itself. Then, to work on it, you only need the surface area and complexity of YourNewLanguage, rather than YourNewLanguage + YourHostCompiler (and all its associated toolchain). 04:29:18 ah okay... 04:29:32 can lua open a file? in the file system? 04:30:16 cinolt, and it's possible because there is nothing magical about a compiler: it reads input, usually as files, and produces output, usually as files. If the input is program source code and the output is a bunch of bytes organized in such a way as to obey, say, the ELF executable standard, well by golly you have an assembler. 04:31:03 -!- bjz [~brendanza@125.253.99.68] has quit [Read error: Connection reset by peer] 04:31:15 gnomon: You'd still need to write assembly code though, would you not? 04:31:44 cinolt, assemblers are actually very short programs. Here's one: http://sassy.sourceforge.net/ , http://sourceforge.net/p/sassy/code/HEAD/tree/sassy-0.2.1/ 04:31:54 -!- amgarching [~amgarchin@p4FD632B3.dip0.t-ipconnect.de] has quit [Ping timeout: 264 seconds] 04:32:55 miql [~miql@ip68-98-19-126.ph.ph.cox.net] has joined #scheme 04:32:56 cinolt, why bother? You can just write a procedure which translates lists into machine code. You _can_ put an intermediate step in the middle where your procedures get turned into assembly language first and then into machine code, but there's no requirement to do so. 04:33:38 Well, doing so might be instructional and possibly helpful during debugging of the assembler as you write it, but you're likely to get more value out of a simple disassembler procedure. 04:33:42 bjz [~brendanza@125.253.99.68] has joined #scheme 04:34:10 gnomon, and in the end, you'd end up referring to x86 documentation, or whatever architecture you're targetting for, correct? 04:34:15 (and disassemblers are even easier to write, since they don't even have to perform the light work of calculating jump offsets) 04:34:33 cinolt, yup, that's one way to do it. 04:34:44 That's the thing; I'm not seeing the benefit of going through all that hassle. 04:35:00 cinolt, well, have you ever written a C compiler, or looked at how it was written? 04:35:17 Nope 04:35:45 I have also never written an Operating System, or looked at how it was written 04:35:52 Would you believe me if I said C compilers are generally far, far more complicated than assemblers, since the latter are mostly just opcode tables and some jump calculators? 04:36:07 Sure 04:37:03 How about if I claimed that any program which can read text files and write raw bytes into a file can be used to implement an assembler? 04:37:25 (eg. Henry Spencer's aaa: http://doc.cat-v.org/henry_spencer/amazing_awk_assembler/ ) 04:37:45 Of course, if one would venture into something that complicated. 04:38:22 Assemblers are very, very simple. Simpler than even a toy language interpreter. 04:38:57 That's really their raison d'čtre, after all. 04:39:26 Okay sure, mapping symbols to machine code, perhaps that itself is simple. 04:39:34 But using the assembler in any case, is going to be complicated. 04:39:53 It turns out that's not actually true: it's actually very easy. 04:40:13 And that's why doing things this way is desirable: because your result is simpler. 04:40:29 You get to remove the C compiler and all its complexity out of your build path, and use only your language. 04:40:39 Need a new feature? Implement it in your language, then use it right away. 04:40:43 Are there not hundreds of machine instructions? And are there not C compilers being developed to produce optimal machine code? And that the assembly you write is probably less optimal than the result of some optimized compiler? 04:41:19 Absolutely yes, any simple assembler will be doing far less optimization work than a huge and complicated C compiler. 04:41:45 But if you want an optimizer running behind the scenes, then you'll seen be wanting an opaque LAMBDA... 04:41:51 And here's the very neat part. 04:42:23 You can actually write your optimization layer such that it takes Lisp lists as input _and produces Lisp lists as output_. 04:43:17 Then your optimization layer becomes a set of small, simple transformations, each nicely packaged away from each other, and you can tune them as you see fit. The end result just takes the final optimized procdure definition and does the dumb assembler translation - all the smarts happen higher up. 04:43:40 Okay, even given that writing assembly is easy, I'll take that, there still is the underlying issue that there are plenty of libraries defined in C, and that C would have to be used in any case, is that not correct? 04:44:09 Unless of course, you interface with it solely through dynamic libraries, there still are #defines and such that you'd need. 04:44:14 That layered optimize-then-assemble model is how Twobit, Hobbit, and Chez Scheme operate; and arguably also Scheme48 and Gambit, depending on your perspective. Oh, and PLT, obviously. 04:44:31 Well 04:44:40 How do you call C functions from Perl? 04:44:52 I don't have any experience with Perl 04:45:00 Ok, sorry, let me try again. 04:45:11 How would you call into a C library from an assembler program? 04:45:31 That also, I don't know unfortunately 04:46:04 My guess is that the library must be ported into assembly, which I'm guessing is the unfortunate conclusion 04:46:19 You'd just write your C function parameters into the right places in the C stack, then call the entry point for your given function, then read its exit code and pick off whatever it leaves on the stack for you. 04:46:25 No sir. 04:46:45 The library doesn't need to be ported to anything: it is the C compiler itself which translates the library into machine language. 04:46:49 Right I understand that, but there are still enums, #defines and such 04:47:48 cinolt, allow me to answer that one by example: http://synthcode.com/scheme/chibi/#h1_CFFI 04:48:48 cinolt, chibi is written by foof, who is often present in this channel. 04:49:08 Right, I've been using chibi before I decided to write my own LISP 04:49:18 Oh, keen! 04:50:58 Anyhow, this is a very long tangent to justify why it is really in the best interests of the long-term health of your pet language to include an opaque LAMBDA, even if you do provide other procedure-defining mechanisms as well. 04:52:13 Yes, it seems so. I see the benefits of the self-hosting LISP now, perhaps I'll give those last two chapters a try :) 04:52:31 Wahoo! 04:52:43 Oh, and you may also want to waste a couple of years reading and groking http://library.readscheme.org/page8.html 04:53:58 Right, thanks for all the links, I will be trying to peruse through them. 04:54:20 *gnomon* bows 04:54:27 Thanks again for tolerating my wild digressions. 04:54:54 And now, to that sweet twilit world of dreams! 04:55:42 *gnomon* opens the fridge, jumps into the cheese drawer, and pulls it shut from inside. Soft sounds emerge from within; could be snoring, could be chewing. 04:56:42 Yes, thanks again gnomon. This conversation changed some of my preconceived notions for the better. 05:01:58 -!- ffio [~fire@unaffiliated/security] has quit [Ping timeout: 276 seconds] 05:03:18 -!- zacts [~zacts@unaffiliated/zacts] has quit [Quit: leaving] 05:05:12 -!- dessos [~dessos@c-174-60-176-249.hsd1.pa.comcast.net] has left #scheme 05:16:31 ehaliewicz [~user@50-0-51-11.dsl.static.sonic.net] has joined #scheme 05:23:21 avery [~avery@host-74-211-18-15.beyondbb.com] has joined #scheme 05:27:14 -!- hive-mind [pranq@unaffiliated/contempt] has quit [Read error: Operation timed out] 05:27:51 hive-mind [pranq@unaffiliated/contempt] has joined #scheme 05:28:18 -!- miql [~miql@ip68-98-19-126.ph.ph.cox.net] has quit [Ping timeout: 264 seconds] 05:30:08 miql [~miql@ip68-98-19-126.ph.ph.cox.net] has joined #scheme 05:32:01 dessos [~dessos@c-174-60-176-249.hsd1.pa.comcast.net] has joined #scheme 05:32:47 -!- hive-mind [pranq@unaffiliated/contempt] has quit [Ping timeout: 260 seconds] 05:33:48 hive-mind [pranq@unaffiliated/contempt] has joined #scheme 05:40:36 gravicappa [~gravicapp@ppp91-77-165-197.pppoe.mtu-net.ru] has joined #scheme 05:42:25 Gooder [~user@82.155.200.192.client.dyn.strong-in144.as13926.net] has joined #scheme 05:46:14 -!- Gooder` [~user@218.69.12.194] has quit [Ping timeout: 256 seconds] 05:55:40 jerryzhou [~jerryzhou@58.245.253.218] has joined #scheme 06:04:26 robot-beethoven [~user@c-24-118-142-0.hsd1.mn.comcast.net] has joined #scheme 06:06:55 -!- robot-beethoven [~user@c-24-118-142-0.hsd1.mn.comcast.net] has quit [Remote host closed the connection] 06:07:11 robot-beethoven [~user@c-24-118-142-0.hsd1.mn.comcast.net] has joined #scheme 06:08:16 ffio [~fire@unaffiliated/security] has joined #scheme 06:09:10 eni [~eni@gob75-5-82-230-88-217.fbx.proxad.net] has joined #scheme 06:13:06 -!- hive-mind [pranq@unaffiliated/contempt] has quit [Read error: Operation timed out] 06:13:44 hive-mind [pranq@unaffiliated/contempt] has joined #scheme 06:15:36 jewel [~jewel@105-237-24-43.access.mtnbusiness.co.za] has joined #scheme 06:18:40 -!- ehaliewicz [~user@50-0-51-11.dsl.static.sonic.net] has quit [Ping timeout: 276 seconds] 06:19:37 qpucka [~qpucka@184-97-195-183.mpls.qwest.net] has joined #scheme 06:20:39 -!- ffio [~fire@unaffiliated/security] has quit [Quit: WeeChat 0.4.0] 06:21:10 -!- avery [~avery@host-74-211-18-15.beyondbb.com] has quit [Quit: avery] 06:21:59 -!- yacks [~py@180.151.36.168] has quit [Read error: Operation timed out] 06:29:54 yacks [~py@180.151.36.168] has joined #scheme 06:31:31 kib0_ [~kib0@200.92.100.68] has joined #scheme 06:35:49 Chaos`Eternal [~chaos@112.65.188.105] has joined #scheme 06:38:45 hkBst [~marijn@79.170.210.172] has joined #scheme 06:38:45 -!- hkBst [~marijn@79.170.210.172] has quit [Changing host] 06:38:45 hkBst [~marijn@gentoo/developer/hkbst] has joined #scheme 06:39:27 -!- snarkyboojum_ [~snarkyboo@67-23-4-190.static.slicehost.net] has quit [Read error: Operation timed out] 06:39:57 snarkyboojum [~snarkyboo@67-23-4-190.static.slicehost.net] has joined #scheme 06:44:39 -!- cinolt [~cinolt@108-230-150-77.lightspeed.bcvloh.sbcglobal.net] has quit [Ping timeout: 260 seconds] 06:48:05 -!- jerryzhou [~jerryzhou@58.245.253.218] has quit [Quit: Leaving] 07:07:21 civodul [~user@gateway/tor-sasl/civodul] has joined #scheme 07:08:00 przl [~przlrkt@p5B298E6F.dip0.t-ipconnect.de] has joined #scheme 07:12:06 -!- eni [~eni@gob75-5-82-230-88-217.fbx.proxad.net] has quit [Ping timeout: 264 seconds] 07:15:16 ffio [~fire@unaffiliated/security] has joined #scheme 07:21:17 -!- miql [~miql@ip68-98-19-126.ph.ph.cox.net] has quit [Ping timeout: 252 seconds] 07:21:20 avery [~avery@host-74-211-18-15.beyondbb.com] has joined #scheme 07:21:41 -!- adiii [~adityavit@c-76-117-52-187.hsd1.nj.comcast.net] has quit [Ping timeout: 248 seconds] 07:24:56 -!- avery [~avery@host-74-211-18-15.beyondbb.com] has quit [Client Quit] 07:38:47 -!- jonrafkind [~jon@racket/jonrafkind] has quit [Ping timeout: 260 seconds] 07:47:52 spobat [~spobat@p5DC77105.dip0.t-ipconnect.de] has joined #scheme 07:53:40 -!- bipt [~bpt@cpe-071-070-253-241.nc.res.rr.com] has quit [Read error: Connection reset by peer] 07:56:30 -!- kib0_ [~kib0@200.92.100.68] has quit [Ping timeout: 264 seconds] 07:56:50 jerryzhou [~jerryzhou@58.245.253.218] has joined #scheme 08:01:21 -!- jerryzhou [~jerryzhou@58.245.253.218] has quit [Client Quit] 08:10:25 -!- robot-beethoven [~user@c-24-118-142-0.hsd1.mn.comcast.net] has quit [Quit: ERC Version 5.3 (IRC client for Emacs)] 08:11:38 -!- SeanTAllen [uid4855@gateway/web/irccloud.com/x-hfjmclinkxyijkgu] has quit [Ping timeout: 241 seconds] 08:14:13 SeanTAllen [uid4855@gateway/web/irccloud.com/x-ltdmlnbzrzelfvea] has joined #scheme 08:16:22 nataraj [~chatzilla@202.83.51.120] has joined #scheme 08:16:40 Hi 08:16:55 which is the apache module to serve scheme pages? 08:21:38 amgarching [~amgarchin@p4FD632B3.dip0.t-ipconnect.de] has joined #scheme 08:23:17 -!- gavilan2 [~Gavilan2@cpe-198.144.156.141.ca.yorkinet.com] has quit [Read error: Connection reset by peer] 08:23:32 gavilan2 [~Gavilan2@cpe-198.144.156.141.ca.yorkinet.com] has joined #scheme 08:27:03 wbooze [~wbooze@xdsl-87-79-193-155.netcologne.de] has joined #scheme 08:30:40 -!- qpucka [~qpucka@184-97-195-183.mpls.qwest.net] has quit [Quit: Leaving] 08:30:51 -!- nataraj [~chatzilla@202.83.51.120] has quit [Ping timeout: 256 seconds] 08:43:53 -!- spobat [~spobat@p5DC77105.dip0.t-ipconnect.de] has quit [Read error: Connection reset by peer] 08:44:20 spobat [~spobat@p5DC77105.dip0.t-ipconnect.de] has joined #scheme 09:10:08 -!- fadein [~Erik@c-67-161-246-186.hsd1.ut.comcast.net] has quit [Ping timeout: 245 seconds] 09:20:24 bjz_ [~brendanza@125.253.99.68] has joined #scheme 09:20:24 -!- bjz [~brendanza@125.253.99.68] has quit [Read error: Connection reset by peer] 09:26:41 -!- przl [~przlrkt@p5B298E6F.dip0.t-ipconnect.de] has quit [Ping timeout: 252 seconds] 09:27:48 chaos_ [~chaos@140.206.255.147] has joined #scheme 09:28:15 agumonkey [~agu@52.158.70.86.rev.sfr.net] has joined #scheme 09:28:36 przl [~przlrkt@p5B298E6F.dip0.t-ipconnect.de] has joined #scheme 09:31:18 -!- Chaos`Eternal [~chaos@112.65.188.105] has quit [Ping timeout: 264 seconds] 09:34:14 g3ntleman [~theisen@195.54.164.204] has joined #scheme 09:35:29 -!- pierpa` [~user@host117-20-dynamic.53-79-r.retail.telecomitalia.it] has quit [Ping timeout: 252 seconds] 09:42:10 alexshendi [~alexshend@ip-2-205-215-98.web.vodafone.de] has joined #scheme 09:47:51 -!- rage [~rage@unaffiliated/ffs] has quit [Remote host closed the connection] 10:00:06 -!- tenq [~tenq@ip68-100-228-234.dc.dc.cox.net] has quit [Quit: Leaving] 10:16:38 If I want to iterate over a vector, would the "right" way be to have an iterative function, and use vector-ref, and increase the index? There's no map-vector in r5rs, right? 10:22:43 Never mind. Question withdrawn. 10:26:41 -!- alexshendi [~alexshend@ip-2-205-215-98.web.vodafone.de] has quit [Read error: Connection reset by peer] 11:07:52 -!- Gooder [~user@82.155.200.192.client.dyn.strong-in144.as13926.net] has quit [Read error: Connection reset by peer] 11:09:26 Gooder [~user@218.69.12.194] has joined #scheme 11:16:08 -!- agumonkey [~agu@52.158.70.86.rev.sfr.net] has quit [Ping timeout: 252 seconds] 11:28:09 ManDay [~ManDay@p4FEBE6AA.dip0.t-ipconnect.de] has joined #scheme 11:30:56 Wouldn't it have been cleaner to restrict the use parenthesis to (operand operands) (meaing that every time parenthesis appear, they contain exactly this form)? Isn't sth. like (let ((a 1) (b 2)) ...) a bit inconsistent, because neither (a 1) nor a are operators? 11:32:06 hm, or is that to be interpreted as "(" being the operator? 11:32:40 -!- spobat [~spobat@p5DC77105.dip0.t-ipconnect.de] has quit [Quit: Leaving] 11:32:57 taylanub [tub@p4FD9130D.dip0.t-ipconnect.de] has joined #scheme 11:33:31 walter [~walter@c-24-218-217-69.hsd1.ma.comcast.net] has joined #scheme 11:42:43 LAMMJohnson [~ja@user-5af4385c.broadband.tesco.net] has joined #scheme 11:43:02 ManDay: The rules of evaluation are not *that* simple in CL. There are special forms and macros that do not evaluate the way you'd expect with normaln functions. 11:43:29 in CL? 11:43:43 Oh, sorry, I thought this was the Common Lisp channel :) 11:43:55 They're next to one another in my irssi session. 11:44:03 ok 11:44:06 Anyway, neither in Scheme and most other current Lisps. 11:44:22 well, I'm just asking whether it wouldn't have allowed for a bit more consistency 11:44:35 theoretically, that is 11:45:29 theoretically, i think something along those lines could have been achieved with lazy evaluations and a syntax for that 11:46:20 so that let would go like (let §x§ 10 §...§) 11:46:28 where § denotes that sth is not evaluated 11:47:41 do I make sense? 11:52:06 agumonkey [~agu@52.158.70.86.rev.sfr.net] has joined #scheme 11:54:07 pnkfelix [~user@mozilla.vlan502.asr1.cdg2.gblx.net] has joined #scheme 12:00:27 Yeah, just not sure whether the better consistency is actually worth the extra trouble. 12:02:27 -!- g3ntleman [~theisen@195.54.164.204] has quit [Quit: g3ntleman] 12:08:59 Racket's "Marketplace" is inspiring 12:09:07 (apart from the name, IMO) 12:12:06 -!- chaos_ [~chaos@140.206.255.147] has quit [Ping timeout: 264 seconds] 12:17:36 joneshf-laptop [~joneshf@c-98-208-36-36.hsd1.ca.comcast.net] has joined #scheme 12:17:52 chaos_ [~chaos@112.64.189.187] has joined #scheme 12:24:02 -!- chaos_ [~chaos@112.64.189.187] has quit [Ping timeout: 256 seconds] 12:27:30 RageOfThou [~RageOfTho@77.221.25.95] has joined #scheme 12:35:49 -!- SeySayux [SeySayux@libsylph/developer/seysayux] has quit [Ping timeout: 248 seconds] 12:42:31 -!- ManDay [~ManDay@p4FEBE6AA.dip0.t-ipconnect.de] has quit [Quit: WeeChat 0.4.0] 12:49:17 SeySayux [SeySayux@libsylph/developer/seysayux] has joined #scheme 12:53:19 -!- samth_away is now known as samth 12:58:27 -!- pnkfelix [~user@mozilla.vlan502.asr1.cdg2.gblx.net] has quit [Ping timeout: 260 seconds] 13:16:07 -!- ffio [~fire@unaffiliated/security] has quit [Ping timeout: 264 seconds] 13:16:17 ffio_ [~fire@unaffiliated/security] has joined #scheme 13:33:29 edw [~edw@207.239.61.34] has joined #scheme 13:36:03 newtothis [~chatzilla@77.126.143.168] has joined #scheme 13:37:35 -!- newtothis [~chatzilla@77.126.143.168] has quit [Client Quit] 13:38:09 newtothis [~chatzilla@77.126.143.168] has joined #scheme 13:42:36 pnkfelix [~user@mozilla.vlan502.asr1.cdg2.gblx.net] has joined #scheme 13:49:15 -!- newtothis [~chatzilla@77.126.143.168] has quit [Quit: ChatZilla 0.9.90 [Firefox 21.0/20130511120803]] 13:58:40 -!- pnkfelix [~user@mozilla.vlan502.asr1.cdg2.gblx.net] has quit [Quit: rcirc on GNU Emacs 24.2.1] 14:00:25 jeapostrophe [~jay@128.187.139.86] has joined #scheme 14:00:26 -!- jeapostrophe [~jay@128.187.139.86] has quit [Changing host] 14:00:26 jeapostrophe [~jay@racket/jeapostrophe] has joined #scheme 14:19:09 -!- acarrico [~acarrico@hunt-sting-2-178.greenmountainaccess.net] has quit [Ping timeout: 240 seconds] 14:21:47 -!- amoe_ is now known as amoe 14:23:41 -!- microcode [~microcode@bas1-toronto04-1176392002.dsl.bell.ca] has quit [Ping timeout: 252 seconds] 14:25:44 pierpa` [~user@host117-20-dynamic.53-79-r.retail.telecomitalia.it] has joined #scheme 14:32:57 kobain [~kobian@unaffiliated/kobain] has joined #scheme 14:33:19 -!- pierpa` [~user@host117-20-dynamic.53-79-r.retail.telecomitalia.it] has quit [Ping timeout: 276 seconds] 14:34:36 drdo [~user@85.207.54.77.rev.vodafone.pt] has joined #scheme 14:35:04 civodul: glad you like it 14:37:21 microcode [~microcode@bas1-toronto04-1242323047.dsl.bell.ca] has joined #scheme 14:37:38 jonrafkind [~jon@racket/jonrafkind] has joined #scheme 14:51:18 pumpkin360 [~main@aggr215.neoplus.adsl.tpnet.pl] has joined #scheme 14:51:21 Hi 14:52:24 there has recently been a discussion on this topic, or rather a bunch of good guys tryied to explain it to me but without much of desired result. 14:52:37 -!- SeySayux [SeySayux@libsylph/developer/seysayux] has quit [Read error: Connection reset by peer] 14:52:42 Why if I want to make a function taking all parameters 14:52:53 and packing them into a list 14:53:02 it looks like (lambda x x) 14:53:17 and not something like (lambda (. x) x) 14:53:18 ? 14:53:48 *tried 14:54:21 -!- hkBst [~marijn@gentoo/developer/hkbst] has quit [Quit: Konversation terminated!] 14:54:23 what is (. x) ? 14:54:26 concat ? 14:54:58 (lambda (x) x) takes an x and returns the same.... 14:55:15 you don't change passed on values....only what you own.... 14:55:37 so bind a new local var inside to the value returned by the lambda and use that one to modify.... 14:57:03 SeySayux [SeySayux@libsylph/developer/seysayux] has joined #scheme 15:00:39 but why does (lambda x x) do the job ? thought the formal parameters must be in parenthesis, and here they aren't and it somehow works as desired. 15:02:00 pumpkin360: that's just the syntax for "only a rest argument x" 15:02:25 you just have one, not two or more.... 15:07:33 ok, let's pretend I understand, I even partially do. 15:08:41 so it's just some special syntax ? 15:08:49 yep 15:09:02 ok, thanks everyone 15:09:05 otherwise you couldn't have a rest-argument-only function 15:09:30 well, some implementations have DSSSL syntax, then you could use (lambda (#!rest x) ...) 15:09:48 why not the (lambda (. x) ...) ? 15:10:23 that's invalid 15:10:32 why ? 15:10:34 :( 15:10:35 because (x . y) is read syntax for a pair 15:11:03 ok 15:11:24 well one could perhaps allow (. x) as alternative syntax for x 15:11:42 but there is no point, really 15:12:13 in SICP it is mentioned as a syntax for packing everything in x and didn't know it had something to do with pairs. 15:13:07 rudybot: (cons 1 2) 15:13:07 DerGuteMoritz: your sandbox is ready 15:13:08 DerGuteMoritz: ; Value: '(1 . 2) 15:14:20 rudybot: (cons 1 2) 15:14:20 pumpkin360: your sandbox is ready 15:14:20 pumpkin360: ; Value: '(1 . 2) 15:15:12 nice, so I can use this instead of the REPL as long as I will not get banned? :D 15:15:52 rudybot: (cons 1 2) 15:15:53 pumpkin360: ; Value: '(1 . 2) 15:19:52 bjz [~brendanza@125.253.99.68] has joined #scheme 15:20:01 -!- bjz_ [~brendanza@125.253.99.68] has quit [Read error: Connection reset by peer] 15:20:25 *DerGuteMoritz* slowly backs off from the channel 15:20:52 -!- gavilan2 [~Gavilan2@cpe-198.144.156.141.ca.yorkinet.com] has quit [Ping timeout: 263 seconds] 15:22:43 -!- jonrafkind [~jon@racket/jonrafkind] has quit [Ping timeout: 276 seconds] 15:23:06 rage [~rage@unaffiliated/ffs] has joined #scheme 15:27:27 waxysubs` [hope3@world.peace.net] has joined #scheme 15:28:33 rage_ [~rage@unaffiliated/ffs] has joined #scheme 15:29:00 -!- rage [~rage@unaffiliated/ffs] has quit [Remote host closed the connection] 15:29:06 -!- waxysubs [hope3@world.peace.net] has quit [Write error: Broken pipe] 15:33:33 rudybot: eval '(1 2 . 3) 15:33:33 Riastradh: your sandbox is ready 15:33:33 Riastradh: ; Value: '(1 2 . 3) 15:33:36 rudybot: eval (cdr '(1 2 . 3)) 15:33:37 Riastradh: ; Value: '(2 . 3) 15:33:41 rudybot: eval (cdr (cdr '(1 2 . 3))) 15:33:41 Riastradh: ; Value: 3 15:33:44 Not (. 3)! 15:35:21 gcartier [~gcartier@modemcable010.136-201-24.mc.videotron.ca] has joined #scheme 15:38:21 if I make a recursive procedure, when called all the instances of the procedure are bound to the global scope (or any other) or only the first and the rest is bound recursivelly to the previous instances ? 15:39:27 not considering tail recursion of course. 15:41:33 ? 15:41:48 -!- gcartier [~gcartier@modemcable010.136-201-24.mc.videotron.ca] has quit [Ping timeout: 256 seconds] 15:44:14 rudybot: eval '(. 3) 15:44:14 dpk: your sandbox is ready 15:44:14 dpk: error: #:1:2: read: illegal use of `.' 15:44:27 what implementation does rudybot use? 15:44:47 (MIT/Guile/Chicken/etc.?) 15:47:18 Racket 15:53:25 -!- pumpkin360 [~main@aggr215.neoplus.adsl.tpnet.pl] has quit [Quit: Lost terminal] 16:00:33 -!- kobain [~kobian@unaffiliated/kobain] has quit [Ping timeout: 261 seconds] 16:00:47 rudybot: eval '(2 . 1 . 3) 16:00:48 zbigniew: your sandbox is ready 16:00:48 zbigniew: ; Value: '(1 2 3) 16:02:08 -!- wbooze [~wbooze@xdsl-87-79-193-155.netcologne.de] has quit [Ping timeout: 252 seconds] 16:02:40 kobain [~kobian@unaffiliated/kobain] has joined #scheme 16:06:30 wbooze [~wbooze@xdsl-78-35-130-63.netcologne.de] has joined #scheme 16:08:33 -!- civodul [~user@gateway/tor-sasl/civodul] has quit [Remote host closed the connection] 16:09:29 -!- kobain [~kobian@unaffiliated/kobain] has quit [Remote host closed the connection] 16:09:55 kobain [~kobian@unaffiliated/kobain] has joined #scheme 16:12:54 avery [~avery@host-74-211-18-15.beyondbb.com] has joined #scheme 16:16:37 -!- kobain [~kobian@unaffiliated/kobain] has quit [Remote host closed the connection] 16:16:55 kobain [~kobian@unaffiliated/kobain] has joined #scheme 16:17:00 newtothis [~chatzilla@77.126.143.247] has joined #scheme 16:22:24 -!- newtothis [~chatzilla@77.126.143.247] has quit [Quit: ChatZilla 0.9.90 [Firefox 21.0/20130511120803]] 16:27:49 -!- Riastradh [~riastradh@fsf/member/riastradh] has quit [Ping timeout: 240 seconds] 16:29:51 rszeno [~rszeno@79.114.20.74] has joined #scheme 16:34:48 -!- MichaelRaskin [~MichaelRa@195.178.216.22] has quit [Quit: MichaelRaskin] 16:36:14 -!- jeapostrophe [~jay@racket/jeapostrophe] has quit [Ping timeout: 252 seconds] 16:38:58 miql [~miql@ip68-98-19-126.ph.ph.cox.net] has joined #scheme 16:42:56 -!- przl [~przlrkt@p5B298E6F.dip0.t-ipconnect.de] has quit [Ping timeout: 252 seconds] 16:51:22 jeapostrophe [~jay@lallab.cs.byu.edu] has joined #scheme 16:51:22 -!- jeapostrophe [~jay@lallab.cs.byu.edu] has quit [Changing host] 16:51:22 jeapostrophe [~jay@racket/jeapostrophe] has joined #scheme 16:51:48 -!- joneshf-laptop [~joneshf@c-98-208-36-36.hsd1.ca.comcast.net] has quit [Ping timeout: 260 seconds] 16:52:53 adiii [~adityavit@c-76-117-52-187.hsd1.nj.comcast.net] has joined #scheme 16:54:30 -!- kobain [~kobian@unaffiliated/kobain] has quit [Remote host closed the connection] 16:54:47 kobain [~kobian@unaffiliated/kobain] has joined #scheme 17:01:54 -!- kobain [~kobian@unaffiliated/kobain] has quit [Remote host closed the connection] 17:02:17 kobain [~kobian@unaffiliated/kobain] has joined #scheme 17:02:30 -!- gravicappa [~gravicapp@ppp91-77-165-197.pppoe.mtu-net.ru] has quit [Ping timeout: 264 seconds] 17:07:49 -!- kobain [~kobian@unaffiliated/kobain] has quit [Remote host closed the connection] 17:08:07 kobain [~kobian@unaffiliated/kobain] has joined #scheme 17:08:54 sigh. i had to give up on my prescheme exploration 17:09:06 i can't get the damned thing to compile my simple example program 17:09:13 przl [~przlrkt@p5B298E6F.dip0.t-ipconnect.de] has joined #scheme 17:14:54 pierpa` [~user@host117-20-dynamic.53-79-r.retail.telecomitalia.it] has joined #scheme 17:18:27 -!- sad0ur_ [~sad0ur@ip-89-102-144-158.net.upcbroadband.cz] has quit [Read error: Connection reset by peer] 17:18:48 sad0ur [~sad0ur@ip-89-102-144-158.net.upcbroadband.cz] has joined #scheme 17:19:34 pierpa [~user@host117-20-dynamic.53-79-r.retail.telecomitalia.it] has joined #scheme 17:31:02 acarrico [~acarrico@cable54-3-142.stoweaccess.com] has joined #scheme 17:43:22 turbofail: i played with it many years ago, but can't remember much about it :( 17:46:01 gravicappa [~gravicapp@ppp91-77-176-31.pppoe.mtu-net.ru] has joined #scheme 17:46:46 meh. in truth i have no need to write fast low-level code at the moment, i was just procrastinating 17:47:56 turbofail: always good to know how to do that in case you need it 17:48:17 that's true i guess 17:49:06 -!- elliottcable is now known as ell 17:50:06 -!- ell is now known as ellie 17:55:27 -!- ellie is now known as elliottcable 17:58:02 g3ntleman [~theisen@195.54.164.204] has joined #scheme 17:58:37 joneshf-laptop [~joneshf@c-98-208-36-36.hsd1.ca.comcast.net] has joined #scheme 18:10:03 MichaelRaskin [~MichaelRa@195.91.224.225] has joined #scheme 18:10:39 -!- elliottcable is now known as ELLIOTTCABLE 18:21:18 jao [~jao@10.Red-193-153-229.dynamicIP.rima-tde.net] has joined #scheme 18:21:21 -!- jao [~jao@10.Red-193-153-229.dynamicIP.rima-tde.net] has quit [Changing host] 18:21:21 jao [~jao@pdpc/supporter/professional/jao] has joined #scheme 18:27:04 eni [~eni@gob75-5-82-230-88-217.fbx.proxad.net] has joined #scheme 18:28:49 -!- jeapostrophe [~jay@racket/jeapostrophe] has quit [Ping timeout: 248 seconds] 18:31:36 g3ntleman_ [~theisen@xdsl-89-0-154-191.netcologne.de] has joined #scheme 18:32:31 -!- g3ntleman [~theisen@195.54.164.204] has quit [Ping timeout: 276 seconds] 18:32:31 -!- g3ntleman_ is now known as g3ntleman 18:36:18 -!- bjz [~brendanza@125.253.99.68] has quit [Quit: Bye!] 18:36:30 bjz [~brendanza@125.253.99.68] has joined #scheme 18:48:17 -!- g3ntleman [~theisen@xdsl-89-0-154-191.netcologne.de] has quit [Ping timeout: 240 seconds] 18:48:38 g3ntleman [~theisen@xdsl-78-35-60-190.netcologne.de] has joined #scheme 18:58:48 bipt [~bpt@cpe-071-070-253-241.nc.res.rr.com] has joined #scheme 19:01:31 -!- bjz [~brendanza@125.253.99.68] has quit [Read error: Connection reset by peer] 19:03:08 bjz [~brendanza@125.253.99.68] has joined #scheme 19:04:33 -!- kobain [~kobian@unaffiliated/kobain] has quit [Ping timeout: 248 seconds] 19:05:06 kobain [~kobian@unaffiliated/kobain] has joined #scheme 19:11:39 -!- taylanub [tub@p4FD9130D.dip0.t-ipconnect.de] has quit [Disconnected by services] 19:12:08 taylanub [tub@p4FD93EB0.dip0.t-ipconnect.de] has joined #scheme 19:13:43 -!- Guest83720 is now known as pjb 19:16:36 Riastradh [~riastradh@fsf/member/riastradh] has joined #scheme 19:25:31 amoe_ [~amoe@host-78-147-171-189.as13285.net] has joined #scheme 19:26:49 -!- g3ntleman [~theisen@xdsl-78-35-60-190.netcologne.de] has quit [Quit: g3ntleman] 19:27:39 -!- amoe [~amoe@host-78-147-155-203.as13285.net] has quit [Ping timeout: 260 seconds] 19:34:59 -!- avery [~avery@host-74-211-18-15.beyondbb.com] has quit [Ping timeout: 256 seconds] 19:48:09 -!- Riastradh [~riastradh@fsf/member/riastradh] has quit [Ping timeout: 240 seconds] 19:54:15 -!- jao [~jao@pdpc/supporter/professional/jao] has quit [Ping timeout: 256 seconds] 20:01:18 -!- jewel [~jewel@105-237-24-43.access.mtnbusiness.co.za] has quit [Ping timeout: 264 seconds] 20:04:42 jeapostrophe [~jay@69.169.141.110.provo.static.broadweavenetworks.net] has joined #scheme 20:04:42 -!- jeapostrophe [~jay@69.169.141.110.provo.static.broadweavenetworks.net] has quit [Changing host] 20:04:42 jeapostrophe [~jay@racket/jeapostrophe] has joined #scheme 20:10:46 -!- edw [~edw@207.239.61.34] has quit [Quit: Computer has gone to sleep.] 20:14:32 edw [~edw@207.239.61.34] has joined #scheme 20:16:12 -!- drdo [~user@85.207.54.77.rev.vodafone.pt] has quit [Remote host closed the connection] 20:16:26 jrajav [~jrajav@198.179.137.210] has joined #scheme 20:17:36 jao [~jao@10.Red-193-153-229.dynamicIP.rima-tde.net] has joined #scheme 20:17:39 -!- jao [~jao@10.Red-193-153-229.dynamicIP.rima-tde.net] has quit [Changing host] 20:17:39 jao [~jao@pdpc/supporter/professional/jao] has joined #scheme 20:18:47 newtothis [~chatzilla@77.126.143.247] has joined #scheme 20:29:31 -!- samth [~samth@racket/samth] has quit [Quit: Ex-Chat] 20:31:44 samth [~samth@samth2.ccs.neu.edu] has joined #scheme 20:31:44 -!- samth [~samth@samth2.ccs.neu.edu] has quit [Changing host] 20:31:44 samth [~samth@racket/samth] has joined #scheme 20:35:04 gcartier [~gcartier@modemcable010.136-201-24.mc.videotron.ca] has joined #scheme 20:35:30 -!- kib0 [~kib0@200.92.100.68] has quit [Ping timeout: 264 seconds] 20:37:19 -!- pierpa [~user@host117-20-dynamic.53-79-r.retail.telecomitalia.it] has quit [Ping timeout: 256 seconds] 20:37:20 -!- pierpa` [~user@host117-20-dynamic.53-79-r.retail.telecomitalia.it] has quit [Ping timeout: 256 seconds] 20:38:19 ASau` [~user@p5797F654.dip0.t-ipconnect.de] has joined #scheme 20:41:55 -!- ASau [~user@p5797F146.dip0.t-ipconnect.de] has quit [Ping timeout: 264 seconds] 20:43:28 -!- przl [~przlrkt@p5B298E6F.dip0.t-ipconnect.de] has quit [Ping timeout: 252 seconds] 20:50:34 przl [~przlrkt@p5B298E6F.dip0.t-ipconnect.de] has joined #scheme 20:53:21 -!- joneshf-laptop [~joneshf@c-98-208-36-36.hsd1.ca.comcast.net] has quit [Ping timeout: 248 seconds] 20:58:11 -!- ASau` is now known as ASau 21:09:39 -!- gravicappa [~gravicapp@ppp91-77-176-31.pppoe.mtu-net.ru] has quit [Ping timeout: 245 seconds] 21:16:08 -!- ffio_ [~fire@unaffiliated/security] has quit [Ping timeout: 256 seconds] 21:16:24 _ffio_ [~fire@unaffiliated/security] has joined #scheme 21:19:41 -!- newtothis [~chatzilla@77.126.143.247] has quit [Quit: ChatZilla 0.9.90 [Firefox 21.0/20130511120803]] 21:21:22 ehaliewicz [~user@50-0-51-11.dsl.static.sonic.net] has joined #scheme 21:32:39 Giomancer [~gio@107.201.206.230] has joined #scheme 21:33:02 Riastradh [~riastradh@fsf/member/riastradh] has joined #scheme 21:34:04 -!- edw [~edw@207.239.61.34] has quit [Ping timeout: 252 seconds] 21:34:39 -!- Giomancer [~gio@107.201.206.230] has quit [Client Quit] 21:36:26 edw [~edw@207.239.61.34] has joined #scheme 21:38:05 Giomancer [~gio@107.201.206.230] has joined #scheme 21:49:07 ijp [~user@host109-150-111-223.range109-150.btcentralplus.com] has joined #scheme 21:51:06 evhan_ [evhan@foldling.org] has joined #scheme 21:51:09 -!- evhan_ [evhan@foldling.org] has quit [Client Quit] 21:52:08 tenq [~tenq@ip68-100-228-234.dc.dc.cox.net] has joined #scheme 21:52:33 -!- karswell [~user@87.112.161.139] has quit [Read error: Operation timed out] 21:52:35 blackwol` [~blackwolf@ool-4574e84c.dyn.optonline.net] has joined #scheme 21:56:22 -!- blackwolf [~blackwolf@ool-4574e84c.dyn.optonline.net] has quit [Ping timeout: 256 seconds] 22:02:28 -!- przl [~przlrkt@p5B298E6F.dip0.t-ipconnect.de] has quit [Ping timeout: 276 seconds] 22:03:29 -!- Riastradh [~riastradh@fsf/member/riastradh] has quit [Ping timeout: 240 seconds] 22:04:21 -!- samth is now known as samth_away 22:05:32 -!- edw [~edw@207.239.61.34] has quit [Quit: Computer has gone to sleep.] 22:06:57 edw [~edw@207.239.61.34] has joined #scheme 22:13:49 -!- eni [~eni@gob75-5-82-230-88-217.fbx.proxad.net] has quit [Ping timeout: 245 seconds] 22:15:45 -!- jrajav [~jrajav@198.179.137.210] has quit [Quit: I tend to be neutral about apples] 22:17:11 -!- wbooze [~wbooze@xdsl-78-35-130-63.netcologne.de] has quit [Remote host closed the connection] 22:20:55 -!- agumonkey [~agu@52.158.70.86.rev.sfr.net] has quit [Ping timeout: 264 seconds] 22:24:01 -!- jeapostrophe [~jay@racket/jeapostrophe] has quit [Ping timeout: 248 seconds] 22:32:38 -!- yazdmich [~yazdmich@unaffiliated/yazdmich] has quit [Ping timeout: 256 seconds] 22:33:18 -!- dessos [~dessos@c-174-60-176-249.hsd1.pa.comcast.net] has left #scheme 22:33:45 -!- stephe [~stephe@quux.ca] has quit [Ping timeout: 252 seconds] 22:34:07 stephe [~stephe@quux.ca] has joined #scheme 22:34:47 yazdmich [~yazdmich@om.n0.ms] has joined #scheme 22:37:07 -!- Triclops256|away is now known as Triclops256 22:39:06 -!- cky [~cky@fsf/member/cky] has quit [Ping timeout: 264 seconds] 22:50:21 joelsalisbury [~joelsalis@cpe-142-105-188-25.rochester.res.rr.com] has joined #scheme 22:50:44 -!- joelsalisbury [~joelsalis@cpe-142-105-188-25.rochester.res.rr.com] has quit [Client Quit] 22:50:44 karswell [~user@87.112.161.139] has joined #scheme 22:50:54 udumas [~udumas@cpe-142-105-188-25.rochester.res.rr.com] has joined #scheme 22:51:16 -!- Triclops256 is now known as Triclops256|away 22:55:40 udumas__ [~joelsalis@cpe-142-105-188-25.rochester.res.rr.com] has joined #scheme 23:07:51 przl [~przlrkt@p5B298E6F.dip0.t-ipconnect.de] has joined #scheme 23:09:53 -!- ijp [~user@host109-150-111-223.range109-150.btcentralplus.com] has quit [Quit: The garbage collector got me] 23:12:40 -!- przl [~przlrkt@p5B298E6F.dip0.t-ipconnect.de] has quit [Ping timeout: 276 seconds] 23:15:22 bone- [~b@adsl-76-237-176-215.dsl.chcgil.sbcglobal.net] has joined #scheme 23:39:14 -!- cdidd [~cdidd@95-26-184-111.broadband.corbina.ru] has quit [Ping timeout: 245 seconds] 23:39:33 pumpkin360 [~main@aggr215.neoplus.adsl.tpnet.pl] has joined #scheme 23:40:08 hi, I need help with exercise 3.18/3.19 23:40:16 of SICP of course. 23:41:27 cosmez [~cosmez@200.92.100.68] has joined #scheme 23:41:29 read the solutions on scheme community but they seem to ommit an important aspect - what happens if we have good two diffrent elements of the tree/list with 'a' in them ? 23:41:56 is there a way to (easily) check is two variables are the same one ? 23:42:10 not by value but be place in memory. 23:42:25 -!- jao [~jao@pdpc/supporter/professional/jao] has quit [Ping timeout: 248 seconds] 23:43:31 *got 23:54:08 -!- Triclops256|away is now known as Triclops256 23:54:13 hm, 23:54:27 check whether the pairs are the same ? 23:55:58 yup 23:56:15 (e.g. using `eqv?') 23:56:50 but.. (define a 0) (define b 0) (eqv? a b) -> #t 23:57:06 but those aren't pairs 23:57:32 the variables aren't passed to `eqv?' -- their current values are 23:58:46 well eqv? really does seem to do the job, and how does it make it? 23:58:47 -!- amoe_ [~amoe@host-78-147-171-189.as13285.net] has quit [Ping timeout: 240 seconds] 23:59:55 rudybot: eval (let ((ns (with-input-from-string "#0=(0 1 . #0#)" read))) (eqv? ns (cddr ns))) 23:59:55 ski: ; Value: #t