2014-11-25T00:09:33Z hiroaki quit (Ping timeout: 272 seconds) 2014-11-25T00:12:16Z amgarching quit (Ping timeout: 255 seconds) 2014-11-25T00:17:23Z jumblerg quit (Quit: My Mac has gone to sleep. ZZZzzz…) 2014-11-25T00:20:01Z hiroaki joined #scheme 2014-11-25T00:21:51Z oleo__ joined #scheme 2014-11-25T00:22:02Z jeapostrophe joined #scheme 2014-11-25T00:22:31Z oleo is now known as Guest6434 2014-11-25T00:23:22Z Guest6434 quit (Ping timeout: 240 seconds) 2014-11-25T00:34:02Z davexunit joined #scheme 2014-11-25T00:34:13Z jumblerg joined #scheme 2014-11-25T00:38:41Z taylanub quit (Ping timeout: 272 seconds) 2014-11-25T00:39:57Z hiroaki quit (Ping timeout: 272 seconds) 2014-11-25T00:44:47Z Sgeo quit (Read error: Connection reset by peer) 2014-11-25T00:46:41Z Sgeo joined #scheme 2014-11-25T00:51:59Z fikusz quit (Ping timeout: 272 seconds) 2014-11-25T00:52:19Z bjz_ quit (Ping timeout: 255 seconds) 2014-11-25T00:52:50Z kongtomorrow quit (Read error: Connection reset by peer) 2014-11-25T00:52:56Z kongtomo_ joined #scheme 2014-11-25T01:00:51Z adu joined #scheme 2014-11-25T01:05:42Z jusss joined #scheme 2014-11-25T01:17:22Z kongtomo_ quit (Ping timeout: 240 seconds) 2014-11-25T01:18:12Z kongtomorrow joined #scheme 2014-11-25T01:18:18Z mikeyhc quit (Quit: restart) 2014-11-25T01:23:26Z mikeyhc joined #scheme 2014-11-25T01:31:28Z didi joined #scheme 2014-11-25T01:31:53Z kongtomorrow quit (Read error: Connection reset by peer) 2014-11-25T01:32:00Z didi left #scheme 2014-11-25T01:32:11Z kongtomorrow joined #scheme 2014-11-25T01:37:22Z adu quit (Quit: adu) 2014-11-25T01:41:52Z jusss quit (Ping timeout: 240 seconds) 2014-11-25T01:46:15Z vinleod joined #scheme 2014-11-25T01:47:02Z Gyps joined #scheme 2014-11-25T01:47:29Z Mike9863 joined #scheme 2014-11-25T01:58:07Z kongtomorrow quit 2014-11-25T02:02:12Z adu joined #scheme 2014-11-25T02:09:29Z TheLastExile joined #scheme 2014-11-25T02:11:24Z frkout joined #scheme 2014-11-25T02:12:28Z Riastradh joined #scheme 2014-11-25T02:14:59Z xyh joined #scheme 2014-11-25T02:15:45Z iKlsR joined #scheme 2014-11-25T02:24:45Z vinleod quit (Quit: ["Textual IRC Client: www.textualapp.com"]) 2014-11-25T02:30:35Z frkout_ joined #scheme 2014-11-25T02:30:44Z fikusz joined #scheme 2014-11-25T02:33:39Z frkout quit (Ping timeout: 255 seconds) 2014-11-25T02:34:02Z lolcow joined #scheme 2014-11-25T02:35:17Z leppie quit (Ping timeout: 264 seconds) 2014-11-25T02:36:21Z tobik quit (Ping timeout: 255 seconds) 2014-11-25T02:37:24Z tobik joined #scheme 2014-11-25T02:41:23Z Rodya_ joined #scheme 2014-11-25T02:46:51Z bb010g joined #scheme 2014-11-25T02:54:42Z iKlsR quit (Quit: Respawning..) 2014-11-25T02:55:14Z davexunit quit (Quit: Later) 2014-11-25T02:56:54Z mejja joined #scheme 2014-11-25T02:56:55Z cataska quit (Read error: Connection reset by peer) 2014-11-25T02:59:54Z mejja quit (Quit: AndroIRC - Android IRC Client ( http://www.androirc.com )) 2014-11-25T03:00:30Z mejja joined #scheme 2014-11-25T03:00:54Z mejja quit (Remote host closed the connection) 2014-11-25T03:03:15Z mejja joined #scheme 2014-11-25T03:04:16Z mejja quit (Client Quit) 2014-11-25T03:05:16Z jusss` joined #scheme 2014-11-25T03:06:34Z robot-beethoven joined #scheme 2014-11-25T03:08:14Z vanila joined #scheme 2014-11-25T03:08:44Z jeapostrophe quit (Ping timeout: 265 seconds) 2014-11-25T03:19:15Z adu quit (Quit: adu) 2014-11-25T03:19:16Z cataska joined #scheme 2014-11-25T03:40:26Z mdibound___ is now known as mdibound 2014-11-25T03:41:06Z frkout_ quit (Remote host closed the connection) 2014-11-25T03:41:33Z frkout joined #scheme 2014-11-25T03:47:18Z rx_ quit (Quit: Konversation terminated!) 2014-11-25T03:47:21Z mdibound quit (Quit: Be back later ...) 2014-11-25T03:47:54Z mdibound joined #scheme 2014-11-25T03:48:29Z enitiz joined #scheme 2014-11-25T03:55:28Z excelsior joined #scheme 2014-11-25T03:57:33Z enitiz quit (Remote host closed the connection) 2014-11-25T04:01:08Z jumblerg quit (Quit: My Mac has gone to sleep. ZZZzzz…) 2014-11-25T04:03:15Z mdibound quit (Quit: Be back later ...) 2014-11-25T04:03:50Z mdibound joined #scheme 2014-11-25T04:08:24Z mdibound quit (Ping timeout: 244 seconds) 2014-11-25T04:15:55Z derek_c joined #scheme 2014-11-25T04:17:35Z jusss` quit (Ping timeout: 255 seconds) 2014-11-25T04:17:59Z BW^-: vanila: PM :) 2014-11-25T04:18:55Z BW^- is now known as BW^-_ 2014-11-25T04:19:18Z BW^-_ is now known as BW^- 2014-11-25T04:38:59Z mdibound joined #scheme 2014-11-25T04:49:45Z xyh quit (Ping timeout: 265 seconds) 2014-11-25T04:57:56Z BW^-: does anyone know/have a Scheme to Scheme CPS transformer? 2014-11-25T04:59:03Z frkout_ joined #scheme 2014-11-25T04:59:45Z BW^-: aha Riastradh implemented one :) 2014-11-25T05:00:13Z Riastradh: http://mumble.net/~campbell/darcs/cps-generator/ 2014-11-25T05:00:24Z BW^-: yey :) 2014-11-25T05:01:04Z BW^-: Riastradh: in which Scheme does it run, Racket? 2014-11-25T05:01:31Z Riastradh: Should work in any R5RS. I probably wrote it with Scheme48 or MIT Scheme. 2014-11-25T05:01:39Z BW^-: aha 2014-11-25T05:01:43Z BW^-: ok! 2014-11-25T05:02:33Z BW^-: Riastradh: and it works? 2014-11-25T05:02:56Z BW^-: Riastradh: see example input in PM 2014-11-25T05:02:58Z Riastradh: Did when I last used it. 2014-11-25T05:03:03Z frkout quit (Ping timeout: 255 seconds) 2014-11-25T05:03:06Z BW^-: mhm 2014-11-25T05:03:07Z BW^-: yeah 2014-11-25T05:03:11Z BW^-: so that's just very standard R5RS 2014-11-25T05:04:08Z Riastradh: See sexp-to-cps.scm for a description of the input language, which assumes macros have been expanded. 2014-11-25T05:04:17Z BW^-: mhm 2014-11-25T05:04:28Z BW^-: Riastradh: approx in what format does it store local variables? 2014-11-25T05:04:40Z BW^-: Riastradh: as an environment table/alist/whatever 2014-11-25T05:04:45Z Riastradh: None. 2014-11-25T05:04:49Z BW^-: Riastradh: or does it rather output a tree of closures? 2014-11-25T05:05:07Z BW^-: aha, so it.. creates local variables through making lambdas? 2014-11-25T05:05:10Z Riastradh: See sexp-to-cps.scm. 2014-11-25T05:05:37Z Riastradh: SEXP->CPS takes an expression (lists'n'symbols) as input and yields an expression as output. 2014-11-25T05:06:08Z BW^-: right 2014-11-25T05:06:21Z BW^-: Riastradh: wait, letrec is taken by which rule here, LETREC-VALUES ? 2014-11-25T05:06:28Z Riastradh: Oh, wait. Might have to apply the result to (variable-continuator 'K) or something. 2014-11-25T05:06:39Z BW^-: aha 2014-11-25T05:07:17Z BW^-: Riastradh: what's the meaning of "subproblem" here? 2014-11-25T05:07:36Z Riastradh: (f (g x)) -> (g x) is a subproblem. 2014-11-25T05:07:41Z BW^-: ah 2014-11-25T05:07:42Z BW^-: ah ok 2014-11-25T05:07:43Z annodomini joined #scheme 2014-11-25T05:07:43Z annodomini quit (Changing host) 2014-11-25T05:07:43Z annodomini joined #scheme 2014-11-25T05:09:09Z BW^-: Riastradh: I don't find the symbol |letrec| anywhere in there 2014-11-25T05:09:23Z BW^-: hm 2014-11-25T05:09:23Z BW^-: ah 2014-11-25T05:09:25Z BW^-: ok.. i see.. 2014-11-25T05:09:31Z BW^-: Riastradh: but so no let let* letrec functionality 2014-11-25T05:10:12Z Riastradh: Rewrite LETREC with LETREC-VALUES. 2014-11-25T05:10:25Z BW^-: super. 2014-11-25T05:10:33Z BW^-: ok great! 2014-11-25T05:10:34Z Riastradh: Expand LET*. 2014-11-25T05:10:44Z BW^-: Riastradh: to LET:s, called LET-VALUES 2014-11-25T05:10:45Z BW^-: right 2014-11-25T05:10:46Z BW^-: ok great! 2014-11-25T05:10:55Z BW^-: Riastradh: thanks a lot!! I'll look into it a bit later because time is a lot 2014-11-25T05:11:34Z asumu quit (Ping timeout: 265 seconds) 2014-11-25T05:12:56Z asumu joined #scheme 2014-11-25T05:14:42Z BW^-: Riastradh: the basic question I will have is, 2014-11-25T05:14:54Z BW^-: Riastradh: if it can be used to resume a continuation *without* have the stack serialized too 2014-11-25T05:15:00Z MichaelRaskin quit (Quit: MichaelRaskin) 2014-11-25T05:15:10Z BW^-: Riastradh: so for a very simple code with only "static" local variables like the one I posted 2014-11-25T05:15:28Z BW^-: Riastradh: if that doesn't work out of the box, then maybe I could just rewrite every evaluation step to some .. subproblem object form! 2014-11-25T05:15:45Z BW^-: Riastradh: similar to how the FrTime language rewrites every evaluation to a signal object 2014-11-25T05:16:06Z Rodya_ quit (Quit: Ex-Chat) 2014-11-25T05:16:34Z jumblerg joined #scheme 2014-11-25T05:23:19Z kilimanjaro joined #scheme 2014-11-25T05:23:46Z jusss` joined #scheme 2014-11-25T05:25:04Z frkout_ quit (Remote host closed the connection) 2014-11-25T05:25:31Z frkout joined #scheme 2014-11-25T05:45:19Z MichaelRaskin joined #scheme 2014-11-25T05:54:50Z Vutral quit (Ping timeout: 244 seconds) 2014-11-25T06:00:42Z derek_c quit (Ping timeout: 245 seconds) 2014-11-25T06:01:12Z jumblerg quit (Quit: My Mac has gone to sleep. ZZZzzz…) 2014-11-25T06:02:56Z kongtomorrow joined #scheme 2014-11-25T06:05:55Z Vutral joined #scheme 2014-11-25T06:07:44Z mrowe is now known as mrowe_away 2014-11-25T06:13:11Z derek_c joined #scheme 2014-11-25T06:15:44Z Pixel_Outlaw joined #scheme 2014-11-25T06:20:46Z Pixel_Outlaw: Hello all. Does anyone know of a library that allows me to compile Scheme into a C++ project via a single header? I know this is not a C++ channel but I bet there is some cross over perhaps. 2014-11-25T06:21:46Z Pixel_Outlaw: Well let me be a bit more specific I'd like to add a full Scheme parser that gets compiled along with my C++ source code into a single program. 2014-11-25T06:25:11Z MichaelRaskin: You want to compile some specific Scheme code to C? 2014-11-25T06:25:36Z MichaelRaskin: Gambit-C seems to be an example of a Scheme implementation that does that. 2014-11-25T06:27:02Z Pixel_Outlaw: Nothing specific at the moment, I'd like to wrap some C++ functions and provide a scheme library for user extensions. 2014-11-25T06:27:18Z Pixel_Outlaw: Maybe a bit like Gimp does. 2014-11-25T06:28:12Z MichaelRaskin: Then you there are many embeddable Scheme implementations 2014-11-25T06:28:54Z MichaelRaskin: TinyScheme, for example 2014-11-25T06:29:12Z MichaelRaskin: Which GIMP uses 2014-11-25T06:32:15Z annodomini quit (Quit: annodomini) 2014-11-25T06:32:21Z oleo__ quit (Quit: Verlassend) 2014-11-25T06:33:02Z Pixel_Outlaw: Hmmm Ok. 2014-11-25T06:49:41Z BW^- quit (Ping timeout: 265 seconds) 2014-11-25T06:58:39Z jumblerg joined #scheme 2014-11-25T07:07:48Z psy quit (Ping timeout: 250 seconds) 2014-11-25T07:09:22Z jaaqo joined #scheme 2014-11-25T07:14:19Z kazimir42 joined #scheme 2014-11-25T07:15:57Z psy joined #scheme 2014-11-25T07:44:54Z jumblerg quit (Quit: My Mac has gone to sleep. ZZZzzz…) 2014-11-25T07:45:22Z jumblerg joined #scheme 2014-11-25T07:54:27Z civodul joined #scheme 2014-11-25T07:57:00Z Pixel_Outlaw quit (Quit: super pantaloons away!) 2014-11-25T08:06:57Z jumblerg quit (Quit: My Mac has gone to sleep. ZZZzzz…) 2014-11-25T08:27:04Z fridim_ joined #scheme 2014-11-25T08:35:56Z alexey1 joined #scheme 2014-11-25T08:39:36Z bgs100 quit (Quit: bgs100) 2014-11-25T08:40:52Z taylanub joined #scheme 2014-11-25T08:52:18Z psy quit (Quit: Leaving) 2014-11-25T08:56:44Z derek_c quit (Ping timeout: 265 seconds) 2014-11-25T08:59:21Z vinleod joined #scheme 2014-11-25T09:06:53Z civodul quit (Ping timeout: 250 seconds) 2014-11-25T09:15:57Z oldskirt quit (Ping timeout: 240 seconds) 2014-11-25T09:22:17Z bjz joined #scheme 2014-11-25T09:22:27Z redeemed joined #scheme 2014-11-25T09:29:54Z germ13 quit (Ping timeout: 255 seconds) 2014-11-25T09:30:53Z psy joined #scheme 2014-11-25T09:31:16Z vinleod quit (Quit: ["Textual IRC Client: www.textualapp.com"]) 2014-11-25T09:43:05Z b4283 quit (Ping timeout: 264 seconds) 2014-11-25T09:43:52Z jusss` quit (Ping timeout: 256 seconds) 2014-11-25T09:52:12Z alexey1 quit (Remote host closed the connection) 2014-11-25T10:01:29Z robot-beethoven quit (Quit: ERC Version 5.3 (IRC client for Emacs)) 2014-11-25T10:11:50Z pnkfelix joined #scheme 2014-11-25T10:18:18Z alexey1 joined #scheme 2014-11-25T10:22:52Z _5kg quit (Ping timeout: 240 seconds) 2014-11-25T10:31:28Z b4283 joined #scheme 2014-11-25T10:32:54Z stepnem joined #scheme 2014-11-25T10:38:31Z civodul joined #scheme 2014-11-25T10:54:12Z amgarching joined #scheme 2014-11-25T11:07:14Z _5kg joined #scheme 2014-11-25T11:07:50Z przl joined #scheme 2014-11-25T11:16:27Z amgarching quit (Ping timeout: 272 seconds) 2014-11-25T11:17:01Z jeapostrophe joined #scheme 2014-11-25T11:17:01Z jeapostrophe quit (Changing host) 2014-11-25T11:17:01Z jeapostrophe joined #scheme 2014-11-25T11:28:13Z Steverman joined #scheme 2014-11-25T11:45:10Z excelsior quit (Quit: leaving) 2014-11-25T11:58:05Z Steverman quit (Ping timeout: 264 seconds) 2014-11-25T12:09:00Z jusss` joined #scheme 2014-11-25T12:09:29Z annodomini joined #scheme 2014-11-25T12:09:29Z annodomini quit (Changing host) 2014-11-25T12:09:29Z annodomini joined #scheme 2014-11-25T12:17:13Z przl quit (Ping timeout: 255 seconds) 2014-11-25T12:23:57Z gravicappa joined #scheme 2014-11-25T12:27:20Z annodomini quit (Quit: annodomini) 2014-11-25T12:46:26Z Steverman joined #scheme 2014-11-25T12:52:56Z annodomini joined #scheme 2014-11-25T12:52:56Z annodomini quit (Changing host) 2014-11-25T12:52:56Z annodomini joined #scheme 2014-11-25T12:54:59Z Steverman quit (Quit: WeeChat 1.0.1) 2014-11-25T13:10:13Z fzappa joined #scheme 2014-11-25T13:12:35Z jusss` quit (Remote host closed the connection) 2014-11-25T13:13:04Z Gyps quit (Quit: Gyps) 2014-11-25T13:15:17Z annodomini quit (Quit: annodomini) 2014-11-25T13:18:44Z przl joined #scheme 2014-11-25T13:18:57Z alexey1 quit (Remote host closed the connection) 2014-11-25T13:19:31Z kazimir42 quit (Ping timeout: 250 seconds) 2014-11-25T13:23:18Z kongtomorrow quit (Ping timeout: 244 seconds) 2014-11-25T13:25:57Z hypermagic quit (Ping timeout: 265 seconds) 2014-11-25T13:31:50Z kazimir42 joined #scheme 2014-11-25T13:40:22Z Vutral quit (Ping timeout: 258 seconds) 2014-11-25T13:43:49Z taylanub quit (Disconnected by services) 2014-11-25T13:44:44Z taylanub joined #scheme 2014-11-25T13:47:54Z b4283 quit (Read error: Connection reset by peer) 2014-11-25T13:50:14Z Vutral joined #scheme 2014-11-25T13:53:33Z teleScope joined #scheme 2014-11-25T13:55:21Z davexunit joined #scheme 2014-11-25T13:56:42Z vanila quit (Quit: Leaving) 2014-11-25T14:03:02Z ASau` joined #scheme 2014-11-25T14:03:52Z b4283 joined #scheme 2014-11-25T14:05:06Z przl quit (Ping timeout: 250 seconds) 2014-11-25T14:06:26Z ASau quit (Ping timeout: 258 seconds) 2014-11-25T14:09:29Z bjz quit (Ping timeout: 264 seconds) 2014-11-25T14:10:33Z ASau` is now known as ASau 2014-11-25T14:11:03Z bjz joined #scheme 2014-11-25T14:15:16Z enitiz joined #scheme 2014-11-25T14:15:56Z MichaelRaskin quit (Ping timeout: 250 seconds) 2014-11-25T14:17:10Z MichaelRaskin joined #scheme 2014-11-25T14:30:58Z przl joined #scheme 2014-11-25T14:32:02Z oleo joined #scheme 2014-11-25T14:33:41Z MichaelRaskin quit (Quit: MichaelRaskin) 2014-11-25T14:33:55Z teleScope_ joined #scheme 2014-11-25T14:37:37Z teleScope quit (Ping timeout: 240 seconds) 2014-11-25T14:39:02Z teleScope_ quit (Ping timeout: 245 seconds) 2014-11-25T14:41:32Z przl quit (Ping timeout: 245 seconds) 2014-11-25T14:47:47Z przl joined #scheme 2014-11-25T14:51:02Z xyh joined #scheme 2014-11-25T14:54:22Z enitiz quit (Remote host closed the connection) 2014-11-25T15:05:40Z amgarching joined #scheme 2014-11-25T15:07:29Z Gyps joined #scheme 2014-11-25T15:09:52Z jeapostrophe quit (Ping timeout: 245 seconds) 2014-11-25T15:15:49Z TheLastExile quit (Ping timeout: 258 seconds) 2014-11-25T15:18:07Z leo2007 joined #scheme 2014-11-25T15:19:40Z alexey1 joined #scheme 2014-11-25T15:20:28Z mdibound quit (Quit: Be back later ...) 2014-11-25T15:21:01Z mdibound joined #scheme 2014-11-25T15:23:57Z alexey1 quit (Ping timeout: 240 seconds) 2014-11-25T15:24:04Z amgarching quit (Quit: Konversation terminated!) 2014-11-25T15:24:13Z amgarching joined #scheme 2014-11-25T15:24:47Z fzappa quit (Remote host closed the connection) 2014-11-25T15:25:17Z mdibound quit (Ping timeout: 240 seconds) 2014-11-25T15:29:26Z developernotes joined #scheme 2014-11-25T15:30:12Z alexei joined #scheme 2014-11-25T15:33:25Z vinleod joined #scheme 2014-11-25T15:33:37Z amgarching quit (Ping timeout: 245 seconds) 2014-11-25T15:33:57Z jeapostrophe joined #scheme 2014-11-25T15:33:57Z jeapostrophe quit (Changing host) 2014-11-25T15:33:57Z jeapostrophe joined #scheme 2014-11-25T15:38:52Z mishoo joined #scheme 2014-11-25T15:39:13Z mishoo left #scheme 2014-11-25T15:41:13Z mdibound joined #scheme 2014-11-25T15:41:59Z jumblerg joined #scheme 2014-11-25T15:51:29Z theseb joined #scheme 2014-11-25T15:53:07Z theseb: where can I find battery of tests for a scheme implementation?...since everybody implements a baby lisp to become a lisp weenie i figured there'd be lots of tests for this 2014-11-25T15:57:26Z xyh quit (Remote host closed the connection) 2014-11-25T15:57:40Z mario-goulart: theseb: implementations usually ship a test suite. You can probably find it in implementations' sources. 2014-11-25T15:57:54Z theseb: mario-goulart: ok..thanks 2014-11-25T16:04:41Z przl quit (Ping timeout: 264 seconds) 2014-11-25T16:06:22Z MichaelRaskin joined #scheme 2014-11-25T16:06:54Z przl joined #scheme 2014-11-25T16:13:33Z jumblerg quit (Quit: My Mac has gone to sleep. ZZZzzz…) 2014-11-25T16:16:40Z rsal joined #scheme 2014-11-25T16:24:33Z redeemed quit (Quit: q) 2014-11-25T16:25:07Z pnkfelix quit (Quit: rcirc on GNU Emacs 24.3.92.1) 2014-11-25T16:32:29Z przl quit (Ping timeout: 272 seconds) 2014-11-25T16:36:41Z Riastradh quit (Ping timeout: 250 seconds) 2014-11-25T16:48:04Z Mike9863 quit (Remote host closed the connection) 2014-11-25T16:54:45Z rtra quit (Ping timeout: 265 seconds) 2014-11-25T17:00:47Z rtra joined #scheme 2014-11-25T17:02:22Z mdibound quit (Quit: Be back later ...) 2014-11-25T17:02:29Z atomx joined #scheme 2014-11-25T17:02:49Z mdibound joined #scheme 2014-11-25T17:06:57Z mdibound quit (Ping timeout: 240 seconds) 2014-11-25T17:11:02Z atomx_ joined #scheme 2014-11-25T17:12:54Z atomx_ quit (Remote host closed the connection) 2014-11-25T17:12:54Z atomx quit (Remote host closed the connection) 2014-11-25T17:13:07Z atomx joined #scheme 2014-11-25T17:15:09Z civodul quit (Quit: ERC Version 5.3 (IRC client for Emacs)) 2014-11-25T17:17:15Z mdibound joined #scheme 2014-11-25T17:20:31Z alexey1 joined #scheme 2014-11-25T17:21:32Z mdibound quit (Ping timeout: 245 seconds) 2014-11-25T17:25:41Z alexey1 quit (Ping timeout: 272 seconds) 2014-11-25T17:27:07Z bb010g quit (Quit: Connection closed for inactivity) 2014-11-25T17:46:10Z atomx quit (Ping timeout: 245 seconds) 2014-11-25T17:47:45Z kazimir42 quit (Ping timeout: 250 seconds) 2014-11-25T17:52:25Z oldskirt joined #scheme 2014-11-25T18:03:02Z kazimir42 joined #scheme 2014-11-25T18:06:53Z cibs quit (Remote host closed the connection) 2014-11-25T18:07:10Z cibs joined #scheme 2014-11-25T18:13:42Z Gyps quit (Quit: Gyps) 2014-11-25T18:14:59Z pnkfelix joined #scheme 2014-11-25T18:16:41Z vinleod quit (Quit: ["Textual IRC Client: www.textualapp.com"]) 2014-11-25T18:17:29Z hiyosi quit (Ping timeout: 264 seconds) 2014-11-25T18:17:59Z mdibound joined #scheme 2014-11-25T18:22:17Z mdibound quit (Ping timeout: 240 seconds) 2014-11-25T18:24:09Z pnpuff joined #scheme 2014-11-25T18:26:31Z jumblerg joined #scheme 2014-11-25T18:26:53Z b4283 quit (Read error: Connection reset by peer) 2014-11-25T18:28:01Z sheilong joined #scheme 2014-11-25T18:28:41Z developernotes quit (Quit: My MacBook Pro has gone to sleep. ZZZzzz…) 2014-11-25T18:31:08Z Riastradh joined #scheme 2014-11-25T18:35:20Z atomx joined #scheme 2014-11-25T18:48:59Z aranasii joined #scheme 2014-11-25T18:53:19Z aranasii: Hi all. I'm working on a short Scheme program that is supposed to recusrively evaluate positive integers in a list. And then return the median element. If it's an even numbered list, then returns 0. 2014-11-25T18:53:54Z aranasii: There are some limitations: I can only use null?, car, cdr, else, =, +, median, cond, if, my own variables (like count1 and count2), integers literals, and parenthesis. (So, not let or set) 2014-11-25T18:53:57Z aranasii: http://pastebin.com/BZrNG2uR 2014-11-25T18:54:06Z aranasii: ^ How bad am I? =) 2014-11-25T18:54:45Z asumu: theseb: R6RS came with an executable semantics + a test suite http://www.r6rs.org/refimpl/ 2014-11-25T18:54:59Z theseb: asumu: thanks! 2014-11-25T18:55:03Z aranasii: I figure I should be able to get it to something more simple, like... (lambda (arg-1 arg-2 ... arg-n) (cond ((test-of-case-a) answer-in-case-a) ((test-of-case-b) answer-in-case-b) (else answer-of-default-case))) ==> three lines, basically 2014-11-25T18:55:14Z aranasii: But I'm having a lot of trouble adapting my way of thinking to Scheme and recursion. 2014-11-25T18:58:10Z developernotes joined #scheme 2014-11-25T19:02:43Z psy quit (Read error: No route to host) 2014-11-25T19:07:11Z theseb: asumu: what is an "executable semantics" ? 2014-11-25T19:07:18Z psy joined #scheme 2014-11-25T19:08:10Z asumu: theseb: it is a semantics for a programming language that you can run as a program and get results. 2014-11-25T19:08:50Z asumu: (i.e., the results of evaluating a given expression/program in this semantics) 2014-11-25T19:08:50Z theseb: asumu: semantics in my little world means "meaning"...what does it mean to execute a "meaning" ? 2014-11-25T19:08:53Z atomx quit (Ping timeout: 264 seconds) 2014-11-25T19:09:12Z theseb: asumu: basically they have tests...great! thanks! 2014-11-25T19:09:33Z theseb: asumu: i'm especially hoping for tests for corner cases and weird stuff that is hard to get right like lexical scoping 2014-11-25T19:09:50Z asumu: No, it's a formal description of a programming language that describes the evaluation of programs in that language. 2014-11-25T19:10:02Z asumu: Since it describes the evaluation, it can be used to run examples. 2014-11-25T19:10:16Z asumu: So you can use it to write down test suites, yes, but the semantics aren't tests. 2014-11-25T19:10:32Z asumu: (I'm not sure I'm disagreeing with you, I just wanted to clarify :)) 2014-11-25T19:11:11Z pnpuff: aranasii: you could just try to sort the list before find the median value 2014-11-25T19:11:16Z aranasii: Upaded: http://pastebin.com/UhM21qwG 2014-11-25T19:11:24Z aranasii: I mean "updated" 2014-11-25T19:12:16Z aranasii: pnpuff: Can that be done only using null?, car, cdr, else, =, +, median, cond, if, my own variables (like count1 and count2), integers literals, and parenthesis. == within 3 lines total? 2014-11-25T19:13:01Z acarrico left #scheme 2014-11-25T19:13:13Z gnomon: aranasii, what's with those constraints?? 2014-11-25T19:14:00Z aranasii: gnomon: I guess to really stick it as a structural recursion exercise? 2014-11-25T19:14:14Z hiyosi joined #scheme 2014-11-25T19:14:33Z gnomon: aranasii, so this is homework? 2014-11-25T19:15:34Z aranasii: gnomon: it's a bonus exercise. bonus points if we can do it in three lines. 2014-11-25T19:17:08Z aranasii: pnpuff: It's actually not necessary for the points. We can assume a sorted "ascending" list of positive integers. 2014-11-25T19:17:14Z gnomon: aranasii, how do we claim those bonus points if we give you the answer? 2014-11-25T19:17:23Z aranasii: So, like (median '(2 4 10 16 20)) 2014-11-25T19:17:50Z aranasii: gnomon: bonus life points, natch 2014-11-25T19:18:38Z hiyosi quit (Ping timeout: 245 seconds) 2014-11-25T19:18:57Z gnomon: Naturally. 2014-11-25T19:19:02Z hiroaki joined #scheme 2014-11-25T19:19:11Z aranasii: =) 2014-11-25T19:19:53Z aranasii: gnomon: I think technically, I already satisfied the requirements in order to get the points. I'm just trying to learn, to make it better and more efficient where possible. 2014-11-25T19:20:26Z frkout_ joined #scheme 2014-11-25T19:21:24Z alexey1 joined #scheme 2014-11-25T19:21:55Z aranasii: I want to believe it can be done with just cdr and car. =) 2014-11-25T19:21:57Z girrig quit (Ping timeout: 240 seconds) 2014-11-25T19:22:13Z kazimir42 quit (Ping timeout: 250 seconds) 2014-11-25T19:22:28Z alexei quit (Quit: Konversation terminated!) 2014-11-25T19:22:37Z frkout quit (Ping timeout: 240 seconds) 2014-11-25T19:23:02Z aranasii: ^ None of these people get bonus life points, gnomon. 2014-11-25T19:23:08Z aranasii: But there is still hope for you. 2014-11-25T19:23:26Z Soft quit (Ping timeout: 255 seconds) 2014-11-25T19:24:41Z gnomon: No, I am a hopeless case. 2014-11-25T19:25:13Z aranasii: I believe in you, gnomon. 2014-11-25T19:25:27Z Riastradh: Nobody with that many tentacles could be hopeless! 2014-11-25T19:25:39Z gnomon flails wildly 2014-11-25T19:25:46Z aranasii yelps 2014-11-25T19:25:53Z alexey1 quit (Ping timeout: 264 seconds) 2014-11-25T19:26:22Z aranasii: So, "gnomon" -- I'm reading this like a gnomish Jamaican. Is that the intended reading? 2014-11-25T19:27:22Z gnomon: aranasii, http://en.wikipedia.org/wiki/Gnomon 2014-11-25T19:27:41Z girrig joined #scheme 2014-11-25T19:27:59Z gnomon: I am very proud of my ability to block the passage of photons. 2014-11-25T19:28:09Z kazimir42 joined #scheme 2014-11-25T19:28:12Z aranasii: Huh. So that's what that little thinger is called. 2014-11-25T19:28:13Z gnomon demonstrates by casting a shadow 2014-11-25T19:28:22Z aranasii yelps 2014-11-25T19:29:07Z Soft joined #scheme 2014-11-25T19:33:47Z mdibound joined #scheme 2014-11-25T19:34:53Z joneshf-laptop quit (Ping timeout: 264 seconds) 2014-11-25T19:35:45Z amgarchIn9 joined #scheme 2014-11-25T19:37:12Z jumblerg quit (Quit: My Mac has gone to sleep. ZZZzzz…) 2014-11-25T19:38:36Z mdibound quit (Ping timeout: 265 seconds) 2014-11-25T19:45:30Z jumblerg joined #scheme 2014-11-25T19:45:40Z mario-goulart quit (Ping timeout: 256 seconds) 2014-11-25T19:46:42Z stamourv: aranasii: Good job. Now I can't not imagine gnomon as a rastafarian gnome. :) 2014-11-25T19:47:07Z hiyosi joined #scheme 2014-11-25T19:47:18Z stamourv once tried to play a rastafarian illusionist in a DnD campaign, which the DM promptly vetoed. 2014-11-25T19:47:33Z hiroaki quit (Ping timeout: 272 seconds) 2014-11-25T19:48:34Z jewel quit (Ping timeout: 255 seconds) 2014-11-25T19:50:24Z technomancy left #scheme 2014-11-25T19:50:48Z sheilong: what I'm doing wrong here http://paste.lisp.org/display/144489 ? 2014-11-25T19:51:18Z sheilong: I want to do the sum of the even's fibbonacci sequence 2014-11-25T19:54:41Z jewel joined #scheme 2014-11-25T19:57:08Z jumblerg quit (Quit: My Mac has gone to sleep. ZZZzzz…) 2014-11-25T19:59:41Z hiroaki joined #scheme 2014-11-25T20:08:57Z civodul joined #scheme 2014-11-25T20:13:05Z mario-goulart joined #scheme 2014-11-25T20:18:13Z gravicappa quit (Remote host closed the connection) 2014-11-25T20:19:54Z turbofail quit (Remote host closed the connection) 2014-11-25T20:22:31Z turbofail joined #scheme 2014-11-25T20:39:42Z mdibound joined #scheme 2014-11-25T20:42:28Z ska-fan: Is "' a" just as valid as "'a"? 2014-11-25T20:43:55Z stamourv: rudybot: eval 'a 2014-11-25T20:43:56Z rudybot: stamourv: your sandbox is ready 2014-11-25T20:43:56Z rudybot: stamourv: ; Value: 'a 2014-11-25T20:43:58Z stamourv: rudybot: eval ' a 2014-11-25T20:43:58Z rudybot: stamourv: ; Value: 'a 2014-11-25T20:44:02Z stamourv: ska-fan: ^ 2014-11-25T20:44:11Z stamourv: rudybot: botsnack 2014-11-25T20:44:11Z rudybot: A légpárnás tele van angolnák. 2014-11-25T20:44:22Z stamourv: That was... unexpected? 2014-11-25T20:45:13Z stamourv: rudybot: t8 hu en A légpárnás tele van angolnák. 2014-11-25T20:45:14Z rudybot: stamourv: The hovercraft is full of eels. 2014-11-25T20:45:14Z ska-fan: stamourv: Thx! :-) 2014-11-25T20:45:26Z stamourv: offby1: Wow. Good one. 2014-11-25T20:45:36Z stamourv: Not sure what it has to do with snacks, though. 2014-11-25T20:46:08Z stamourv: offby1: I thought the canonical version was "*my* hovercraft". 2014-11-25T20:51:29Z jumblerg joined #scheme 2014-11-25T20:52:55Z ManDay joined #scheme 2014-11-25T20:53:04Z ManDay: Why is this not possible: 2014-11-25T20:53:39Z ManDay: (define next 0) (define counter (lambda () (define next (+ next 1)) next)) (count) 2014-11-25T20:53:41Z ManDay: ? 2014-11-25T20:53:56Z ManDay: There appear to be a problem with the (define next (+ next 1)) in the lambda, but why? 2014-11-25T20:54:13Z ManDay: If I just call (define next (+ next 1)) it increments "next" just fine 2014-11-25T20:55:27Z ManDay: (The tutorial suggests set! is right for that purpose but I don't understand why or what set! is good for) 2014-11-25T20:56:36Z stamourv: ManDay: `define` is used to introduce a new variable. `set!` is used to change the value of an existing one. 2014-11-25T20:56:59Z ManDay: stamourv: so? 2014-11-25T20:57:14Z ManDay: stamourv: If I call (define next (+ next 1)) that works just fine 2014-11-25T20:57:32Z stamourv: So the `define` instead your `lambda` is introducing a new, local variable named `next`, which shadows (or hides) the other `next` variable. 2014-11-25T20:57:35Z ManDay: So apparently (define) can change the value, effectively (simply by replacing it) 2014-11-25T20:57:40Z stamourv: At the REPL? 2014-11-25T20:57:43Z githogori joined #scheme 2014-11-25T20:57:44Z ManDay: yes 2014-11-25T20:58:00Z stamourv: The REPL has different, unfortunate semantics for definitions. 2014-11-25T20:58:14Z ManDay: uhh 2014-11-25T20:58:23Z stamourv: Short version: the top level (i.e. REPL) is hopeless, as Matthew Flatt would say. 2014-11-25T20:58:38Z stamourv: c.f. https://gist.github.com/samth/3083053 2014-11-25T20:58:47Z githogori_ joined #scheme 2014-11-25T20:58:52Z ManDay: and principally, is there any reason why there is set! and not instead (define) is enabled to "replace" existing variables? 2014-11-25T20:59:35Z stamourv: offby1: Feature request for rudybot: pasting that link on request (maybe with a command "hopeless", or something). Also, linking to HTDP / HTDP2e on request. 2014-11-25T21:00:11Z stamourv: ManDay: If `define` modified existing variables, many surprising things could happen. 2014-11-25T21:00:24Z ManDay: stamourv: such as? 2014-11-25T21:00:30Z stamourv: Say that some part of your code defines a `giraffes` top-level variable. 2014-11-25T21:00:43Z ManDay: ok, i like giraffes 2014-11-25T21:00:51Z stamourv: But one of your function, in some other part of the code, wants to use its own `giraffes` local variable. 2014-11-25T21:01:04Z stamourv: If `define` were like `set!`, then you'd mix up your giraffes. 2014-11-25T21:01:26Z ManDay: so the crucial difference is actually in the fact that set! acts on global variables 2014-11-25T21:01:41Z ManDay: (sorry for the terminology if that's now how schemers speak) 2014-11-25T21:01:41Z stamourv: The semantics of `define` make it so that different parts of the code can use the same name for different things. 2014-11-25T21:01:57Z stamourv: Which is highly convenient for names such as `x`, or `i` that are fairly popular. ;) 2014-11-25T21:01:57Z githogori quit (Ping timeout: 240 seconds) 2014-11-25T21:02:05Z ManDay: but then, still, why do I get an error in my code? 2014-11-25T21:02:13Z stamourv: `set!` acts on any variable. You can mutate local variables too. 2014-11-25T21:02:25Z stamourv: I'll get to the error in your code in a second. 2014-11-25T21:02:56Z stamourv: Using the same operator for declaration and assignment is what python does, and that causes no end of scope oddities and confusion. 2014-11-25T21:03:05Z ManDay: all right. so (define) is actually superflous to (let)? Because up to now I thought that what differentiates them were that (define) acted always on the global scope 2014-11-25T21:03:17Z stamourv: Figuring out which variable a reference refers to is pretty tricky in python. 2014-11-25T21:03:35Z ManDay: stamourv: Not sure why you refer to python. I hate python. i hardly ever touch it 2014-11-25T21:03:40Z ManDay: ^^ 2014-11-25T21:03:51Z stamourv: Local `define` can be expressed with `letrec*`. It's just often more convenient, and avoids rightward drift. 2014-11-25T21:04:03Z ManDay: urgh, hold on a second 2014-11-25T21:04:10Z ManDay: now you got me utterly confused 2014-11-25T21:04:21Z stamourv: Referring to python to give you an example of what would happen if `define` (declaration) and `set!` (assignment) would use the same operator. 2014-11-25T21:04:42Z stamourv: Sure, take your time. 2014-11-25T21:04:43Z ManDay: let me ask you something: 2014-11-25T21:04:46Z stamourv: Sure. 2014-11-25T21:07:43Z aranasii: The anticipation is killing me! 2014-11-25T21:07:51Z ManDay: I think, two classes of "variable setting" functions would completely suffice: Class 1) Is setting and replacing top-level variables (no matter where it is called) Class 2) Is setting and replacing current-scope variables. (Analogous to say, PHP, where a global variable can referred to by declaring it "global $var" or C where, if a variable isn't shadowed by a local variable, it is considered global). 2014-11-25T21:07:53Z ManDay: Therefore I wonder why there are more than 2 "variable setting" functions. 2014-11-25T21:08:20Z ManDay: Just principally thinking... 2014-11-25T21:08:32Z stamourv: That's what one previous version of python did. 2014-11-25T21:08:52Z stamourv: The problem arises when you think about what "the current scope" is. 2014-11-25T21:09:00Z ManDay: stamourv: Please elaborate 2014-11-25T21:09:23Z stamourv: Scheme is lexically scoped, so you want to be able to access enclosing scopes, in addition to the innermost one and the global one. 2014-11-25T21:09:26Z stamourv: For example: 2014-11-25T21:09:36Z ManDay: Good, I suspected that would be the catch 2014-11-25T21:09:42Z ManDay: Go on, I'm curious :) 2014-11-25T21:09:56Z stamourv: rudybot: (let ([x 3]) (printf "x is ~a\n" x) (let ([y 2]) (printf "x + y = \n" (+ x y)))) 2014-11-25T21:09:56Z rudybot: stamourv: error: printf: format string requires 0 arguments, given 1; arguments were: "x + y = \n" 5 2014-11-25T21:10:04Z stamourv: rudybot: (let ([x 3]) (printf "x is ~a\n" x) (let ([y 2]) (printf "x + y = ~a\n" (+ x y)))) 2014-11-25T21:10:04Z rudybot: stamourv: ; stdout: "x is 3\nx is 3\nx + y = 5\n" 2014-11-25T21:10:07Z stamourv: That's more like it. 2014-11-25T21:10:28Z stamourv: If you could only refer to the innermost scope, that reference to `x` wouldn't be valid. 2014-11-25T21:10:39Z ManDay: give me a second to parse that 2014-11-25T21:11:07Z stamourv: Turns out, you only need 2 "modes", declaration and assignment, and all those problems go away. No scope confusion, ability to access enclosing scopes, etc. 2014-11-25T21:11:12Z ManDay: why do I see 2 "x is 3" ? 2014-11-25T21:11:36Z stamourv: Leftover from the run that errored. 2014-11-25T21:11:41Z stamourv: rudybot: (let ([x 3]) (printf "x is ~a\n" x) (let ([y 2]) (printf "x + y = ~a\n" (+ x y)))) 2014-11-25T21:11:41Z rudybot: stamourv: ; stdout: "x is 3\nx + y = 5\n" 2014-11-25T21:12:00Z ManDay: stamourv: I don't understand it yet 2014-11-25T21:12:14Z ManDay: SInce x isn't shadowed in the innermost scope I see no problem 2014-11-25T21:12:21Z stamourv: Turns out, both `define` and `let` (and their relatives) are all about declaration. So they behave similarly. 2014-11-25T21:12:21Z ManDay: This works in python, php and C all alike 2014-11-25T21:12:50Z stamourv: Ok, let's change the example a little. 2014-11-25T21:13:14Z stamourv: rudybot: (let ([x 3]) (printf "x is ~a\n" x) (let ([y 2] [x 5]) (printf "x + y = ~a\n" (+ x y))) (printf "x is ~a\n" x)) 2014-11-25T21:13:15Z rudybot: stamourv: ; stdout: "x is 3\nx + y = 7\nx is 3\n" 2014-11-25T21:13:32Z stamourv: When declaration and assignment are distinct, that's what you get. 2014-11-25T21:13:41Z ManDay: i'm still not surprised 2014-11-25T21:13:44Z stamourv: When they're the same, what should you get? 2014-11-25T21:13:52Z stamourv: Should `x` be shadowed, or assigned? 2014-11-25T21:14:04Z ManDay: Hm, let me think about this for a minute 2014-11-25T21:14:23Z stamourv: Sure. 2014-11-25T21:14:38Z stamourv: When you're ready, I can explain the error you got in your code, which is related, but not exactly that. 2014-11-25T21:17:57Z ManDay: So far, I don't see how what you explained is any different from other languages. I could translate the last of your examples 1:1 into, say, C. There, in the innermost scope x would be assigned to, but it would be the inner x which is being assigned to (which shadows the outer one). So far I don't see how this warrants more than 2 classes of assignment operations (in your example the "local" mechanism being 2014-11-25T21:17:59Z ManDay: the only one used). You said something about more options than just accessing 2 scopes (the top level and the innermost) which is not possible in C, Php and python. How does that work? Perhaps then I understand 2014-11-25T21:19:36Z stamourv: Yes, C has different syntax for variable declaration and assignment. 2014-11-25T21:19:47Z stamourv: They both happen to use `=` as part of the syntax, but that's a coincidence. 2014-11-25T21:20:10Z stamourv: So yes, it's a similar situation. 2014-11-25T21:20:26Z ManDay: stamourv: So why do we need more than 2 different "assignment mechanisms" then? 2014-11-25T21:21:08Z stamourv: No, Scheme has a single assignment mechanism: `set!`. 2014-11-25T21:21:14Z ManDay: (I.e. why are there more than just (define) - overwriting/assigning on the top-level and (let) overwriting/assigning on the innermost scope?) 2014-11-25T21:21:45Z turbofail: let doesn't assign to an existing variable, it creates a new scope 2014-11-25T21:21:47Z stamourv: `define` / `let` is equivalent to C's `int x = 0;` 2014-11-25T21:21:53Z ManDay: stamourv: And set! will always set the currently visible variable... 2014-11-25T21:21:57Z ManDay: Ah I think I get it 2014-11-25T21:22:01Z stamourv: `set!` is equivalent to `x = 0;`. 2014-11-25T21:22:06Z stamourv: Correct. 2014-11-25T21:22:15Z alexey1 joined #scheme 2014-11-25T21:23:07Z ManDay: So then, what's the point of (define)? Why do we require it? Why not simply say that every set! for not-yet-existing variable implicitly defines it? 2014-11-25T21:23:27Z ManDay: after all the (define) does not establish a type, which is the reason for declarations in C 2014-11-25T21:24:30Z sheilong quit (Quit: Konversation terminated!) 2014-11-25T21:24:32Z stamourv: At what scope should `set!` define its new variables? 2014-11-25T21:24:38Z jeapostr1phe joined #scheme 2014-11-25T21:24:41Z ManDay: at the one at which it is called 2014-11-25T21:24:42Z offby1: stamourv: now I've got that song stuck in my head. 2014-11-25T21:24:51Z stamourv: stamourv: Innermost? Global? 2014-11-25T21:25:01Z ManDay: huh? 2014-11-25T21:25:16Z ManDay: Innermost in the manner of speaking. i.e. "where it is called" 2014-11-25T21:25:33Z ManDay: A (define) does not help to resolve that question 2014-11-25T21:25:37Z stamourv: The point is, there's a number of scopes which may be visible from a given point in the program. 2014-11-25T21:25:49Z ManDay: If a set! implicitly defined it, then I could just replace all defines by sets 2014-11-25T21:25:55Z cjh`: (define a) ((lambda () (set! a 1))) (display a) ;; will print 1 2014-11-25T21:26:15Z cjh`: if that set! where a define then it would print 0 2014-11-25T21:26:31Z stamourv: (add1 cjh`) 2014-11-25T21:26:37Z alexey1 quit (Ping timeout: 240 seconds) 2014-11-25T21:26:52Z jeapostrophe quit (Ping timeout: 265 seconds) 2014-11-25T21:26:57Z ManDay: cjh`: no, you misunderstand I think 2014-11-25T21:27:27Z ManDay: I suggest we can get rid of all (define)s in a scheme program if we required that a set! equates to a define if the variable is not yet defined 2014-11-25T21:27:38Z ManDay: Can you give a counter example? 2014-11-25T21:27:40Z cjh`: ManDay: if you removed all defined, then one of those 2 behaviors wouldnt be possible. 2014-11-25T21:28:14Z ManDay: cjh`: I don't want to remove them. I want to replace them by set! which would then act equivalently 2014-11-25T21:28:30Z cjh`: ManDay: http://pastebin.com/5n1ipbMg 2014-11-25T21:29:15Z cjh`: ManDay: in the top example the inside of the lambda now has a new 'a' that masks the outer one 2014-11-25T21:29:25Z cjh`: ManDay: in the bottom lambda using set, it instead modified the outer a 2014-11-25T21:29:29Z ManDay: cjh`: In the top example I'd then use a "let" 2014-11-25T21:29:37Z ManDay: which would shadow the top-level a 2014-11-25T21:29:44Z cjh`: you could, yes 2014-11-25T21:30:26Z ManDay: So where do we actually need "define" then if "set!" were given the capability to act as "define" if the variable isn't defined yet? 2014-11-25T21:30:54Z cjh`: ManDay: define is kind of syntactic sugar for a let 2014-11-25T21:31:11Z turbofail: actually letrec*, as stamourv mentioned earlier 2014-11-25T21:31:17Z cjh`: true. 2014-11-25T21:31:46Z ManDay: Fair enough. But then I wonder why we need "letrec*" 2014-11-25T21:32:08Z ManDay: What can letrec* do that I can't achieve with set! and let? 2014-11-25T21:32:26Z turbofail: because without it you wouldn't be able to define recursive procedures without using a fixed-point combinator 2014-11-25T21:32:33Z stamourv: ManDay: That's in fact how it's often implemented. 2014-11-25T21:32:44Z gnomon: ManDay, sequentially bind a series of mutually recursive procedures, without mutation. 2014-11-25T21:32:47Z cjh`: ManDay: probably worth reading http://docs.racket-lang.org/reference/let.html 2014-11-25T21:32:50Z stamourv: But it turns out, providing higher-level constructs makes programming more convenient. 2014-11-25T21:33:37Z mrowe_away is now known as mrowe 2014-11-25T21:33:54Z ManDay: cjh`: For a non-racketeer aswell? 2014-11-25T21:34:25Z ManDay: stamourv: Ok, got it 2014-11-25T21:34:34Z ManDay: Now you wanted to explain my error ^^ 2014-11-25T21:34:39Z cjh`: ManDay: just read about the differences between the various lets 2014-11-25T21:34:50Z ManDay: cjh`: Roger 2014-11-25T21:35:33Z turbofail: you could just do everything with lambda if you really want to go down the "fewer constructs" route 2014-11-25T21:35:51Z ManDay: turbofail: not the set, though 2014-11-25T21:35:55Z ManDay: can I? 2014-11-25T21:36:04Z stamourv: ManDay: Re error: Right. 2014-11-25T21:36:05Z ManDay: the set cannot be deconstructed further 2014-11-25T21:36:10Z gnomon: you could just do everything with a NAND gates if you really want to go down the "fewer constructs" route 2014-11-25T21:36:12Z turbofail: you could remove that even 2014-11-25T21:36:19Z ManDay: turbofail: how? 2014-11-25T21:36:26Z turbofail: by passing around a "store" 2014-11-25T21:36:37Z ManDay: turbofail: ah, okay. but that would be semantically different 2014-11-25T21:36:42Z stamourv: IIRC, the error was that you had, inside a proper scope (i.e. not the hopeless top-level), a non-well-founded self-referential definition. 2014-11-25T21:36:54Z stamourv: ManDay: Something like `(define next (+ next 1))`. 2014-11-25T21:37:01Z hiroaki quit (Ping timeout: 265 seconds) 2014-11-25T21:37:02Z ManDay: stamourv: yes indeed 2014-11-25T21:37:10Z ManDay: but "next" was defined on the top-level 2014-11-25T21:37:21Z stamourv: Now, to allow for recursive definitions, that `next` in the right-hand side of the `define` refers to the `next` being defined. 2014-11-25T21:37:33Z ManDay: recursive defintions 2014-11-25T21:37:35Z ManDay: oh lord 2014-11-25T21:37:40Z turbofail: ManDay: not really. you could easily translate your program with set! into such a program, which would give the exact same result 2014-11-25T21:37:43Z ManDay: I'm in for a rough time it appears 2014-11-25T21:37:51Z ManDay: stamourv: ok thanks 2014-11-25T21:37:57Z stamourv: So you can do things like: `(define (fact n) (if (= 0 n) 1 (* n (fact (sub1 n)))))` 2014-11-25T21:38:00Z ManDay: I'll guess I'll read about this soonder or later 2014-11-25T21:38:11Z ManDay: oh, right 2014-11-25T21:38:17Z stamourv: Don't worry about it. It will soon become natural. 2014-11-25T21:38:18Z ManDay: yeah, i should have realized 2014-11-25T21:40:05Z oldskirt quit (Ping timeout: 264 seconds) 2014-11-25T21:40:23Z kongtomorrow joined #scheme 2014-11-25T21:40:33Z ManDay: I'm missing what I like most about Scheme, that it has only a minimal set of fundamental constructs, being mentioned in the tutorials 2014-11-25T21:40:47Z ManDay: I would rather if they focused on how everything is build from fundamental forms 2014-11-25T21:41:04Z gnomon: ManDay, check out Unlambda. 2014-11-25T21:41:27Z ManDay: hm, a new language 2014-11-25T21:41:56Z ManDay: oh, it's more like experimental. okay, i guess I get your point :-P 2014-11-25T21:42:13Z gnomon: ManDay, don't dismiss it. If you want minimalism, that's it. 2014-11-25T21:42:33Z gnomon: And it is actually a surprisingly instructive process to un-abstract a program into Unlambda form. 2014-11-25T21:42:42Z jumblerg quit (Quit: My Mac has gone to sleep. ZZZzzz…) 2014-11-25T21:42:50Z ManDay: gnomon: it uses a backtick . the problably-most-retarded character to use 2014-11-25T21:43:09Z ManDay: that's enough for me to dismiss it like I dimiss python for whitespace blocking :-) 2014-11-25T21:43:37Z ska-fan: rudybot: 'a 2014-11-25T21:43:37Z rudybot: ska-fan: your sandbox is ready 2014-11-25T21:43:37Z rudybot: ska-fan: ; Value: 'a 2014-11-25T21:43:44Z guampa quit (Remote host closed the connection) 2014-11-25T21:43:44Z ska-fan: rudybot: (atom 'a) 2014-11-25T21:43:44Z rudybot: ska-fan: error: atom: undefined; cannot reference an identifier before its definition in module: 'program 2014-11-25T21:43:44Z ManDay: but I'm reading on it :) 2014-11-25T21:44:28Z gnomon: ManDay, not to be mean, but if you don't mind, I'd be happier if our conversation did not include the word "retarded". 2014-11-25T21:44:43Z ManDay: gnomon: sure, sorry. 2014-11-25T21:44:54Z guampa joined #scheme 2014-11-25T21:44:58Z gnomon: ManDay, no need to apologize, just letting you know. Thanks. 2014-11-25T21:45:14Z ManDay: i find backtick the most unsuited and problematic character one may use (as bash discourages using it in favour of $()) 2014-11-25T21:45:19Z gnomon: ManDay, as for the backtick, well... I agree that it is truly a pain to type. But there is historical precedent there! 2014-11-25T21:45:30Z ManDay: gnomon: which is? 2014-11-25T21:45:48Z gnomon: Bash, heck, all shell users should avoid the `...` command substitution form. 2014-11-25T21:47:12Z ManDay: gnomon: You really shouldn't have pointed me at unlambda. I was learning Scheme. Now I'm studying unlambda programs for I find them so intriguing 2014-11-25T21:47:48Z gnomon: ManDay, http://en.wikipedia.org/wiki/Grave_accent#Use_in_programming is one reference, but I'm looking for something more useful about the use of the backquote character in more formal notation. 2014-11-25T21:52:15Z ManDay: gnomon: So now i'm reading about ski calculus 2014-11-25T21:52:23Z ManDay: thanks for destroying my evening 2014-11-25T21:57:55Z davexunit quit (Quit: Later) 2014-11-25T22:00:36Z ManDay: gnomon: As far as unlambda is concerned there is a principal problem which makes it unpractical namely it being purely functional 2014-11-25T22:01:06Z ManDay: if that werent the case (plus some sort of preprocessor cap) it would make a nice language 2014-11-25T22:01:11Z ManDay: scheme could be it, I take it 2014-11-25T22:01:30Z ManDay: but i guess then, for not being purely functional scheme is already as minimal as it can be 2014-11-25T22:02:11Z hiroaki joined #scheme 2014-11-25T22:04:45Z cjh`: scheme could be more minimal, but then it would most likely end up less practical :) 2014-11-25T22:06:13Z oldskirt joined #scheme 2014-11-25T22:08:14Z ManDay: hm, that's not what I mean. I mean that the fundamental forms (besides macro caps) are so minimal that they cannot be deconstructed further 2014-11-25T22:09:49Z turbofail: they can be deconstructed further 2014-11-25T22:09:53Z turbofail: some of them anyway 2014-11-25T22:10:52Z oldskirt quit (Ping timeout: 250 seconds) 2014-11-25T22:12:08Z ManDay: see i would think if it were good if they couldn't 2014-11-25T22:13:43Z turbofail: we've been over this before. it's not that good 2014-11-25T22:14:04Z turbofail: do you really want to write ((lambda (a b c) ...) 1 2 3) every time you want to do a let? 2014-11-25T22:14:23Z ManDay: turbofail: of course not. but that what the macro system would then allow for 2014-11-25T22:14:50Z ManDay: i.e. separate the language into a indeconstructible core and a "stdlib" of macros and syntactic sugar 2014-11-25T22:14:57Z turbofail: well you're still not using a deconstructed version 2014-11-25T22:14:58Z civodul quit (Quit: ERC Version 5.3 (IRC client for Emacs)) 2014-11-25T22:15:08Z ManDay: What do you mean? 2014-11-25T22:15:24Z turbofail: well i mean that's basically what the scheme standard gives you 2014-11-25T22:15:56Z turbofail: i was responding to your initial point 2014-11-25T22:16:16Z BitPuffin joined #scheme 2014-11-25T22:17:11Z turbofail: basically what you're asking for is what you've already been given 2014-11-25T22:17:30Z ManDay: all right, i misunderstood then 2014-11-25T22:17:45Z ManDay: I'll figure it out, the tutorial is reall ygood :) 2014-11-25T22:18:33Z cjh`: ManDay: as always, if you haven't read through SICP you should :) 2014-11-25T22:18:55Z ManDay: SICP? 2014-11-25T22:19:17Z kongtomorrow quit 2014-11-25T22:19:18Z turbofail: that said, not specifying the way things have to be deconstructed allows compilers to implement some of those theoretically-deconstructible standard forms in ways that may be more efficient and/or sane 2014-11-25T22:19:25Z cjh`: ManDay: https://mitpress.mit.edu/sicp/full-text/book/book-Z-H-4.html 2014-11-25T22:19:25Z ManDay: cjh`: oh, i see 2014-11-25T22:19:39Z cjh`: ManDay: many of those 'macros' you discussed are often implemented as non-macros for performance reasons 2014-11-25T22:19:52Z cjh`: turbofail beat me to it again. 2014-11-25T22:20:08Z ManDay: cjh`: not sure i have time for that right now 2014-11-25T22:20:30Z ManDay: it looks like a great book on theory 2014-11-25T22:20:45Z cjh`: ManDay: fair enough, in chapter 4 you implement a scheme interpreter. 2014-11-25T22:20:45Z ManDay: but right now I want to be a little bit practical :) 2014-11-25T22:20:50Z ManDay: cjh`: heh 2014-11-25T22:27:00Z ManDay quit (Quit: WeeChat 0.4.3) 2014-11-25T22:32:07Z carc quit (Quit: QUIT) 2014-11-25T22:36:45Z carc joined #scheme 2014-11-25T22:40:16Z kongtomorrow joined #scheme 2014-11-25T22:40:33Z jumblerg joined #scheme 2014-11-25T22:46:44Z BossKonaSegwaY joined #scheme 2014-11-25T22:47:51Z bb010g joined #scheme 2014-11-25T22:55:48Z kongtomorrow quit 2014-11-25T22:55:49Z developernotes quit (Quit: Textual IRC Client: www.textualapp.com) 2014-11-25T23:01:27Z bjz quit (Read error: Connection reset by peer) 2014-11-25T23:01:42Z jeapostr1phe quit (Ping timeout: 255 seconds) 2014-11-25T23:02:13Z bjz joined #scheme 2014-11-25T23:02:52Z girrig quit (Ping timeout: 256 seconds) 2014-11-25T23:02:56Z alezost quit (Remote host closed the connection) 2014-11-25T23:03:08Z alezost joined #scheme 2014-11-25T23:03:31Z alezost quit (Remote host closed the connection) 2014-11-25T23:03:51Z aranasii quit (Quit: Page closed) 2014-11-25T23:05:14Z girrig joined #scheme 2014-11-25T23:06:54Z oldskirt joined #scheme 2014-11-25T23:09:41Z hiyosi quit (Ping timeout: 264 seconds) 2014-11-25T23:11:37Z oldskirt quit (Ping timeout: 240 seconds) 2014-11-25T23:12:45Z kazimir42 quit (Ping timeout: 250 seconds) 2014-11-25T23:13:03Z vinleod joined #scheme 2014-11-25T23:14:21Z vanila joined #scheme 2014-11-25T23:14:47Z githogori__ joined #scheme 2014-11-25T23:16:55Z fridim_ quit (Ping timeout: 255 seconds) 2014-11-25T23:17:10Z githogori_ quit (Ping timeout: 250 seconds) 2014-11-25T23:22:24Z xyh joined #scheme 2014-11-25T23:23:12Z alexey joined #scheme 2014-11-25T23:24:22Z bjz_ joined #scheme 2014-11-25T23:25:05Z vinleod quit (Quit: ["Textual IRC Client: www.textualapp.com"]) 2014-11-25T23:26:57Z bjz quit (Ping timeout: 240 seconds) 2014-11-25T23:27:48Z alexey quit (Ping timeout: 256 seconds) 2014-11-25T23:30:04Z bjz_ quit (Ping timeout: 256 seconds) 2014-11-25T23:30:05Z Riastradh quit (Ping timeout: 250 seconds) 2014-11-25T23:31:24Z ByronJohnson quit (Quit: Changing server) 2014-11-25T23:32:56Z pnpuff quit (Quit: Lost terminal) 2014-11-25T23:33:25Z ByronJohnson joined #scheme 2014-11-25T23:34:57Z girrig quit (Ping timeout: 240 seconds) 2014-11-25T23:37:15Z girrig joined #scheme 2014-11-25T23:37:22Z amgarchIn9 quit (Ping timeout: 265 seconds) 2014-11-25T23:45:45Z ska-fan: rudybot: ((lambda () ())) 2014-11-25T23:45:46Z rudybot: ska-fan: error: eval:1:12: #%app: missing procedure expression; probably originally (), which is an illegal empty application in: (#%app) 2014-11-25T23:46:57Z hiroaki quit (Ping timeout: 272 seconds) 2014-11-25T23:47:04Z finnrobi quit (Ping timeout: 255 seconds) 2014-11-25T23:50:29Z aap quit (Ping timeout: 265 seconds) 2014-11-25T23:53:29Z Vutral quit (Ping timeout: 264 seconds)