2014-12-01T00:07:46Z jeapostrophe joined #scheme 2014-12-01T00:07:46Z jeapostrophe quit (Changing host) 2014-12-01T00:07:46Z jeapostrophe joined #scheme 2014-12-01T00:08:34Z alexey1 joined #scheme 2014-12-01T00:09:34Z Pixel_Outlaw quit (Quit: Leaving) 2014-12-01T00:12:54Z alexey1 quit (Ping timeout: 250 seconds) 2014-12-01T00:19:49Z kongtomorrow quit 2014-12-01T00:23:17Z karswell quit (Remote host closed the connection) 2014-12-01T00:23:19Z karswell` joined #scheme 2014-12-01T00:42:32Z stepnem quit (Ping timeout: 258 seconds) 2014-12-01T00:58:31Z kongtomorrow joined #scheme 2014-12-01T01:00:56Z hypermagic quit (Ping timeout: 258 seconds) 2014-12-01T01:07:00Z oldskirt_ quit (Ping timeout: 265 seconds) 2014-12-01T01:17:04Z jusss joined #scheme 2014-12-01T01:18:08Z oldskirt joined #scheme 2014-12-01T01:27:18Z stct quit (Ping timeout: 265 seconds) 2014-12-01T01:28:46Z omefire joined #scheme 2014-12-01T01:31:26Z b4283 quit (Read error: Connection reset by peer) 2014-12-01T01:40:14Z stct joined #scheme 2014-12-01T01:41:53Z BitPuffin quit (Ping timeout: 264 seconds) 2014-12-01T01:44:17Z sethalves quit (Remote host closed the connection) 2014-12-01T02:02:04Z sheilong joined #scheme 2014-12-01T02:09:33Z alexey1 joined #scheme 2014-12-01T02:12:15Z psy quit (Ping timeout: 265 seconds) 2014-12-01T02:13:39Z psy joined #scheme 2014-12-01T02:14:09Z alexey1 quit (Ping timeout: 258 seconds) 2014-12-01T02:17:36Z frkout joined #scheme 2014-12-01T02:18:57Z frkout quit (Remote host closed the connection) 2014-12-01T02:28:37Z tobik quit (Ping timeout: 240 seconds) 2014-12-01T02:28:45Z frkout joined #scheme 2014-12-01T02:30:29Z tobik joined #scheme 2014-12-01T02:30:30Z frkout_ joined #scheme 2014-12-01T02:31:43Z yrdz quit (Remote host closed the connection) 2014-12-01T02:32:28Z yrdz joined #scheme 2014-12-01T02:33:38Z kongtomorrow quit 2014-12-01T02:33:45Z sethalves joined #scheme 2014-12-01T02:34:01Z frkout quit (Ping timeout: 255 seconds) 2014-12-01T02:38:27Z jumblerg quit (Quit: My Mac has gone to sleep. ZZZzzz…) 2014-12-01T02:39:01Z jumblerg joined #scheme 2014-12-01T02:39:01Z jumblerg quit (Client Quit) 2014-12-01T02:40:29Z kongtomorrow joined #scheme 2014-12-01T02:47:37Z ASau quit (Ping timeout: 240 seconds) 2014-12-01T02:51:38Z kongtomorrow quit 2014-12-01T02:58:49Z theseb quit (Quit: Leaving) 2014-12-01T03:00:53Z robot-beethoven joined #scheme 2014-12-01T03:02:55Z zv quit (Remote host closed the connection) 2014-12-01T03:03:04Z scoofy: could someone explaint (let) in a nutshell? 2014-12-01T03:03:34Z scoofy: first, when I run a scheme program, where are the symbols stored? do they go to some global namespace? 2014-12-01T03:04:28Z zv joined #scheme 2014-12-01T03:13:29Z offby1: in racket, at least, they vanish once the parse is done 2014-12-01T03:15:56Z scoofy: er... 2014-12-01T03:16:18Z scoofy: you mean they get compiled? or... 2014-12-01T03:16:37Z offby1: not sure I know what I'm talking about :) 2014-12-01T03:16:44Z offby1: Symbols that you're using as data stick around. 2014-12-01T03:16:54Z offby1: But identifiers of, say, variables -- those vanish 2014-12-01T03:17:08Z scoofy: when? 2014-12-01T03:18:06Z offby1: sometime after you start the program :-) 2014-12-01T03:18:32Z scoofy: how does the program know, which function to call, if identifiers are lost? 2014-12-01T03:19:44Z offby1: the compiler has replaced each identifier with an address. 2014-12-01T03:19:55Z scoofy: so it's stored as token. 2014-12-01T03:20:16Z offby1: I'd say it's stored as an address, but sure; call it a "token" if you want 2014-12-01T03:20:23Z scoofy: is there a scheme that stores all programs as text, and not as binary trees? 2014-12-01T03:20:28Z offby1: I know more or less nothing about compilers, I should point out :) 2014-12-01T03:20:30Z scoofy: stores and interprets 2014-12-01T03:20:35Z offby1: I doubt it. 2014-12-01T03:20:44Z scoofy: i'll write one. 2014-12-01T03:20:48Z offby1: It'd have to interpret the same text over and over, in the case of a loop 2014-12-01T03:20:51Z offby1: that'd be super-slow 2014-12-01T03:20:56Z scoofy: exactly. 2014-12-01T03:21:05Z offby1: might be an interesting exercise though. 2014-12-01T03:21:06Z ijp: well, one is described in dybvig's thesis, but it's not really a good way to write a scheme 2014-12-01T03:21:18Z scoofy: not a good way, because it's slow 2014-12-01T03:21:24Z scoofy: other than, an interesting excercise 2014-12-01T03:22:11Z scoofy: yep, looks like the 'string-based model' in the Dybvig paper, thanks for the reference 2014-12-01T03:22:57Z jeapostrophe quit (Ping timeout: 240 seconds) 2014-12-01T03:23:06Z scoofy: i think the advantage is that you don't need to implement types 2014-12-01T03:23:12Z scoofy: if you store everything as string 2014-12-01T03:23:19Z scoofy: in that case, it is just 'text rewriting' 2014-12-01T03:23:45Z scoofy: i think that's the whole point of lambda calculus, except it's faster if you do it as binary tree 2014-12-01T03:24:14Z ijp: the history of the lambda calculus says that types are a good idea 2014-12-01T03:24:29Z scoofy: sure. 2014-12-01T03:24:58Z offby1: ijp: you're gonna wind up a CS professor if you're not careful 2014-12-01T03:25:04Z offby1: have to hang around with bremner 2014-12-01T03:27:37Z scoofy: huh, that's a long paper (dybvig's) 2014-12-01T03:27:40Z scoofy: almost 200 pages 2014-12-01T03:30:26Z amgarchIn9 joined #scheme 2014-12-01T03:33:35Z scoofy: when I have a list in scheme, the 'car' is the first, element, and the 'cdr' is the rest, is that correct? 2014-12-01T03:33:55Z scoofy: so (car (a b c)) --> a, (cdr (a b c)) --> (b c) ? 2014-12-01T03:35:23Z TheCommieDuck quit (Read error: Connection reset by peer) 2014-12-01T03:37:55Z ijp: scoofy: well, (a b c) is a function call, but for '(a b c) you're right 2014-12-01T03:38:17Z offby1: rudybot: (car '(a b c)) 2014-12-01T03:38:17Z rudybot: *offby1: your sandbox is ready 2014-12-01T03:38:17Z rudybot: *offby1: ; Value: 'a 2014-12-01T03:38:20Z offby1: rudybot: (cdr '(a b c)) 2014-12-01T03:38:20Z rudybot: *offby1: ; Value: '(b c) 2014-12-01T03:38:23Z offby1: rudybot: (rest '(a b c)) 2014-12-01T03:38:23Z rudybot: *offby1: ; Value: '(b c) 2014-12-01T03:38:25Z offby1: rudybot: (first '(a b c)) 2014-12-01T03:38:25Z rudybot: *offby1: ; Value: 'a 2014-12-01T03:38:27Z offby1 rubs chin 2014-12-01T03:38:35Z offby1: rudybot: (equal? first car) 2014-12-01T03:38:36Z rudybot: *offby1: ; Value: #f 2014-12-01T03:38:41Z offby1 rubs chin some more 2014-12-01T03:39:04Z scoofy: let me ask something 2014-12-01T03:39:16Z scoofy: 'car', 'a', 'b', 'c' are called 'symbols' ? 2014-12-01T03:39:42Z leppie joined #scheme 2014-12-01T03:39:46Z offby1: depends on the context 2014-12-01T03:39:46Z cjh`: scoofy: yes 2014-12-01T03:39:51Z offby1: rudybot: (symbol? 'car) 2014-12-01T03:39:51Z rudybot: *offby1: ; Value: #t 2014-12-01T03:39:53Z offby1: rudybot: (symbol? car) 2014-12-01T03:39:53Z rudybot: *offby1: ; Value: #f 2014-12-01T03:40:01Z offby1: mebbe yes, mebbe no. 2014-12-01T03:40:05Z scoofy: hm 2014-12-01T03:40:09Z offby1: eet all depents, you see. 2014-12-01T03:40:53Z cjh`: the word 'car' itself is a symbol, but when it is used unquoted in most contexts it is evaluated. 2014-12-01T03:41:27Z scoofy: so ... during evaluation... whenever a symbol is encountered... it's replaced with it's value? 2014-12-01T03:41:32Z scoofy: unless it's quoted? 2014-12-01T03:41:38Z offby1: pretty much. 2014-12-01T03:41:44Z offby1: That's true of everything, not just symbols 2014-12-01T03:42:04Z scoofy: but the value of a quoted something is itself 2014-12-01T03:42:06Z scoofy: i guess 2014-12-01T03:42:11Z cjh`: scoofy: yes 2014-12-01T03:42:15Z scoofy: so that's like saying replacing 1 --> 1 2014-12-01T03:43:02Z cjh`: scoofy: yeah, certain things are data already in their final form (numbers, strings, chars, quoted symbols) 2014-12-01T03:43:16Z scoofy: strings = anything between "quotes" ? 2014-12-01T03:43:56Z cjh`: yes 2014-12-01T03:44:02Z scoofy: rudyboy: (eq? "dog" 'dog) 2014-12-01T03:44:15Z scoofy: rudybot: (eq? "dog" 'dog) 2014-12-01T03:44:16Z rudybot: scoofy: your sandbox is ready 2014-12-01T03:44:16Z rudybot: scoofy: ; Value: #f 2014-12-01T03:44:30Z scoofy: rudybot: (eq? "d" #\d) 2014-12-01T03:44:31Z rudybot: scoofy: ; Value: #f 2014-12-01T03:44:37Z scoofy: rudybot: (eq? 'd #\d) 2014-12-01T03:44:37Z rudybot: scoofy: ; Value: #f 2014-12-01T03:44:40Z scoofy: rudybot: (eq? 'd ) 2014-12-01T03:44:40Z rudybot: scoofy: error: eq?: arity mismatch; the expected number of arguments does not match the given number expected: 2 given: 1 arguments...: 'd 2014-12-01T03:44:42Z scoofy: rudybot: (eq? 'd "d") 2014-12-01T03:44:42Z rudybot: scoofy: ; Value: #f 2014-12-01T03:45:02Z ijp: rudybot: (eq? "d" "d") 2014-12-01T03:45:03Z rudybot: ijp: your sandbox is ready 2014-12-01T03:45:03Z rudybot: ijp: ; Value: #t 2014-12-01T03:45:12Z ijp: weird, I'd have expected that to return #f 2014-12-01T03:45:16Z scoofy: why? 2014-12-01T03:45:45Z ijp: in any case, you shouldn't be using eq? for characters (it's not defined), and 2014-12-01T03:45:53Z scoofy: ah. 2014-12-01T03:45:59Z scoofy: is that like, 'undefined behaviour' in C ? 2014-12-01T03:46:14Z scoofy: so it's 'maybe yes, maybe no.' 2014-12-01T03:46:17Z ijp: scoofy: eq? is like a pointer comparison, it's not uncommon for the same literal string to be two different objects 2014-12-01T03:46:24Z scoofy: oh. 2014-12-01T03:46:31Z cjh`: scoofy: = is for numbers, eq? is checking if they are the same 'object' 2014-12-01T03:46:37Z cjh`: (define foo 'bar) 2014-12-01T03:46:40Z yrdz quit (Remote host closed the connection) 2014-12-01T03:46:44Z cjh`: (eq? foo foo) ; => #t 2014-12-01T03:46:54Z ijp: of course, I'm probably the only person in the world that still cares about eq? vs eqv? 2014-12-01T03:47:00Z scoofy: what is eqv? 2014-12-01T03:47:04Z cjh`: there is also eqv? and equal? 2014-12-01T03:47:17Z ijp: scoofy: like eq? but actually defined for characters and numbers 2014-12-01T03:47:26Z scoofy: and 'equal?' ? 2014-12-01T03:47:30Z scoofy: what is that 2014-12-01T03:48:06Z ijp: scoofy: on compound data (pairs/strings/vectors) it recursively checks the fields 2014-12-01T03:48:17Z ijp: rudybot: (eqv? (cons 'a 'b) (cons 'a 'b)) 2014-12-01T03:48:17Z rudybot: ijp: ; Value: #f 2014-12-01T03:48:21Z ijp: rudybot: (equal? (cons 'a 'b) (cons 'a 'b)) 2014-12-01T03:48:21Z rudybot: ijp: ; Value: #t 2014-12-01T03:48:38Z scoofy: er... what does 'recursive' mean in case of a string? 2014-12-01T03:48:45Z yrdz joined #scheme 2014-12-01T03:48:47Z scoofy: or you just mean 'iterates over' 2014-12-01T03:49:07Z ijp: if you like 2014-12-01T03:49:19Z scoofy: so that can be used for string comparison? 2014-12-01T03:49:27Z scoofy: rudybot: (equal? "dog" 'dog) 2014-12-01T03:49:27Z rudybot: scoofy: ; Value: #f 2014-12-01T03:49:35Z ijp: yes 2014-12-01T03:49:41Z scoofy: then why don't they equal 2014-12-01T03:49:53Z ijp: because symbols and strings are different types 2014-12-01T03:50:07Z scoofy: aren't symbols serialized as strings when compared? 2014-12-01T03:50:10Z ijp: nope 2014-12-01T03:50:19Z scoofy: how do you test, if a symbol is 'dog' 2014-12-01T03:50:47Z ijp: you mean if the string of the symbol is dog? 2014-12-01T03:50:54Z scoofy: yep 2014-12-01T03:51:04Z scoofy: how to test for the name of the symbol 2014-12-01T03:51:10Z ijp: (equal? (symbol->string x) "dog") 2014-12-01T03:51:11Z scoofy: as if it were a string 2014-12-01T03:51:20Z ijp: but usually you'd just do (eqv? x 'dog) 2014-12-01T03:51:33Z scoofy: rudybot: (equal? "dog" (symbol->string 'dog)) 2014-12-01T03:51:33Z rudybot: scoofy: ; Value: #t 2014-12-01T03:51:48Z scoofy: eqv converts it himself? 2014-12-01T03:52:02Z ijp: no 2014-12-01T03:52:08Z scoofy: how does it work then 2014-12-01T03:52:10Z vinleod joined #scheme 2014-12-01T03:52:30Z ijp: there is only one symbol with a given name 2014-12-01T03:52:38Z ijp: so you can just check for identity 2014-12-01T03:52:39Z scoofy: so that's unique ID 2014-12-01T03:52:54Z scoofy: is that represented as an integer? 2014-12-01T03:52:57Z scoofy: like, an index? 2014-12-01T03:53:05Z ijp: what does it matter 2014-12-01T03:53:07Z scoofy: in as symbol table? 2014-12-01T03:53:18Z scoofy: it matters when one wants to write say, a scheme interpreter 2014-12-01T03:53:26Z rudybot: Neva be yo dog. 2014-12-01T03:53:26Z scoofy: then i have to do what to do to do it 2014-12-01T03:53:38Z scoofy: s/do/know/ 2014-12-01T03:53:44Z ijp: scoofy: why not read the spec and write some programs? 2014-12-01T03:53:56Z ijp: you'll learn scheme faster than trying to do it as an irc dialogue 2014-12-01T03:54:10Z scoofy: if you don't want to answer questions, that's also fine 2014-12-01T03:54:24Z cjh`: reading through r5rs is oddly very fun 2014-12-01T03:55:11Z scoofy: basically, i have no idea where to start 2014-12-01T03:55:44Z scoofy: things like, which one to choose from the N available schemes 2014-12-01T03:55:49Z scoofy: so maybe i'm like, rather, i'll write my own scheme first 2014-12-01T03:56:08Z scoofy: to 'learn by doing' 2014-12-01T03:56:15Z cjh`: either read r5rs http://www.schemers.org/Documents/Standards/R5RS/ or SICP https://mitpress.mit.edu/sicp/toc/toc.html 2014-12-01T03:56:42Z scoofy: sicp is good, i've read parts of it 2014-12-01T03:57:17Z scoofy: maybe that'll be good as a start 2014-12-01T03:59:23Z scoofy: do you know practical implementations of string-based schemes? 2014-12-01T03:59:45Z Riastradh: No -- `string-based' sounds like synonymous with `impractical'. 2014-12-01T04:00:01Z scoofy: well... meant as 'educational model' level practical 2014-12-01T04:00:12Z scoofy: not as 'practical for writing fast programs in' 2014-12-01T04:00:56Z scoofy: or, can you recommend simple scheme iplementations to learn from 2014-12-01T04:04:55Z scoofy: so, thanks for the help and reading recommendations 2014-12-01T04:05:54Z scoofy: anyways... thinking about the 'practicalness' of string-based schemes... i think if the programs is compiled, then it becomes fast after a slow compilation stage 2014-12-01T04:06:12Z scoofy: or, can become fast, if the compiler is smart 2014-12-01T04:06:38Z scoofy: so if the compilation stage happens only once, then the fact that the compiler might be slow (because text-based), might not be an issue 2014-12-01T04:06:44Z scoofy: that's what i'd like to test out 2014-12-01T04:07:12Z davexunit quit (Quit: Later) 2014-12-01T04:07:38Z scoofy: for example, some scheme programs can be trivial to, say, compile to C, which, when compiled to binary, can run at speed of binary. 2014-12-01T04:07:45Z scoofy: of course, with some limits. 2014-12-01T04:08:24Z scoofy: (since without a proper type system, all i could have is compromises) 2014-12-01T04:09:56Z jusss quit (Ping timeout: 250 seconds) 2014-12-01T04:10:20Z alexey1 joined #scheme 2014-12-01T04:11:51Z scoofy: and the compiler itself can be written in C, where text processing is pretty fast 2014-12-01T04:14:49Z alexey1 quit (Ping timeout: 244 seconds) 2014-12-01T04:23:59Z Lingo joined #scheme 2014-12-01T04:25:33Z drdanmaku: scoofy: it sounds like you're looking for a basic lisp interpreter...? 2014-12-01T04:26:27Z drdanmaku: i scrolled up and you were asking about keeping symbols used in forms around 2014-12-01T04:26:45Z scoofy: drdanmaku, exactly 2014-12-01T04:26:50Z drdanmaku: every basic interpreter will do this 2014-12-01T04:26:51Z scoofy: basic lisp interpreter examples 2014-12-01T04:26:58Z drdanmaku: you might start with https://github.com/petermichaux/bootstrap-scheme 2014-12-01T04:27:08Z scoofy: thanks, will check out 2014-12-01T04:27:13Z drdanmaku: Bootstrap Scheme is slow. The implementation is an abstract syntax tree node walker with no optimizations. There is no point in making a node walking interpreter any better than the absolute base necessity as the fundamental design of a node walker would never be used in production. Small, easy to read source code is far more important than anything else. 2014-12-01T04:27:48Z scoofy: sure. 2014-12-01T04:29:45Z scoofy: looks good. 2014-12-01T04:41:17Z xyh joined #scheme 2014-12-01T04:42:24Z vinleod quit (Quit: ["Textual IRC Client: www.textualapp.com"]) 2014-12-01T04:46:14Z MichaelRaskin quit (Quit: MichaelRaskin) 2014-12-01T04:46:39Z scoofy: i love the cleanness of such small lisp/scheme implementations 2014-12-01T04:46:54Z scoofy: actually... what differentiates 'lisp' from 'scheme'? is that even a valid question? 2014-12-01T04:47:06Z scoofy: or they can be used synonymously 2014-12-01T04:47:36Z scoofy: from my viewpoint, both are s-exp languages with slightly different keywords and libs here and there 2014-12-01T04:47:59Z drdanmaku: scoofy: take a look at common lisp, emacs lisp, and clojure, then ask that question again 2014-12-01T04:48:23Z scoofy: i guess, they have a zillion of additional libs. 2014-12-01T04:48:27Z scoofy: any other notable difference? 2014-12-01T04:48:33Z drdanmaku: it's about semantics, not libraries 2014-12-01T04:48:56Z scoofy: so SICP teaches the 'scheme' semantics? 2014-12-01T04:49:09Z drdanmaku: sicp teaches scheme 2014-12-01T04:49:35Z scoofy: what would be a good reference or material to learn the 'lisp' semantics? or have a comparison between the two? 2014-12-01T04:50:08Z drdanmaku: outside of mccarthy's original lisp, there isn't really a single "lisp" semantics. you just have a lot of languages in the lisp family 2014-12-01T04:50:22Z xyh left #scheme 2014-12-01T04:50:28Z scoofy: this is why i say, if it makes sense to distinguish between 'scheme' and 'lisp' 2014-12-01T04:50:34Z scoofy: they all seem dialects of an s-exp language 2014-12-01T04:50:49Z amgarching joined #scheme 2014-12-01T04:50:49Z scoofy: s/say/ask/ 2014-12-01T04:51:06Z drdanmaku: i guess i wasn't very clear. yes, you want to distinguish between them, because there are a LOT of lisps 2014-12-01T04:51:19Z drdanmaku: common lisp, emacs lisp, clojure, whatever else, in addition to scheme 2014-12-01T04:51:28Z scoofy: surely. my question is exactly, what are those differences. 2014-12-01T04:51:43Z drdanmaku: symbolic expressions are a common theme but they're pretty trivial in light of other differences 2014-12-01T04:52:01Z scoofy: can you give a notable example difference? 2014-12-01T04:52:03Z drdanmaku: one immediate difference you'll run in to between scheme and common lisp, say, is lisp-1 vs lisp-2 2014-12-01T04:53:33Z drdanmaku: hm, there isn't a good introductory document on that so i'll just type it out 2014-12-01T04:53:47Z scoofy: ok. 2014-12-01T04:53:51Z drdanmaku: lisp-1/lisp-2 is about whether or not functions have their own namespace 2014-12-01T04:54:03Z scoofy: so.. namespaces were added in lisp-2 2014-12-01T04:54:16Z scoofy: in lisp-1, everything was global namespace? 2014-12-01T04:54:17Z drdanmaku: no 2014-12-01T04:54:34Z drdanmaku: ok lisp-1/lisp-2 is about the number of namespaces. it's a horrible term 2014-12-01T04:54:42Z drdanmaku: it's not, like, the second version of lisp 2014-12-01T04:54:49Z scoofy: ah. 2014-12-01T04:55:07Z amgarchIn9 quit (Ping timeout: 272 seconds) 2014-12-01T04:55:17Z drdanmaku: you will just want to read some documents on common lisp to be a good explanation of this 2014-12-01T04:55:23Z drdanmaku: to get a good explanation* 2014-12-01T04:55:29Z scoofy: yea, i'll think i'll need to do some reading 2014-12-01T04:55:32Z scoofy: maybe i'll find some good info 2014-12-01T04:58:08Z scoofy: thanks for the answers. 2014-12-01T04:58:48Z scoofy: i think i'll start reading SICP, and as I go, implement everything in my interpreter/compiler 2014-12-01T04:58:50Z karswell` is now known as karswell 2014-12-01T05:01:18Z frkout_ quit (Remote host closed the connection) 2014-12-01T05:01:44Z frkout joined #scheme 2014-12-01T05:06:17Z bjz_ quit (Ping timeout: 240 seconds) 2014-12-01T05:07:09Z jeapostrophe joined #scheme 2014-12-01T05:07:09Z jeapostrophe quit (Changing host) 2014-12-01T05:07:09Z jeapostrophe joined #scheme 2014-12-01T05:08:57Z bjz joined #scheme 2014-12-01T05:11:57Z jeapostrophe quit (Ping timeout: 240 seconds) 2014-12-01T05:12:34Z oleo__ joined #scheme 2014-12-01T05:13:16Z oleo is now known as Guest47763 2014-12-01T05:13:53Z alloyed joined #scheme 2014-12-01T05:14:34Z Guest47763 quit (Ping timeout: 264 seconds) 2014-12-01T05:18:33Z bjz quit (Ping timeout: 272 seconds) 2014-12-01T05:20:16Z jusss joined #scheme 2014-12-01T05:48:03Z Lingo quit (Quit: Be back later ...) 2014-12-01T05:48:36Z Lingo joined #scheme 2014-12-01T05:50:31Z alezost joined #scheme 2014-12-01T05:52:37Z Lingo quit (Ping timeout: 240 seconds) 2014-12-01T06:01:21Z oleo__ quit (Quit: Verlassend) 2014-12-01T06:04:52Z oldskirt quit (Ping timeout: 240 seconds) 2014-12-01T06:11:10Z alexey1 joined #scheme 2014-12-01T06:15:52Z alexey1 quit (Ping timeout: 255 seconds) 2014-12-01T06:24:27Z daviid quit (Ping timeout: 245 seconds) 2014-12-01T06:42:02Z Lingo joined #scheme 2014-12-01T06:57:58Z MichaelRaskin joined #scheme 2014-12-01T07:00:07Z c74d quit (Remote host closed the connection) 2014-12-01T07:07:03Z c74d joined #scheme 2014-12-01T07:10:43Z kongtomorrow joined #scheme 2014-12-01T07:14:21Z Lingo quit (Quit: Be back later ...) 2014-12-01T07:14:57Z Lingo joined #scheme 2014-12-01T07:16:41Z amgarching quit (Ping timeout: 244 seconds) 2014-12-01T07:21:52Z psy quit (Read error: No route to host) 2014-12-01T07:23:41Z psy joined #scheme 2014-12-01T07:25:14Z Lingo quit (Quit: Be back later ...) 2014-12-01T07:25:50Z Lingo joined #scheme 2014-12-01T07:30:17Z Lingo quit (Ping timeout: 245 seconds) 2014-12-01T07:51:28Z tianji joined #scheme 2014-12-01T07:51:55Z tianji: #who scheme 2014-12-01T07:52:19Z bjz joined #scheme 2014-12-01T07:53:42Z tianji left #scheme 2014-12-01T08:12:18Z alexey1 joined #scheme 2014-12-01T08:12:23Z tianji joined #scheme 2014-12-01T08:12:45Z tianji left #scheme 2014-12-01T08:16:12Z leo2007 quit (Remote host closed the connection) 2014-12-01T08:16:58Z alexey1 quit (Ping timeout: 264 seconds) 2014-12-01T08:26:20Z Lingo__ joined #scheme 2014-12-01T08:31:05Z Lingo__ quit (Ping timeout: 264 seconds) 2014-12-01T08:34:51Z fgudin joined #scheme 2014-12-01T08:37:36Z ventonegro joined #scheme 2014-12-01T09:03:05Z Bahman joined #scheme 2014-12-01T09:03:56Z girrig quit (Ping timeout: 258 seconds) 2014-12-01T09:10:03Z ASau joined #scheme 2014-12-01T09:13:30Z kongtomorrow quit 2014-12-01T09:14:07Z emlow joined #scheme 2014-12-01T09:14:56Z gabot quit (Ping timeout: 256 seconds) 2014-12-01T09:15:30Z gabot joined #scheme 2014-12-01T09:20:19Z robot-beethoven quit (Quit: ERC Version 5.3 (IRC client for Emacs)) 2014-12-01T09:22:28Z tessier_ quit (Changing host) 2014-12-01T09:22:28Z tessier_ joined #scheme 2014-12-01T09:25:32Z emlow quit (Quit: WeeChat 0.3.8) 2014-12-01T09:32:30Z emlow joined #scheme 2014-12-01T09:45:56Z BitPuffin joined #scheme 2014-12-01T09:50:44Z hypermagic joined #scheme 2014-12-01T10:09:53Z stct quit (Ping timeout: 272 seconds) 2014-12-01T10:12:46Z hypermagic quit (Ping timeout: 264 seconds) 2014-12-01T10:13:01Z alexey1 joined #scheme 2014-12-01T10:15:04Z Lingo__ joined #scheme 2014-12-01T10:17:17Z alexey1 quit (Ping timeout: 240 seconds) 2014-12-01T10:18:11Z Riastradh quit (Ping timeout: 250 seconds) 2014-12-01T10:19:52Z Riastradh joined #scheme 2014-12-01T10:19:56Z Lingo__ quit (Ping timeout: 265 seconds) 2014-12-01T10:25:15Z hypermagic joined #scheme 2014-12-01T10:32:51Z araujo joined #scheme 2014-12-01T10:33:52Z BitPuffin quit (Ping timeout: 250 seconds) 2014-12-01T10:38:52Z bjz quit (Ping timeout: 240 seconds) 2014-12-01T10:56:47Z jusss quit (Ping timeout: 244 seconds) 2014-12-01T10:58:47Z jeapostrophe joined #scheme 2014-12-01T10:58:47Z jeapostrophe quit (Changing host) 2014-12-01T10:58:47Z jeapostrophe joined #scheme 2014-12-01T11:02:22Z Lingo__ joined #scheme 2014-12-01T11:03:40Z rszeno joined #scheme 2014-12-01T11:11:39Z stepnem joined #scheme 2014-12-01T11:12:18Z Lingo__ quit (Quit: Be back later ...) 2014-12-01T11:13:46Z Lingo__ joined #scheme 2014-12-01T11:14:10Z vraid quit (Ping timeout: 250 seconds) 2014-12-01T11:22:51Z Lingo__ quit (Quit: Be back later ...) 2014-12-01T11:37:45Z przl joined #scheme 2014-12-01T11:45:58Z vraid joined #scheme 2014-12-01T11:58:17Z przl quit (Ping timeout: 240 seconds) 2014-12-01T12:05:11Z bjz joined #scheme 2014-12-01T12:13:53Z alexey1 joined #scheme 2014-12-01T12:14:37Z _5kg_ joined #scheme 2014-12-01T12:15:13Z _5kg quit (Ping timeout: 258 seconds) 2014-12-01T12:18:12Z alexey1 quit (Ping timeout: 245 seconds) 2014-12-01T12:25:48Z lloda` quit (Remote host closed the connection) 2014-12-01T12:30:38Z alexey1 joined #scheme 2014-12-01T12:33:11Z jewel_ joined #scheme 2014-12-01T12:36:46Z jewel quit (Ping timeout: 264 seconds) 2014-12-01T12:37:09Z b4283 joined #scheme 2014-12-01T12:51:05Z felipe joined #scheme 2014-12-01T12:52:02Z karswell` joined #scheme 2014-12-01T12:52:41Z karswell quit (Remote host closed the connection) 2014-12-01T12:53:35Z sheilong quit (Disconnected by services) 2014-12-01T12:53:50Z felipe is now known as sheilong 2014-12-01T12:58:40Z civodul joined #scheme 2014-12-01T13:08:31Z rszeno quit (Remote host closed the connection) 2014-12-01T13:11:12Z MichaelRaskin quit (Quit: MichaelRaskin) 2014-12-01T13:19:37Z cataska quit (Ping timeout: 240 seconds) 2014-12-01T13:20:27Z cataska joined #scheme 2014-12-01T13:24:10Z wingo joined #scheme 2014-12-01T13:26:03Z przl joined #scheme 2014-12-01T13:31:13Z cibs quit (Remote host closed the connection) 2014-12-01T13:31:50Z cibs joined #scheme 2014-12-01T13:33:52Z oldskirt joined #scheme 2014-12-01T13:42:03Z taylanub quit (Disconnected by services) 2014-12-01T13:42:33Z taylanub joined #scheme 2014-12-01T13:43:19Z przl quit (Ping timeout: 272 seconds) 2014-12-01T13:44:55Z jeapostrophe quit (Ping timeout: 258 seconds) 2014-12-01T13:50:56Z drdanmaku quit (Quit: Connection closed for inactivity) 2014-12-01T13:51:58Z daviid joined #scheme 2014-12-01T13:54:50Z jeapostrophe joined #scheme 2014-12-01T13:54:50Z jeapostrophe quit (Changing host) 2014-12-01T13:54:50Z jeapostrophe joined #scheme 2014-12-01T14:00:25Z jeapostrophe quit (Ping timeout: 272 seconds) 2014-12-01T14:02:42Z przl joined #scheme 2014-12-01T14:04:19Z _5kg_ quit (Ping timeout: 255 seconds) 2014-12-01T14:11:31Z davexunit joined #scheme 2014-12-01T14:11:48Z cluck joined #scheme 2014-12-01T14:15:36Z alexey1 quit (Remote host closed the connection) 2014-12-01T14:29:46Z jkraemer quit (Ping timeout: 258 seconds) 2014-12-01T14:33:50Z oleo joined #scheme 2014-12-01T14:34:39Z oldskirt quit (Ping timeout: 265 seconds) 2014-12-01T14:34:43Z jeapostrophe joined #scheme 2014-12-01T14:34:43Z jeapostrophe quit (Changing host) 2014-12-01T14:34:43Z jeapostrophe joined #scheme 2014-12-01T14:38:42Z oldskirt joined #scheme 2014-12-01T14:41:52Z jkraemer joined #scheme 2014-12-01T14:43:30Z xyh joined #scheme 2014-12-01T14:46:27Z scoofy: 'unquote' is only valid inside a 'quasiquote' block? 2014-12-01T14:46:54Z Riastradh: rudybot: eval (let (,5) unquote) 2014-12-01T14:46:55Z rudybot: Riastradh: your sandbox is ready 2014-12-01T14:46:55Z rudybot: Riastradh: ; Value: 5 2014-12-01T14:47:14Z Riastradh: rudybot: eval (car (quote (unquote 42))) 2014-12-01T14:47:14Z rudybot: Riastradh: ; Value: 'unquote 2014-12-01T14:47:28Z ijp: it only unquotes things inside a quasiquote block 2014-12-01T14:47:57Z scoofy: rudybot: ,(+ 1 1) 2014-12-01T14:47:57Z rudybot: scoofy: error: eval:1:0: unquote: not in quasiquote in: (unquote (+ 1 1)) 2014-12-01T14:48:03Z scoofy: rudybot: `(,(+ 1 1)) 2014-12-01T14:48:03Z rudybot: scoofy: ; Value: '(2) 2014-12-01T14:48:08Z scoofy: rudybot: (eva (+ 1 1) 2014-12-01T14:48:09Z rudybot: scoofy: eva habermann is clearly the better bellringer 2014-12-01T14:48:11Z scoofy: rudybot: (eval (+ 1 1) 2014-12-01T14:48:11Z rudybot: scoofy: emacsclient --eval '(buffer-list)' does as well 2014-12-01T14:48:14Z scoofy: rudybot: (eval (+ 1 1)) 2014-12-01T14:48:14Z rudybot: scoofy: ; Value: 2 2014-12-01T14:48:28Z scoofy: seems `(,(...)) = (eval ...) 2014-12-01T14:48:44Z ijp: `(,foo) is (list foo) 2014-12-01T14:48:49Z taylanub: `foo = (quasiquote foo), and ,foo = (unquote foo). quasiquote is a macro which is like quote (i.e. '), but goes through its given sub-structure seeking for two-element lists whose first element is 'unquote' and evaluates the second element, substituting it for the whole (unquote foo). 2014-12-01T14:48:55Z scoofy: rudybot: (list foo) 2014-12-01T14:48:55Z rudybot: scoofy: error: foo: undefined; cannot reference an identifier before its definition in module: 'program 2014-12-01T14:49:38Z scoofy: rudybody: (list 'foo) 2014-12-01T14:49:39Z _5kg_ joined #scheme 2014-12-01T14:49:44Z scoofy: rudybot: (list 'foo) 2014-12-01T14:49:45Z rudybot: scoofy: ; Value: '(foo) 2014-12-01T14:51:43Z taylanub: to reiterate: 'unquote' *itself* doesn't *do* anything; it's just a symbol that 'quasiquote' scans for. often 'unquote' itself is just bound to a macro that throws an error at compile time, so the user gets an error if they use 'unquote' outside of a 'quasiquote' form. 2014-12-01T14:52:11Z scoofy: in that situations throwing an error makes sense? 2014-12-01T14:52:25Z taylanub: scoofy: well, if they didn't do that, it would just raise an "unbound variable" error 2014-12-01T14:53:37Z taylanub: scoofy: have you learned the 'cond' syntax yet? 2014-12-01T14:53:42Z scoofy: 'bound to' in this context means 'defined as', i guess? 2014-12-01T14:53:58Z taylanub: yeah, more or less the same thing. the former is a little more technical I guess. 2014-12-01T14:54:17Z scoofy: taylanub, yep i checked the (cond) syntax 2014-12-01T14:55:05Z hypermagic quit (Ping timeout: 264 seconds) 2014-12-01T14:55:07Z taylanub: scoofy: then you know '(cond ...)' can end with an '(else ...)' clause, right? the 'else' there is similarly just a keyword which 'cond' scans for. basically the same thing as with 'unquote'. 2014-12-01T14:55:15Z taylanub: rudybot: (else 'x 'y 'z) 2014-12-01T14:55:16Z rudybot: taylanub: your sandbox is ready 2014-12-01T14:55:16Z rudybot: taylanub: error: eval:1:0: else: not allowed as an expression in: (else (quote x) (quote y) (quote z)) 2014-12-01T14:55:46Z taylanub: looks like 'else' is also bound to a macro that raises an error in rudybot. again, could have just said 'unbound variable' 2014-12-01T14:56:13Z scoofy: in other words, that means, keywords and syntax are defined in local scope or contexts 2014-12-01T14:56:33Z scoofy: for example 'else' is defined (bound to) inside a (cond) block 2014-12-01T14:56:36Z taylanub: such keywords are sometimes called "auxiliary syntax", and they conform to the usual lexical scoping rules 2014-12-01T14:57:10Z taylanub: 'cond' will check if the 'else' in it is the 'else' it knows. if I temporarily rebind 'else', then 'cond' will not react to it. 2014-12-01T14:57:22Z scoofy: so... how is this execupted? 'else' is unbound, until the interpreter arrives inside a (cond) block? how does it get 'bound' then? or is it just a macro that scans inside every (cond) block? 2014-12-01T14:57:36Z scoofy: before interpretation? 2014-12-01T14:57:40Z taylanub: rudybot: (let ((else #f)) (cond (else (display "foo\n")))) 2014-12-01T14:57:41Z rudybot: taylanub: Done. 2014-12-01T14:58:01Z scoofy: so (let ...) 'bind' vars 2014-12-01T14:58:14Z taylanub: scoofy: one could say "being unbound" is kind of a special binding 2014-12-01T14:58:21Z scoofy: 'error binding' ? :) 2014-12-01T14:58:34Z scoofy: normally that'd be an error situation, i guess 2014-12-01T14:58:42Z scoofy: referencing unbound things 2014-12-01T14:58:55Z taylanub: if I define a macro that scans for the keyword 'foo', and 'foo' was unbound while I defined that macro, then my macro will only react to the 'foo' keyword if it's also unbound in the scope in which I call my macro 2014-12-01T14:59:35Z scoofy: and if it was defined already? say, 'else' was defined by some other macro? then what would happen 2014-12-01T14:59:47Z taylanub: however, if I bind 'foo' to something, then define a macro under the scope of that 'foo' binding, then my macro will be looking for that exact 'foo' and ignore it if it's unbound or rebound 2014-12-01T15:01:11Z taylanub: in other words, the *names* of the keywords don't actually matter; the system only works in terms of bindings. this concept is called hygiene. 2014-12-01T15:01:45Z keyguard joined #scheme 2014-12-01T15:01:46Z scoofy: when a macro is run, it 'acts' on the ast of the program itself, correct? 2014-12-01T15:02:21Z scoofy: so it receives the original program, transform AST, and returns a modified program 2014-12-01T15:02:25Z taylanub: sexprs aren't exactly an AST, but yeah. specifically, in Scheme, they actually act on specially annotated sexprs, i.e. "syntax objects" 2014-12-01T15:03:00Z scoofy: well, s-expr meaning AST in this context 2014-12-01T15:03:37Z taylanub: so when calling (my-macro (foo 'x)), it doesn't just get (foo (quote x)), it gets something like (foo (quote x)) 2014-12-01T15:04:17Z taylanub: (however, 'quote' makes the binding of 'x' irrelevant. 'quote' is sometimes called "unhygienic" for that reason.) 2014-12-01T15:04:36Z scoofy: what does mean in that line? 2014-12-01T15:05:02Z taylanub: that there's some extra invisible information that tells the macro which exact 'foo' or which exact 'quote' the one at hand is 2014-12-01T15:05:09Z keyguard: hi all, i'm noob @ scheme, is there any way for R5RS-like dialect to print the listing of constructed lambda variable? print returns #function, not the exact content. sorry for stupid question. 2014-12-01T15:05:49Z taylanub: keyguard: nope; a lambda expression evaluates to a "procedure object" which might not contain its original source code anymore. 2014-12-01T15:06:05Z taylanub: scoofy: have you learned anything about module/library systems in Scheme yet? namely that variables can be "renamed" while being imported. 2014-12-01T15:06:18Z scoofy: taylanub, nope. i'm not there yet.. 2014-12-01T15:06:33Z keyguard: taylanub: thx! 2014-12-01T15:07:48Z taylanub: scoofy: hm, guess I can still use the example: in a library I could define (bind) foo to something, then define a macro my-macro which scans for that foo, then someone could load my library, but with 'foo' renamed to 'bar', and then they could call (my-macro (bar ...)) and my macro *would* recognize the 'bar' as my 'foo'! it's magic. 2014-12-01T15:08:14Z scoofy: huh, 2014-12-01T15:08:32Z keyguard: yet another stupid question: what the construction (values (func obj1) obj2 obj3 obj4)) return? stcuked with understanding how it could work :( 2014-12-01T15:09:19Z taylanub: I could, for example, just bind 'foo' to a macro that raises an error... if I don't bind foo at all, then the library user has no way of renaming it and must always use 'foo' for my macro, and if the library user wants to use the variable name 'foo' for a different binding, then they're out of luck. 2014-12-01T15:09:20Z scoofy: so macros can be used like.... transparently renaming things in other libs to avoid namespace condflicts, an such? 2014-12-01T15:09:48Z taylanub: scoofy: you could say macros themselves don't *actually* see symbols, they only see bindings. 2014-12-01T15:10:01Z scoofy: that is, the 'definitions' of symbols 2014-12-01T15:10:06Z taylanub: right 2014-12-01T15:11:14Z taylanub: keyguard: (values x y z) "returns multiple values" so to say. just like one can pass multiple arguments into a function in most languages, in Scheme a function can also return multiple values. those values can then be passed on verbatim as the arguments to a different function which happens to take the same number of arguments as the returned values, or you could use `let-values' to locally bind 2014-12-01T15:11:14Z taylanub: the returned values to variables 2014-12-01T15:11:57Z daviid quit (Ping timeout: 240 seconds) 2014-12-01T15:11:59Z scoofy: taylanub, how much experience it takes approx, before one could say he/she is 'fluent' in scheme? 2014-12-01T15:12:02Z taylanub: keyguard: e.g. (call-with-values function-returning-three-values function-taking-three-arguments) 2014-12-01T15:12:04Z scoofy: half year? a year? two years? 2014-12-01T15:12:19Z taylanub: scoofy: no idea what I'd call "fluent" ... 2014-12-01T15:12:27Z scoofy: sure, that's a pretty ambiguous term. 2014-12-01T15:12:28Z keyguard: taylanub: thx! i thought so, but was unsure. 2014-12-01T15:12:49Z taylanub: also heavily depends on the person and how much/often they read and write Scheme... 2014-12-01T15:12:58Z scoofy: well... what i mean by 'fluent' is that you know the libraries to use, know how to use them in practice, and can do a job or task quickly 2014-12-01T15:13:03Z developernotes joined #scheme 2014-12-01T15:13:19Z scoofy: sure. an accurate estimate cannot be given. 2014-12-01T15:13:53Z scoofy: but for exampe, after 2 years of daily programming in tcl, i'd say my knowledge is 'intermediate levl' 2014-12-01T15:14:06Z taylanub: more or less the same time as any language I'd say... if concentrating heavily, weeks should be enough. in my case, I just slowly learned it over the years. 2014-12-01T15:14:06Z scoofy: there's still a lot i don't know 2014-12-01T15:14:57Z scoofy: do you think scheme is easy to learn, once you got the hang of this functional thinking? 2014-12-01T15:16:52Z sheilong quit (Quit: Konversation terminated!) 2014-12-01T15:17:37Z taylanub: it might take time to learn all the fancy concepts such as continuations and hygiene and all, but then again, other languages will usually have similarly deep concepts underlying them; it's just that they tend to hide them from the users to some extent... 2014-12-01T15:17:47Z scoofy: sure. 2014-12-01T15:18:13Z vraid quit (Ping timeout: 244 seconds) 2014-12-01T15:18:24Z scoofy: another question: do scheme systems often support a C foreign interface or something similar? 2014-12-01T15:18:36Z scoofy: or, the ability to write subprograms / macros in C ? 2014-12-01T15:18:43Z taylanub: some do. Guile has a notoriously nice one I think. 2014-12-01T15:19:06Z scoofy: nice. never worked with Guile. what can be said about it? is it a nice scheme? 2014-12-01T15:19:35Z scoofy: iirc that's the standard gnu extension language 2014-12-01T15:20:35Z taylanub: yeah. it had a revamp in the last few years and is getting ever more delicious. 2014-12-01T15:20:45Z scoofy: sounds good. 2014-12-01T15:21:00Z scoofy: hm, i actually have it installed on my system (guess, comes default) 2014-12-01T15:21:24Z scoofy: so many schemes! so difficult to choose from! :) 2014-12-01T15:21:29Z taylanub: yeah 2014-12-01T15:21:40Z taylanub: http://wingolog.org/archives/2013/01/07/an-opinionated-guide-to-scheme-implementations 2014-12-01T15:21:41Z rudybot: http://tinyurl.com/b3fjhzx 2014-12-01T15:21:43Z scoofy: i have no clue of the potential advantages they can offer... 2014-12-01T15:22:02Z taylanub: you'll like that article then :) 2014-12-01T15:22:07Z scoofy: would be useful to learn a few of them, so that when I write my own, i should know what to look out for and what do avoid 2014-12-01T15:22:12Z scoofy: thanks, checking 2014-12-01T15:22:23Z scoofy: s/do/to/ 2014-12-01T15:22:45Z scoofy: hm, indeed very useful article 2014-12-01T15:23:41Z Riastradh quit (Ping timeout: 250 seconds) 2014-12-01T15:24:35Z scoofy: sounds like, guile is a nice option 2014-12-01T15:24:42Z scoofy: especially with C compatible ABI 2014-12-01T15:25:19Z scoofy: "To choose an implementation is to choose a tribe" heh 2014-12-01T15:26:34Z xyh: which syntax in the following two do you prefer ??? --> http://img.vim-cn.com/f2/e81f57b00d0822816615f9005481f12ae2483a.png 2014-12-01T15:27:27Z xyh: :) 2014-12-01T15:28:06Z scoofy: what is the left side? 2014-12-01T15:28:19Z scoofy: is that some DSL written in scheme that runs into the one ont he right? 2014-12-01T15:28:40Z drdanmaku joined #scheme 2014-12-01T15:29:31Z scoofy: and regarding DSLs, how good is scheme at writing DSLs? 2014-12-01T15:30:50Z taylanub: scoofy: all of them, since macros are standard! 2014-12-01T15:31:18Z taylanub: but procedural macros would be a huge help in some situations. most "serious" implementations have procedural macros in one or another form. most popularly 'syntax-case'. 2014-12-01T15:31:20Z scoofy: can you also change the syntax? 2014-12-01T15:31:23Z scoofy: to look like 'not scheme' ? 2014-12-01T15:31:26Z taylanub: and Racket's 'syntax-parse' is notoriously neat. 2014-12-01T15:31:34Z taylanub: no, not really 2014-12-01T15:31:36Z ijp: taylanub: you keep using that word.... 2014-12-01T15:31:45Z taylanub: ijp: which? 2014-12-01T15:31:49Z ijp: notorious 2014-12-01T15:31:51Z scoofy: so... you have sytax freedom inly inside s-exprs, i guess 2014-12-01T15:31:57Z xyh: scoofy: I maybe implemented the left side syntax. about DSL, if you re-use the sexp as syntax it will be easy, but if you want something other then sexp it will be hard. 2014-12-01T15:32:05Z taylanub: ijp: doesn't it mean "noteworthy" basically? 2014-12-01T15:32:11Z scoofy: xyh, i see, thanks 2014-12-01T15:32:21Z civodul quit (Ping timeout: 250 seconds) 2014-12-01T15:32:23Z ijp: taylanub: no, it's only used for negative things 2014-12-01T15:32:28Z taylanub: huh, looks like "notorious" has negative connotation .. damn, have been using it wrong for a while now :( 2014-12-01T15:32:38Z ijp: like "notorious murder" or "notorious php user" 2014-12-01T15:32:42Z taylanub: LOL 2014-12-01T15:32:48Z scoofy: "notorius schemer" 2014-12-01T15:33:21Z taylanub: above I said "notoriously nice" and "notoriously neat" .. did these sound sarcastic or so maybe? :P 2014-12-01T15:34:56Z scoofy: taylanub, how are 'procedural macros' different? it's like, nonprocedural ones are like running a regexp for a match, and procedural ones are when you can execute callback code on match? 2014-12-01T15:35:57Z taylanub: scoofy: 'syntax-rules' only does declarative pattern-matching on the syntax objects it receives, and only lets you create the output via a template... 2014-12-01T15:36:15Z scoofy: so that's like a regexp search/replace, except applied to syntax trees 2014-12-01T15:36:18Z scoofy: if i get right 2014-12-01T15:36:40Z scoofy: that can be used for, say, program optimization, correct? 2014-12-01T15:36:46Z scoofy: like, eliminating dead loops and such 2014-12-01T15:37:03Z taylanub: hm, yes, with the limitation that you may *only* use a string to create the search/replace output, where special tokens in the string represent matched input. but you can't execute arbitrary code where you shuffle around the matched input... 2014-12-01T15:37:03Z xyh: I think, just like the "here-doc", I can embeding the left YAML-like syntax into scheme, [and design new features on it, to do list with loop and so on ... 2014-12-01T15:37:49Z vinleod joined #scheme 2014-12-01T15:39:17Z wingo quit (Ping timeout: 240 seconds) 2014-12-01T15:39:46Z scoofy: taylanub, can you give me an example of this search/replace template? 2014-12-01T15:41:00Z taylanub: scoofy: you know sed s/foo/bar/ syntax? 2014-12-01T15:41:06Z scoofy: yep 2014-12-01T15:41:07Z scoofy: basic regexp 2014-12-01T15:41:11Z scoofy: is that the same? or similar? 2014-12-01T15:41:22Z taylanub: the substitution logic, irrespective of what regexp it uses 2014-12-01T15:41:28Z scoofy: sure. 2014-12-01T15:41:44Z scoofy: well regexp uses + and * for repetition indicators, basically. on the simplest level. 2014-12-01T15:42:04Z scoofy: (plus a whole plethora of other operators and features) 2014-12-01T15:42:16Z taylanub: with the s/// syntax I could do s/foo-(.*)-bar/foo-bar-\1/ to turn foo-qux-bar into foo-bar-qux. this is like syntax-rules; pure pattern/template 2014-12-01T15:42:41Z scoofy: oh, so it's *actually* the 's///' syntax... 2014-12-01T15:42:59Z scoofy: interesting :) so it's like a 'built-in sed' ? :) 2014-12-01T15:43:24Z scoofy: actually, that's a pretty cool idea! 2014-12-01T15:43:32Z taylanub: with a procedural system I could do, say (pseudocode) match("foo-qux-bar", regexp(/foo-(.*)-bar/)){ /* imagine I can put any code here, and $1 is bound to "qux" */ } 2014-12-01T15:43:56Z scoofy: yep, i get it 2014-12-01T15:44:06Z scoofy: 'callback command execution on match', in procedural terms 2014-12-01T15:44:22Z scoofy: or that how it would be called in imperative langs 2014-12-01T15:44:55Z scoofy: and that brings me to the question.... how is the evaluation order of multiple commands? 2014-12-01T15:45:10Z scoofy: (a)(b)(c) ---> order of execution = a, b, c, or we cannot know? 2014-12-01T15:45:23Z taylanub: unspecified, 2014-12-01T15:45:33Z scoofy: can it be .... serialized? or not sure how that is called 2014-12-01T15:45:57Z scoofy: to specify execution order of commands 2014-12-01T15:46:02Z taylanub: for sequencing, 'begin' must be used, or something that has a "body", like lambda 2014-12-01T15:46:10Z scoofy: hm, not bad 2014-12-01T15:46:36Z scoofy: otherwise, the individual functions could be executed parallel in different threads, CPUs or execution units, is that true? 2014-12-01T15:47:44Z taylanub: scoofy: nope, it's specified that they execute in *some* order, but not what (and not even the same every time) 2014-12-01T15:48:25Z scoofy: couldn't they be run parallel? i think that'd work 2014-12-01T15:48:37Z scoofy: like, in two separate CPU threads 2014-12-01T15:48:44Z scoofy: can that work? 2014-12-01T15:49:15Z taylanub: the standard forbids it I think 2014-12-01T15:50:35Z taylanub: yeah, page 13 of R7RS. they operands may not be evaluated concurrently. 2014-12-01T15:50:55Z scoofy: why is that? 2014-12-01T15:54:42Z scoofy: when 'foo is expanded, it becomes (quote foo) ? 2014-12-01T15:57:59Z taylanub: allowing concurrent evaluation of operands might cause some problems; I don't really know. 2014-12-01T15:58:06Z scoofy: ok. 2014-12-01T15:58:20Z taylanub: scoofy: 'foo turns into (quote foo) during reading (parsing of sexprs) already, even before macro expansion starts. 2014-12-01T15:58:59Z scoofy: rudybot: (quote fo)o) 2014-12-01T15:58:59Z rudybot: scoofy: quote 2014-12-01T15:59:05Z scoofy: rudybot: (quote fo\)o) 2014-12-01T15:59:06Z rudybot: scoofy: ; Value: '|fo)o| 2014-12-01T15:59:11Z scoofy: rudybot: (quote fo(o) 2014-12-01T15:59:11Z rudybot: scoofy: quote 2014-12-01T15:59:14Z scoofy: rudybot: (quote fo\(o) 2014-12-01T15:59:14Z rudybot: scoofy: ; Value: '|fo(o| 2014-12-01T15:59:26Z scoofy: what is this? |...| means, ( and ) are escaped inside? 2014-12-01T15:59:33Z taylanub: || is like "" but for symbols 2014-12-01T15:59:40Z scoofy: hm. 2014-12-01T15:59:47Z atomx joined #scheme 2014-12-01T15:59:51Z taylanub: standardized only in R7RS 2014-12-01T16:00:07Z scoofy: how do you put | inside |...| 2014-12-01T16:00:17Z scoofy: rudybot: (quote |fo|o|) 2014-12-01T16:00:17Z rudybot: scoofy: quote 2014-12-01T16:00:19Z scoofy: rudybot: (quote |fo\|o|) 2014-12-01T16:00:20Z rudybot: scoofy: you didn't read the sentences that preceeded my quote. it was about the jokes they made about each other 2014-12-01T16:00:28Z scoofy: sure. 2014-12-01T16:01:47Z taylanub: rudybot: |foo\|bar| 2014-12-01T16:01:48Z rudybot: taylanub: just foobar, without the quotes. and I don't wanna have to define a variable for every string. 2014-12-01T16:01:54Z taylanub: rudybot: (quote |foo\|bar|) 2014-12-01T16:01:54Z rudybot: taylanub: (string-match "^foo" "foobar") 2014-12-01T16:02:03Z taylanub: eh .. rudybot seems broken in this regard 2014-12-01T16:02:18Z scoofy: funny bot :P 2014-12-01T16:02:26Z taylanub: rudybot: eval (quote |foo\|bar|) 2014-12-01T16:02:27Z rudybot: taylanub: error: eval:1:16: read: unbalanced `|' 2014-12-01T16:02:31Z taylanub: hmm... 2014-12-01T16:03:03Z scoofy: what is the standard "print" function? eqivalent to C "puts" ... 2014-12-01T16:03:09Z LeoNerd: display 2014-12-01T16:03:16Z scoofy: why so long? :) 2014-12-01T16:03:47Z scoofy: ok, in chicken secheme interpreter, that gives me: 2014-12-01T16:03:54Z scoofy: #;10> display 'hi 2014-12-01T16:03:54Z scoofy: # 2014-12-01T16:03:54Z scoofy: #;11> hi 2014-12-01T16:04:04Z scoofy: what is that thing, and why is taht displayed? 2014-12-01T16:04:22Z scoofy: means external procedure call? 2014-12-01T16:04:32Z taylanub: you forgot the parantheses. looks like it just took "display" and "'hi" as two separate inputs at the REPL 2014-12-01T16:04:40Z scoofy: oh. indeed. 2014-12-01T16:04:48Z LeoNerd: You didn't ask it to -invoke- the function, just show you it 2014-12-01T16:04:53Z taylanub: if you just input "display" it will print out what that variable is bound to, which in this case is some procedure 2014-12-01T16:04:57Z scoofy: yep...so it gave me the address... 2014-12-01T16:05:13Z scoofy: hm. so i guess that works for every function 2014-12-01T16:05:16Z scoofy: no 2014-12-01T16:05:22Z scoofy: #;3> define 2014-12-01T16:05:22Z scoofy: Error: unbound variable: define 2014-12-01T16:05:22Z joneshf joined #scheme 2014-12-01T16:05:27Z taylanub: it works for every variable 2014-12-01T16:05:32Z taylanub: define is a syntax keyword 2014-12-01T16:05:33Z scoofy: why? does 'define' not have a value? 2014-12-01T16:06:38Z taylanub: syntax keywords might technically be "bound" to something at compile-time, but you won't be able to reach that thing as run-time data (well, with implementation-specific tricks you could) 2014-12-01T16:06:55Z LeoNerd: (define new-binding value-expression) is a special form 2014-12-01T16:07:01Z LeoNerd: There is no symbol simply called define 2014-12-01T16:07:12Z taylanub: s/symbol/variable/ 2014-12-01T16:07:33Z LeoNerd: er.. yah. :) Obviously there's a /symbol/ since you can write the program code ;) 2014-12-01T16:07:38Z taylanub: you can lexically rebind it by the way 2014-12-01T16:07:42Z scoofy: yap... it has to be :) 2014-12-01T16:07:43Z taylanub: rudybot: (let ((define 'x)) define) 2014-12-01T16:07:44Z rudybot: taylanub: ; Value: 'x 2014-12-01T16:10:19Z scoofy: next n00b question: how do I put a newline after 'hi' .... ? 2014-12-01T16:11:16Z taylanub: rudybot: (begin (display "hi\n") (display 'hi) (newline)) 2014-12-01T16:11:16Z rudybot: taylanub: ; stdout: "hi\nhi\n" 2014-12-01T16:11:31Z taylanub: eh .. well anyway, either with \n in a string or with the procedure 'newline' 2014-12-01T16:11:48Z scoofy: (display 'hi\n) ---> doesn't do it (in csi) 2014-12-01T16:11:57Z taylanub: nope, \n only inside strings 2014-12-01T16:12:07Z scoofy: ah. so "hi\n" 2014-12-01T16:12:18Z scoofy: ok, works 2014-12-01T16:12:19Z taylanub: you could also use some 'format' procedure, say (format "~a\n" 'hi). ~a is like %s in printf (but for all objects) 2014-12-01T16:12:38Z bjz quit (Read error: Connection reset by peer) 2014-12-01T16:12:45Z scoofy: cool 2014-12-01T16:12:53Z scoofy: are there other special ~ forms in format? 2014-12-01T16:13:09Z bjz joined #scheme 2014-12-01T16:13:18Z taylanub: depends on which 'format' :P there's SRFI-28, SRFI-48, and any number of implementation-specific ones. 2014-12-01T16:13:23Z scoofy: ah :) 2014-12-01T16:13:39Z scoofy: ok, i mean anything that is common and i should know about it... 2014-12-01T16:14:07Z taylanub: probably most implementations will support a 'format' that's very similar to SRFI-48 .. well at least I know that Guile does 2014-12-01T16:14:31Z scoofy: ok, will check specs. i guess it's similar to fprintf() 2014-12-01T16:14:36Z taylanub: they might also offer SRFI-48 itself, which you could import to override any impl-specific 'format' with the one from SRFI-48 2014-12-01T16:14:37Z scoofy: or, printf() 2014-12-01T16:15:04Z taylanub: you might want to read the SRFI-48 specification for starters; most should be similar to that 2014-12-01T16:15:04Z scoofy: is there also a (scan ...) analg? 2014-12-01T16:15:18Z scoofy: sure. reading the spec is a good idea in this case. 2014-12-01T16:15:30Z taylanub: none that I know of. but note that we also have 'read' and 'write'. 2014-12-01T16:15:46Z scoofy: for standard i/o ? 2014-12-01T16:15:52Z theseb joined #scheme 2014-12-01T16:16:23Z taylanub: 'read' reads sexpr data, 'write' writes sexpr data (and if given an object with no sexpr representation it'll print something suitable which will just not be possible to 'read' back in; for example procedures) 2014-12-01T16:16:39Z scoofy: you mean, in textual, serialized form? 2014-12-01T16:16:50Z taylanub: rudybot: (with-input-from-string "(foo (bar) baz)" (lambda () (read))) 2014-12-01T16:16:50Z rudybot: taylanub: ; Value: '(foo (bar) baz) 2014-12-01T16:17:01Z taylanub: rudybot: (write (with-input-from-string "(foo (bar) baz)" (lambda () (read)))) 2014-12-01T16:17:01Z rudybot: taylanub: ; stdout: "(foo (bar) baz)" 2014-12-01T16:17:07Z xyh quit (Ping timeout: 265 seconds) 2014-12-01T16:17:53Z scoofy: it returns the same. when is this useful? 2014-12-01T16:18:20Z taylanub: no, the former returned a list which I read from a string. the latter read a list from a string, then wrote it again... 2014-12-01T16:18:25Z taylanub: rudybot: (write (list 'a 'b 'c)) 2014-12-01T16:18:26Z rudybot: taylanub: ; stdout: "(a b c)" 2014-12-01T16:18:44Z vraid joined #scheme 2014-12-01T16:18:44Z scoofy: so it turned string into list 2014-12-01T16:18:56Z taylanub: serializing/deserializing sexprs basically 2014-12-01T16:18:57Z scoofy: or list into string 2014-12-01T16:19:00Z scoofy: cool 2014-12-01T16:19:02Z scoofy: will be useful 2014-12-01T16:20:25Z xyh joined #scheme 2014-12-01T16:23:14Z Riastradh joined #scheme 2014-12-01T16:29:22Z oldskirt quit (Ping timeout: 258 seconds) 2014-12-01T16:31:00Z oldskirt joined #scheme 2014-12-01T16:38:20Z Pixel_Outlaw joined #scheme 2014-12-01T16:39:36Z przl quit (Ping timeout: 250 seconds) 2014-12-01T16:41:01Z Pixel_Outlaw: Can anyone tell me if there is a minimal standard for small schemes? A series of checks? I'm implementing my own scheme like 1000's of others have before me. 2014-12-01T16:42:05Z taylanub: Pixel_Outlaw: more minimal than R5RS? 2014-12-01T16:43:41Z Pixel_Outlaw: Holy cow. It's short. 2014-12-01T16:43:43Z Pixel_Outlaw: That will do. 2014-12-01T16:44:13Z ijp: taylanub: given the number of schemes that fail to implement the r5rs, it must not be minimal enough 2014-12-01T16:45:20Z taylanub: Pixel_Outlaw: bonus points if you implement call/cc in terms of delimited continuations 2014-12-01T16:46:04Z Pixel_Outlaw: I want to just support strings instead of both strings and chars. Is there really need for char aside for memory size? 2014-12-01T16:46:47Z taylanub: Pixel_Outlaw: strings are internally arrays of characters. you might want to support only ASCII characters... 2014-12-01T16:47:27Z taylanub: if you do that, then a character is really just a C 'char' plus some type tag, and a string could be a C 'char*' plusu a type tag. 2014-12-01T16:47:39Z taylanub AFK 2014-12-01T16:50:37Z Pixel_Outlaw: Well it is still open I guess. :) I just finished making a CONS cell in C++ that is essentially two void * with two enumerated type flags, and many overloaded versions of the constructor. 2014-12-01T16:50:38Z daviid joined #scheme 2014-12-01T17:00:22Z ijp quit (Quit: This ijp has ended peacefully) 2014-12-01T17:12:59Z atomx quit (Remote host closed the connection) 2014-12-01T17:17:09Z bb010g quit (Quit: Connection closed for inactivity) 2014-12-01T17:18:54Z xyh quit (Remote host closed the connection) 2014-12-01T17:21:42Z atomx joined #scheme 2014-12-01T17:25:23Z ventonegro quit (Remote host closed the connection) 2014-12-01T17:31:03Z b4283 quit (Quit: Konversation terminated!) 2014-12-01T17:41:20Z oleo quit (Read error: Connection reset by peer) 2014-12-01T17:45:04Z oleo joined #scheme 2014-12-01T17:51:46Z alexei joined #scheme 2014-12-01T17:52:17Z oldskirt_ joined #scheme 2014-12-01T17:52:17Z oldskirt_ quit (Changing host) 2014-12-01T17:52:17Z oldskirt_ joined #scheme 2014-12-01T17:56:00Z oldskirt quit (Ping timeout: 258 seconds) 2014-12-01T17:58:51Z psy quit (Disconnected by services) 2014-12-01T17:59:09Z psy_ joined #scheme 2014-12-01T18:01:12Z psy_ quit (Max SendQ exceeded) 2014-12-01T18:01:29Z psy_ joined #scheme 2014-12-01T18:02:34Z alexei quit (Ping timeout: 264 seconds) 2014-12-01T18:06:53Z vinleod quit (Quit: ["Textual IRC Client: www.textualapp.com"]) 2014-12-01T18:11:37Z weinholt joined #scheme 2014-12-01T18:11:58Z Pixel_Outlaw quit (Quit: Leaving) 2014-12-01T18:15:06Z ijp joined #scheme 2014-12-01T18:17:52Z wingo joined #scheme 2014-12-01T18:21:52Z joneshf-laptop quit (Ping timeout: 250 seconds) 2014-12-01T18:22:09Z developernotes quit (Quit: My MacBook Pro has gone to sleep. ZZZzzz…) 2014-12-01T18:25:04Z soegaard joined #scheme 2014-12-01T18:26:13Z kongtomorrow joined #scheme 2014-12-01T18:26:53Z jeapostr1phe joined #scheme 2014-12-01T18:28:02Z dsp__ quit (Remote host closed the connection) 2014-12-01T18:29:38Z jeapostrophe quit (Ping timeout: 240 seconds) 2014-12-01T18:30:14Z Pixel_Outlaw joined #scheme 2014-12-01T18:31:16Z joneshf quit (Remote host closed the connection) 2014-12-01T18:38:15Z rtra quit (Ping timeout: 265 seconds) 2014-12-01T18:40:45Z MichaelRaskin joined #scheme 2014-12-01T18:41:03Z theseb quit (Quit: Leaving) 2014-12-01T18:43:10Z rtra joined #scheme 2014-12-01T19:07:10Z developernotes joined #scheme 2014-12-01T19:19:22Z sheilong joined #scheme 2014-12-01T19:35:58Z wingo quit (Ping timeout: 250 seconds) 2014-12-01T19:50:06Z hiroaki joined #scheme 2014-12-01T19:51:46Z jeapostr1phe quit (Read error: Connection reset by peer) 2014-12-01T19:56:39Z jeapostrophe joined #scheme 2014-12-01T19:56:39Z jeapostrophe quit (Changing host) 2014-12-01T19:56:39Z jeapostrophe joined #scheme 2014-12-01T20:01:44Z leppie quit (Ping timeout: 258 seconds) 2014-12-01T20:02:54Z jeapostrophe quit (Ping timeout: 244 seconds) 2014-12-01T20:05:59Z leppie joined #scheme 2014-12-01T20:26:41Z bb010g joined #scheme 2014-12-01T20:27:23Z Vutral quit (Ping timeout: 272 seconds) 2014-12-01T20:28:24Z jeapostrophe joined #scheme 2014-12-01T20:28:24Z jeapostrophe quit (Changing host) 2014-12-01T20:28:24Z jeapostrophe joined #scheme 2014-12-01T20:32:52Z juanfra quit (Quit: juanfra) 2014-12-01T20:34:37Z alexey1 joined #scheme 2014-12-01T20:34:53Z civodul joined #scheme 2014-12-01T20:35:50Z Vutral joined #scheme 2014-12-01T20:45:00Z jewel__ joined #scheme 2014-12-01T20:45:17Z oldskirt_ quit (Ping timeout: 245 seconds) 2014-12-01T20:45:35Z ska-fan: Why is the racket repl readline so strange? Up doesn't scroll through command history for example 2014-12-01T20:45:45Z jewel_ quit (Ping timeout: 272 seconds) 2014-12-01T20:47:04Z sheilong quit (Quit: Konversation terminated!) 2014-12-01T20:49:45Z ska-fan: maybe it's confused by the vi editing mode? 2014-12-01T20:54:47Z soegaard: ska-fan: It is due to licensing issues. readline is GPL. 2014-12-01T20:55:20Z soegaard: ska-fan: There is an easy fix though: http://docs.racket-lang.org/readline/index.html?q=readline#%28mod-path._readline%29 2014-12-01T20:55:21Z rudybot: http://tinyurl.com/pkd2cld 2014-12-01T20:55:43Z soegaard: Note the (install-readline!) command. 2014-12-01T20:56:21Z asumu: ska-fan: in addition to soegaard's good advice, you can use XREPL which provides a bunch more REPL features 2014-12-01T20:57:59Z taylanub: soegaard: Racket is GPL, no? 2014-12-01T20:58:19Z soegaard: no - LGPL 2014-12-01T20:58:37Z soegaard: You can use Racket for commercial purposes without problems. 2014-12-01T20:58:38Z ska-fan: I have (require xrepl) in ~/.racketrc, shouldn't that do it? 2014-12-01T20:58:40Z taylanub: ah, ok 2014-12-01T20:59:04Z taylanub: soegaard: well, you can use any GPL software for commercial purposes without problems ;) 2014-12-01T20:59:17Z soegaard: ;-) 2014-12-01T20:59:50Z taylanub: (hm, did that sound like I'm saying you can violate the license? GPL software actually can be used for any purpose, commercial or otherwise...) 2014-12-01T21:00:18Z taylanub: the wink might have been misleading :P 2014-12-01T21:02:48Z soegaard: A stack is most common though. 2014-12-01T21:03:06Z soegaard: It is however an implementation "detail". 2014-12-01T21:03:23Z soegaard: sorry wrong channel 2014-12-01T21:04:27Z soegaard: I am not saying GPL can't be used for commercial purposes. But you can't use it without releasing your code back. 2014-12-01T21:05:39Z ska-fan: Anyone else using editing-mode vi in inputrc and having issues at racket's repl? 2014-12-01T21:05:47Z ska-fan: at racket's xrepl? 2014-12-01T21:08:06Z asumu: ska-fan: what are the issues? You're saying readline in vi mode doesn't work at all in xrepl? 2014-12-01T21:10:09Z asumu: ska-fan: it works for me (switching between them using M-C-j) 2014-12-01T21:11:52Z scoofy: soegaard, that's called proprietary software, not 'commercial' software 2014-12-01T21:12:17Z scoofy: proprietary software can be freeware, and GPL software can be commercial 2014-12-01T21:13:21Z soegaard: ok 2014-12-01T21:13:37Z scoofy: really. FSF actually encourages selling GPL software. 2014-12-01T21:14:54Z soegaard: I know. I wasn't clear. 2014-12-01T21:15:19Z soegaard: The point was just that there is an important difference between LGPL and GPL. 2014-12-01T21:15:47Z soegaard: And that's why Racket can't ship with readline. 2014-12-01T21:16:28Z soegaard: Good news though: Leif is writing an "mini readline" in Racket and when it is done, we can skip readline entirely. 2014-12-01T21:24:19Z hive-mind quit (Disconnected by services) 2014-12-01T21:24:46Z hive-mind joined #scheme 2014-12-01T21:24:48Z TrueShif1Blue joined #scheme 2014-12-01T21:25:03Z byte48_ joined #scheme 2014-12-01T21:25:08Z ska-fan: asumu: I run racket, enter (+ 1 2), then . expected: (+ 1 2) at the prompt. actual: prompt empty. 2014-12-01T21:25:32Z ska-fan: asumu: When I do (+ 1 2), (+ 1 2) does appear at the prompt. 2014-12-01T21:26:12Z alexey1 quit (Remote host closed the connection) 2014-12-01T21:27:20Z weinholt` joined #scheme 2014-12-01T21:27:49Z benaiah` joined #scheme 2014-12-01T21:27:53Z ijp quit (Quit: This ijp has ended peacefully) 2014-12-01T21:29:07Z oleo__ joined #scheme 2014-12-01T21:29:26Z rtra` joined #scheme 2014-12-01T21:31:22Z oldskirt joined #scheme 2014-12-01T21:31:31Z oldskirt quit (Changing host) 2014-12-01T21:31:31Z oldskirt joined #scheme 2014-12-01T21:32:40Z oleo__ quit (Quit: Verlassend) 2014-12-01T21:35:05Z hiroaki quit (*.net *.split) 2014-12-01T21:35:05Z rtra quit (*.net *.split) 2014-12-01T21:35:05Z weinholt quit (*.net *.split) 2014-12-01T21:35:05Z oleo quit (*.net *.split) 2014-12-01T21:35:06Z TrueShiftBlue quit (*.net *.split) 2014-12-01T21:35:06Z benaiah quit (*.net *.split) 2014-12-01T21:35:06Z carc quit (*.net *.split) 2014-12-01T21:35:07Z byte48 quit (*.net *.split) 2014-12-01T21:35:08Z benaiah` is now known as benaiah 2014-12-01T21:35:10Z rtra` is now known as rtra 2014-12-01T21:35:17Z weinholt` is now known as weinholt 2014-12-01T21:37:08Z oleo__ joined #scheme 2014-12-01T21:37:51Z oleo__ is now known as oleo 2014-12-01T21:42:56Z chameco quit (Ping timeout: 258 seconds) 2014-12-01T21:42:59Z asumu: ska-fan: are you doing in insert mode or command mode? 2014-12-01T21:43:07Z asumu: Because it won't work if you're still in insert mode. 2014-12-01T21:43:42Z asumu: It is odd that it works if you do down and then up though... 2014-12-01T21:44:41Z vinleod joined #scheme 2014-12-01T21:45:57Z chameco joined #scheme 2014-12-01T21:48:30Z davexunit quit (Quit: Later) 2014-12-01T21:54:27Z ska-fan: asumu: I assume it's insert mode. That works in all other readline prompts. 2014-12-01T21:56:22Z asumu: Might be a bug then, can you submit a bug report? 2014-12-01T22:04:27Z hiroaki joined #scheme 2014-12-01T22:08:25Z dsp joined #scheme 2014-12-01T22:12:12Z oleo quit (Quit: Verlassend) 2014-12-01T22:12:56Z oleo joined #scheme 2014-12-01T22:25:54Z Bahman quit (Quit: Ave atque vale) 2014-12-01T22:33:50Z developernotes quit (Quit: Textual IRC Client: www.textualapp.com) 2014-12-01T22:34:37Z cojy quit (Read error: Connection reset by peer) 2014-12-01T22:36:17Z cojy joined #scheme 2014-12-01T22:47:17Z carc joined #scheme 2014-12-01T22:47:37Z jeapostrophe quit (Ping timeout: 240 seconds) 2014-12-01T22:52:22Z karswell` is now known as karswell 2014-12-01T22:54:42Z alezost quit (Quit: ERC Version 5.3 (IRC client for Emacs)) 2014-12-01T22:57:24Z davexunit joined #scheme 2014-12-01T22:59:17Z civodul quit (Quit: ERC Version 5.3 (IRC client for Emacs)) 2014-12-01T22:59:25Z jeapostrophe joined #scheme 2014-12-01T22:59:25Z jeapostrophe quit (Changing host) 2014-12-01T22:59:25Z jeapostrophe joined #scheme 2014-12-01T23:17:27Z ska-fan: asumu: http://bugs.racket-lang.org/query/?cmd=view%20audit-trail&database=default&pr=14864 2014-12-01T23:17:28Z rudybot: http://tinyurl.com/medpz46 2014-12-01T23:27:16Z hiroaki quit (Ping timeout: 255 seconds) 2014-12-01T23:31:44Z Gyps joined #scheme 2014-12-01T23:34:03Z oldskirt quit (Ping timeout: 252 seconds) 2014-12-01T23:36:39Z robot-beethoven joined #scheme 2014-12-01T23:37:08Z bb010g quit (Quit: Connection closed for inactivity) 2014-12-01T23:37:47Z daviid quit (Ping timeout: 245 seconds) 2014-12-01T23:50:03Z jeapostrophe quit (Ping timeout: 272 seconds) 2014-12-01T23:54:52Z kongtomorrow quit 2014-12-01T23:55:27Z chaotic_good joined #scheme 2014-12-01T23:55:28Z chaotic_good quit (Read error: Connection reset by peer) 2014-12-01T23:57:28Z chaotic_good joined #scheme 2014-12-01T23:59:19Z kongtomorrow joined #scheme