00:04:00 -!- jlongster [~user@c-98-242-90-116.hsd1.ga.comcast.net] has quit [Remote host closed the connection] 00:07:04 -!- githogori [~githogori@157.238.219.242] has quit [Ping timeout: 260 seconds] 00:11:46 -!- drdo` [~user@2.208.54.77.rev.vodafone.pt] has quit [Remote host closed the connection] 00:12:41 -!- TheRealPygo [~pygospa@217.191.210.209] has quit [Ping timeout: 265 seconds] 00:13:10 pygospa [~pygospa@217.191.210.209] has joined #scheme 00:14:50 drdo [~user@2.208.54.77.rev.vodafone.pt] has joined #scheme 00:22:24 -!- chrissbx_ [~chrissbx@69-196-152-229.dsl.teksavvy.com] has quit [Quit: Leaving] 00:23:04 chrissbx [~chrissbx@69-196-152-229.dsl.teksavvy.com] has joined #scheme 00:24:42 -!- drdo [~user@2.208.54.77.rev.vodafone.pt] has quit [Remote host closed the connection] 00:27:05 drdo [~user@2.208.54.77.rev.vodafone.pt] has joined #scheme 00:29:42 mathk_ [~mathk@dispo-82-250-11-79.adsl.proxad.net] has joined #scheme 00:32:16 -!- pjb [~t@81.202.16.46.dyn.user.ono.com] has quit [Remote host closed the connection] 00:34:01 -!- Azuvix [~Azuvix@174-27-34-218.bois.qwest.net] has quit [Quit: Leaving] 00:39:44 -!- Kerrick [~Kerrick@kerrick.student.iastate.edu] has quit [Ping timeout: 260 seconds] 00:44:45 asumu [~at@c-71-232-32-44.hsd1.ma.comcast.net] has joined #scheme 00:45:44 -!- cinch- [~cinch@85-127-103-77.dynamic.xdsl-line.inode.at] has quit [Ping timeout: 240 seconds] 00:47:06 -!- wbooze [~user@xdsl-78-35-187-231.netcologne.de] has quit [Ping timeout: 240 seconds] 00:47:08 wbooze` [~user@xdsl-78-35-158-4.netcologne.de] has joined #scheme 00:47:10 homie` [~user@xdsl-78-35-158-4.netcologne.de] has joined #scheme 00:47:46 -!- homie [~user@xdsl-78-35-187-231.netcologne.de] has quit [Ping timeout: 255 seconds] 00:57:55 -!- wbooze` [~user@xdsl-78-35-158-4.netcologne.de] has quit [Quit: ERC Version 5.3 (IRC client for Emacs)] 00:58:04 -!- homie` [~user@xdsl-78-35-158-4.netcologne.de] has quit [Quit: ERC Version 5.3 (IRC client for Emacs)] 00:59:49 -!- mwolfe [~mwolfe@corona.cornerturn.com] has quit [Remote host closed the connection] 01:04:17 homie [~user@xdsl-78-35-158-4.netcologne.de] has joined #scheme 01:11:10 offby1 [~user@pdpc/supporter/monthlybyte/offby1] has joined #scheme 01:11:32 wbooze [~user@xdsl-78-35-158-4.netcologne.de] has joined #scheme 01:16:54 chupish [182e1748@gateway/web/freenode/ip.24.46.23.72] has joined #scheme 01:24:42 -!- jao [~user@pdpc/supporter/professional/jao] has quit [Remote host closed the connection] 01:31:57 -!- saccade [~saccade@209-6-54-113.c3-0.smr-ubr1.sbo-smr.ma.cable.rcn.com] has quit [Ping timeout: 250 seconds] 01:32:10 Hum. (down? "http://scheme.dk") ; => #t 01:32:13 saccade [~saccade@209-6-54-113.c3-0.smr-ubr1.sbo-smr.ma.cable.rcn.com] has joined #scheme 01:33:04 Someone set us up the routing loop. 01:34:51 -!- jonrafkind [~jon@crystalis.cs.utah.edu] has quit [Ping timeout: 265 seconds] 01:39:40 -!- pygospa [~pygospa@217.191.210.209] has quit [Ping timeout: 265 seconds] 01:39:43 dammit: "to iterate is human; to recurse, divine" is attributed to L. Peter Deutsch; but it's one of those maddening, unsubstantiated attributions for which i can find no original reference. 01:40:10 esp. since the L. is no longer an initial 01:40:14 anyone happen to know when it comes? 01:40:22 chupish: indeed; i guess he actually changed his name. 01:40:28 s/when/whence/ 01:40:50 2007 according to Wikipedia 01:41:24 pygospa [~pygospa@217.191.221.182] has joined #scheme 01:42:15 the only substantiated thing I find in reference to that quote is a paper, which I'm sure you saw 01:42:21 not by Deutsch mind you 01:44:38 chupish: this one? http://users.rcn.com/jcoplien/Patterns/C++Report/SpaceIII-1.html 01:45:51 yep; I've also seen it attributed to others 01:46:05 Robert Heller, for one 01:46:09 so there's three people 01:46:15 ;) 01:51:27 markovic [~interstat@222.152.36.202] has joined #scheme 01:51:52 is there an equivalent to &rest from CL in scheme? 01:53:09 markovic: (lambda (foo . bar) ...) is like (lambda (foo &rest bar) ...). 01:53:31 oh ok 01:53:31 markovic: Or, (lambda foo ...) if _all_ arguments are to be packed into the list. 01:53:38 cool 01:53:39 thanks 01:53:41 :-) 01:57:07 I'm trying to construct a lambda function that behaves the same as a normal lambda but automatically assigns variables 01:57:14 because I'm really, really, really lazy 01:57:45 markovic: Some implementations of Scheme support optional arguments. 01:57:58 e.g., (lambda ((foo 3) (bar 42)) ...) 01:58:16 if you call that with no arguments, 3 and 42 are put in as foo and bar's values. 01:58:28 I was originally using racket, but I've switched to r5rs/whatever ``scheme'' happens to be in racket 02:03:20 I don't know if Racket supports SRFI-89 directly, but I know they have optional & keyword arguments in there 02:03:32 here's a PDF about it: http://www.cs.utah.edu/plt/publications/scheme09-fb.pdf 02:03:33 If you're using "#lang scheme", you're just using an old name for the language that's now called Racket. 02:03:47 rudybot: init racket 02:03:50 chandler: your racket sandbox is ready 02:04:09 rudybot: ((lambda (foo #:bar (bar #f)) (cons foo bar)) 1 #:bar 2) 02:04:10 chandler: ; Value: (1 . 2) 02:04:20 saccade_ [~saccade@209-6-54-113.c3-0.smr-ubr1.sbo-smr.ma.cable.rcn.com] has joined #scheme 02:06:04 -!- saccade [~saccade@209-6-54-113.c3-0.smr-ubr1.sbo-smr.ma.cable.rcn.com] has quit [Ping timeout: 260 seconds] 02:07:36 -!- chupish [182e1748@gateway/web/freenode/ip.24.46.23.72] has quit [] 02:08:59 :3c 02:19:34 -!- pavelludiq [57f63ac1@gateway/web/freenode/ip.87.246.58.193] has quit [] 02:20:53 githogori [~githogori@adsl-66-123-22-146.dsl.snfc21.pacbell.net] has joined #scheme 02:22:45 pjb [~t@81.202.16.46.dyn.user.ono.com] has joined #scheme 02:34:58 tessier [~treed@mail.copilotco.com] has joined #scheme 02:37:16 -!- bgs100 [~ian@unaffiliated/bgs100] has quit [Quit: night all] 02:41:49 kilimanjaro [~kilimanja@unaffiliated/kilimanjaro] has joined #scheme 02:52:35 -!- pjb [~t@81.202.16.46.dyn.user.ono.com] has quit [Remote host closed the connection] 02:52:43 copumpkin [~pumpkin@209-6-232-56.c3-0.sbo-ubr1.sbo.ma.cable.rcn.com] has joined #scheme 02:52:43 -!- copumpkin [~pumpkin@209-6-232-56.c3-0.sbo-ubr1.sbo.ma.cable.rcn.com] has quit [Changing host] 02:52:43 copumpkin [~pumpkin@unaffiliated/pumpkingod] has joined #scheme 02:53:48 vu3rdd [~vu3rdd@nat/cisco/x-pwdgivrzwecpmsqn] has joined #scheme 03:07:11 -!- copumpkin [~pumpkin@unaffiliated/pumpkingod] has quit [Remote host closed the connection] 03:07:35 copumpkin [~pumpkin@209-6-232-56.c3-0.sbo-ubr1.sbo.ma.cable.rcn.com] has joined #scheme 03:07:35 -!- copumpkin [~pumpkin@209-6-232-56.c3-0.sbo-ubr1.sbo.ma.cable.rcn.com] has quit [Changing host] 03:07:35 copumpkin [~pumpkin@unaffiliated/pumpkingod] has joined #scheme 03:15:07 Kerrick [~Kerrick@kerrick.student.iastate.edu] has joined #scheme 03:15:08 tupi [~david@186.205.37.15] has joined #scheme 03:24:18 -!- masm [~masm@bl19-153-71.dsl.telepac.pt] has quit [Quit: Leaving.] 03:25:19 -!- tupi [~david@186.205.37.15] has quit [Quit: Leaving] 03:49:17 dfkjjkfd [~paulh@145.120.22.20] has joined #scheme 03:53:02 timj_ [~timj@e176192197.adsl.alicedsl.de] has joined #scheme 03:56:05 -!- timj__ [~timj@e176199196.adsl.alicedsl.de] has quit [Ping timeout: 245 seconds] 03:56:17 mmc [~michal@cs27120227.pp.htv.fi] has joined #scheme 03:56:27 -!- mmc [~michal@cs27120227.pp.htv.fi] has quit [Remote host closed the connection] 03:57:30 mmc [~michal@cs27120227.pp.htv.fi] has joined #scheme 04:02:22 -!- vu3rdd [~vu3rdd@nat/cisco/x-pwdgivrzwecpmsqn] has quit [Remote host closed the connection] 04:02:38 vu3rdd [~vu3rdd@nat/cisco/x-szphvmabfupgaheu] has joined #scheme 04:02:53 -!- markovic [~interstat@222.152.36.202] has quit [Ping timeout: 260 seconds] 04:06:30 -!- Riastradh [debian-tor@fsf/member/riastradh] has quit [Ping timeout: 245 seconds] 04:09:47 -!- mmc [~michal@cs27120227.pp.htv.fi] has quit [Ping timeout: 240 seconds] 04:12:15 mmc [~michal@cs27120227.pp.htv.fi] has joined #scheme 04:15:56 -!- vu3rdd [~vu3rdd@nat/cisco/x-szphvmabfupgaheu] has quit [Remote host closed the connection] 04:17:40 -!- mmc [~michal@cs27120227.pp.htv.fi] has quit [Remote host closed the connection] 04:19:25 Gmind [~Deulamco@113.190.182.90] has joined #scheme 04:19:53 mmc [~michal@cs27120227.pp.htv.fi] has joined #scheme 04:22:03 is that because I grown up or playing PS2 isn't addictive as learn SCheme =.=! ? 04:26:03 *learning Scheme :P 04:27:11 Gmind, I'd rather learn Scheme than play PS2 04:27:33 I'd rather eat a ham sandwich than learn Scheme 04:27:41 if it has cheese, anyway 04:27:56 I'd rather eat a blt than a ham sandwich 04:28:42 :D nice to share my feeling w/ you guys 04:29:04 just In my sleep, I can see my Scheme code too =.=! 04:30:04 kilimanjaro: well, OK. 04:30:17 funny, in my sleep I see my smartphone 04:30:41 offby1, I had a dream last night that I was having a conversation with a boa constrictor 04:30:57 -!- asumu [~at@c-71-232-32-44.hsd1.ma.comcast.net] has quit [Quit: Leaving] 04:31:05 what language did it speak? 04:31:38 Riastradh [debian-tor@fsf/member/riastradh] has joined #scheme 04:32:18 I'd see my eyelids in my sleep if I wasn't unconscious. 04:33:24 peddie [~peddie@rrcs-67-53-33-242.west.biz.rr.com] has joined #scheme 04:33:35 Usually people see phosphenes. 04:33:56 I check my eyelids for pinholes 04:35:36 In my last night dream, I saw my Scheme code controlling a slow snail moving over a obstacle stone ^o^ 04:36:07 Last night I dreamt I went to Cambridge again. 04:36:10 -!- mmc [~michal@cs27120227.pp.htv.fi] has quit [Read error: Connection reset by peer] 04:37:39 guidj0s [~gdjs@187.39.191.205] has joined #scheme 04:38:31 heck, a small curious question : 04:38:40 wonder if I should ask or not :P 04:38:54 (yep, about schemer ) 04:39:45 in SICP, 1.3.1 ( http://mitpress.mit.edu/sicp/full-text/book/book-Z-H-4.html#%_toc_%_sec_1.3.1 ), in the first example of procedores as arguments, does the interpreter only know "term" and "next" are procedures after processing the procedure which uses them, in which case it would see that they both are used, syntatically, as procedures and not operands? 04:39:46 http://tinyurl.com/22rzbyu 04:42:45 guidjos: can't see your 1st example 04:42:46 =.= 04:42:56 sure, let me paste it. 04:43:24 through I am newbie, but any others could help if I can't :P 04:43:37 http://codepad.org/c2WT7ud4 04:46:34 I think it's probably implementation dependent. From a theoretical perspective, you can probably assume that the interpreter figures that out as it encounters the relevant spot in the code. 04:46:52 vu3rdd [~vu3rdd@nat/cisco/x-vsxsmxyzzheerpjv] has joined #scheme 04:47:37 -!- MichaelRaskin [~MichaelRa@195.91.224.225] has quit [Ping timeout: 255 seconds] 04:48:25 n9mtb, maybe I need to fix my question. Is there any syntactical element which discriminates operands and procedures in procedure definitions? 04:49:56 in code, the first thing after a ( is a procedure, unless the code is quoted (which i don't believe shows up in SICP until later if at all) 04:50:33 (x a b c d ...) x is the procedure, a b c d etc. are the arguments, that's all the syntax there is (at that point in SICP) really 04:50:48 Well, x could also be syntax or macro, too. :-P 04:50:57 But, I'm just being pedantic now. :-P 04:51:03 true, but not in chapter 1 of SICP it isn't :) 04:51:08 ok, so if I suddenly write (a b) within that procedure's definition, then a is treated as a procedure, right? 04:51:25 yep, it calls procedure a with argument b 04:51:33 interesting. 04:51:37 thanks :-) 04:52:20 -!- Riastradh [debian-tor@fsf/member/riastradh] has quit [Ping timeout: 245 seconds] 04:52:52 there is more complexity to the actual language as it exists in reality, of course, but in the beginning of SICP you're still dealing with the very fundamental fundamentals and you haven't encountered it yet 04:53:07 I would expect so. 04:53:33 how "much" does Lisp vary from flavor to flavor? 04:53:49 I understand this is a somewhat vague question, and that you might not be willing to answer it. 04:54:04 good question :) not sure i am experienced enough to have an answer 04:55:13 Riastradh [debian-tor@fsf/member/riastradh] has joined #scheme 04:56:19 -!- Kerrick [~Kerrick@kerrick.student.iastate.edu] has quit [Ping timeout: 240 seconds] 04:58:27 should be asked in #lisp 04:58:29 :P 04:58:45 -!- peddie [~peddie@rrcs-67-53-33-242.west.biz.rr.com] has quit [Quit: peace!] 04:59:09 I think those peoples at #Lisp can give you a right anwser 04:59:26 #lisp failed to answer my previous question, I figured they're all too busy or bored. 05:01:04 peddie [~peddie@XVM-107.MIT.EDU] has joined #scheme 05:01:16 in my admittedly limited experience, it seems to me that the fundamentals of stuff like the ( ) syntax, functional programming, list structures and the like are pretty much the same, beyond that who knows what is layered on top 05:01:53 for me the most jarring difference is between for example scheme and elisp, how elisp uses dynamic binding rather than lexical 05:01:55 -!- chemuduguntar [~user@smtp.touchcut.com] has quit [Ping timeout: 240 seconds] 05:02:18 guidj0s: 300 peoples are all busy ? :P So it's as fun as here =)) 05:02:32 (I mean not as fun as here ) 05:04:05 well a lot of people stay on IRC when they're not actually present and/or awake too 05:04:20 ya :D 05:04:41 guidj0s: seriously , I found somewhat alike to your question code 05:05:01 Gmind, what do you mean? 05:06:00 guidj0s, procedures in Scheme are objects just like numbers. They can be stored in variables, passed as arguments to procedures, returned from procedures, and so on. When evaluating the expression (f x y), Scheme evaluates the expression f, the expression x, and the expression y; the value of the expression f had better evaluate to a procedure, which Scheme passes the values of the expressions x and y to as arguments. 05:06:48 Riastradh, makes sense. 05:11:57 :P 05:12:19 well, I think it's quite clear 05:13:28 skld [~skld@vpn.bangalore.geodesic.com] has joined #scheme 05:13:28 -!- skld [~skld@vpn.bangalore.geodesic.com] has quit [Changing host] 05:13:28 skld [~skld@unaffiliated/skld] has joined #scheme 05:14:13 -!- skld [~skld@unaffiliated/skld] has left #scheme 05:14:23 pyro- [~pyro@unaffiliated/purplepanda] has joined #scheme 05:15:01 -!- lusory [~bart@bb219-74-90-12.singnet.com.sg] has quit [Read error: Connection reset by peer] 05:18:48 Gmind1 [~Deulamco@113.190.182.90] has joined #scheme 05:20:08 lusory [~bart@bb121-6-159-74.singnet.com.sg] has joined #scheme 05:21:31 -!- Gmind [~Deulamco@113.190.182.90] has quit [Ping timeout: 240 seconds] 05:21:55 -!- Riastradh [debian-tor@fsf/member/riastradh] has quit [Ping timeout: 245 seconds] 05:22:00 -!- copumpkin [~pumpkin@unaffiliated/pumpkingod] has quit [Ping timeout: 265 seconds] 05:22:25 copumpkin [~pumpkin@unaffiliated/pumpkingod] has joined #scheme 05:22:34 Riastradh [debian-tor@fsf/member/riastradh] has joined #scheme 05:25:30 -!- guidj0s [~gdjs@187.39.191.205] has quit [Quit: I cna ytpe 300 wrods pre mniuet!!!] 05:30:02 MichaelRaskin [~MichaelRa@195.178.216.22] has joined #scheme 05:32:56 jonrafkind [~jon@jonr5.dsl.xmission.com] has joined #scheme 05:40:02 xwl_ [~wixu@nat/nokia/x-ugbqgodfhwyfhhbb] has joined #scheme 05:46:16 -!- dfkjjkfd [~paulh@145.120.22.20] has quit [Quit: Lost terminal] 05:46:45 dfkjjkfd [~paulh@145.120.22.20] has joined #scheme 05:58:40 pjb [~t@81.202.16.46.dyn.user.ono.com] has joined #scheme 06:06:12 Whoah... why are people discussing on r6rs-discuss? 06:06:47 nilg [~user@77.70.2.229] has joined #scheme 06:07:19 Disucssing R7RS, that is. 06:07:20 kenjin [~kenjin@211.177.89.126] has joined #scheme 06:07:46 -!- kenjin is now known as Guest1781 06:09:39 -!- Guest1781 [~kenjin@211.177.89.126] has quit [Client Quit] 06:15:40 -!- Riastradh [debian-tor@fsf/member/riastradh] has quit [Ping timeout: 245 seconds] 06:20:13 Gmind [~Deulamco@113.190.182.90] has joined #scheme 06:21:27 -!- Gmind1 [~Deulamco@113.190.182.90] has quit [Ping timeout: 265 seconds] 06:24:25 foof: I guess the R6RS horse isn't yet flogged to death? :-P 06:24:48 (At least as they see it.) 06:26:03 morning cky 06:27:23 Riastradh [debian-tor@fsf/member/riastradh] has joined #scheme 06:31:04 Heya! I'm off to bed, now! 06:31:30 (^^--- @Caleb--) 06:34:15 They can flog it all they want or continue to use it productively for ongoing R6RS implementation issues. 06:34:36 But having two public discussion lists for R7RS is confusing. 06:36:54 Indeed. 06:37:42 minsa [~minsa@c-24-5-121-157.hsd1.ca.comcast.net] has joined #scheme 06:40:44 I couldn't keep up so I kind of disappeared on accident :( 06:41:00 too many Real Life (tm) things 06:42:46 Quadrescence: Just remember to fill out the next ballot! 06:43:18 foof: I actually began to write a huge thing of proposals and reviews of current proposals 06:43:46 but then time slipped again 06:45:48 Are you going to write a huge thing of implementations of proposals too? 06:46:00 send out the reviews (I'm about to do that too) 06:47:20 Riastradh: WG1 is 99% implemented by chibi already 06:47:41 I will hold off adding `call/cc' until the last possible moment though. 06:48:18 *Riastradh* blinks. 06:48:18 Do you mean the particular name CALL/CC, or the continuation reification operation? 06:48:40 The name. Having an alias in the standard bugs the hell out of me. 06:49:00 Yeah, that's pretty silly. 06:54:36 foof: http://www.xtranormal.com/watch/8082089/ 06:56:05 -!- Riastradh [debian-tor@fsf/member/riastradh] has quit [Ping timeout: 245 seconds] 07:18:46 Gmind1 [~Deulamco@113.190.182.90] has joined #scheme 07:19:23 http://www.youtube.com/watch?v=DaxU0ut5tUw 07:21:04 -!- Gmind [~Deulamco@113.190.182.90] has quit [Ping timeout: 260 seconds] 07:21:11 jcowan [~John@cpe-98-14-172-204.nyc.res.rr.com] has joined #scheme 07:21:21 foof: ping 07:21:27 ... even if one of those wishes is for an iPhone 07:21:36 *somnium`* lmfao 07:22:37 jcowan: pong 07:22:45 (up late aren't you?) 07:23:10 About my bedtime. 07:23:19 Synthcode.com is down. 07:24:23 Proxy Error 07:24:24 The proxy server received an invalid response from an upstream server. 07:24:24 The proxy server could not handle the request GET /. 07:24:24 Reason: Error reading from remote server 07:24:41 jcowan: watch http://www.xtranormal.com/watch/8082089/ before you get 07:24:43 (or listen) 07:25:25 Before I get what? 07:25:32 to bed* 07:25:50 Ah. No such luck; I'll watch it tomorrow morning local, probably 6-7 hours from now. 07:26:40 thanks 07:34:53 someone stole my local port :/ 07:40:08 jcowan: back up 07:40:17 Thanks. 07:40:31 did you want the portable match.scm? 07:40:56 Yup, since the question is being discussed. 07:41:25 Thanks for ccing scheme-reports, I would never have noticed otherwise. 07:43:16 All of scheme-reports@, wg1@, wg2@, and discuss@r6rs are pretty low traffic now, so I don't have problems monitoring them all. 07:52:08 -!- jonrafkind [~jon@jonr5.dsl.xmission.com] has quit [Ping timeout: 276 seconds] 07:59:16 -!- jcowan [~John@cpe-98-14-172-204.nyc.res.rr.com] has quit [Quit: Leaving] 08:17:55 hkBst [~quassel@79.170.210.174] has joined #scheme 08:17:55 -!- hkBst [~quassel@79.170.210.174] has quit [Changing host] 08:17:55 hkBst [~quassel@gentoo/developer/hkbst] has joined #scheme 08:19:10 Gmind [~Deulamco@113.190.182.90] has joined #scheme 08:21:31 -!- Gmind1 [~Deulamco@113.190.182.90] has quit [Ping timeout: 240 seconds] 08:22:54 -!- gnomon [~gnomon@CPE0022158a8221-CM000f9f776f96.cpe.net.cable.rogers.com] has quit [Ping timeout: 260 seconds] 08:28:33 -!- vu3rdd [~vu3rdd@nat/cisco/x-vsxsmxyzzheerpjv] has quit [Remote host closed the connection] 08:28:50 gnomon [~gnomon@CPE0022158a8221-CM000f9f776f96.cpe.net.cable.rogers.com] has joined #scheme 08:33:27 -!- somnium` [~user@184.42.0.205] has quit [Remote host closed the connection] 08:35:11 -!- derp- [~sc@ip4da3afe2.direct-adsl.nl] has quit [Remote host closed the connection] 08:41:44 -!- xwl_ [~wixu@nat/nokia/x-ugbqgodfhwyfhhbb] has quit [Remote host closed the connection] 08:52:59 -!- Koven is now known as Kovensky 09:02:01 Riastradh [debian-tor@fsf/member/riastradh] has joined #scheme 09:02:30 vu3rdd [~vu3rdd@nat/cisco/x-abzdspsogjqeoiol] has joined #scheme 09:19:43 Gmind1 [~Deulamco@113.190.182.90] has joined #scheme 09:20:35 -!- drdo [~user@2.208.54.77.rev.vodafone.pt] has quit [Remote host closed the connection] 09:20:55 drdo [~user@2.208.54.77.rev.vodafone.pt] has joined #scheme 09:21:07 -!- Gmind [~Deulamco@113.190.182.90] has quit [Ping timeout: 240 seconds] 09:24:04 noonian [~noonian@c-98-232-230-23.hsd1.or.comcast.net] has joined #scheme 09:27:45 tailnodes [~user@212.185.106.68] has joined #scheme 09:28:10 -!- vu3rdd [~vu3rdd@nat/cisco/x-abzdspsogjqeoiol] has quit [Remote host closed the connection] 09:28:19 vu3rdd [~vu3rdd@nat/cisco/x-axnfatgqeozpzdpo] has joined #scheme 09:34:59 How do I do a "for loop" in scheme? 09:35:20 there are several ways 09:35:30 the most common is to write a recursive procedure 09:35:41 another is to write an iterative procedure 09:35:58 What is a "for loop"? 09:36:04 or use a macro that all does this for you. In chicken (and maybe others there is 'dotimes') 09:36:13 usually with a named let 09:36:27 and of course the named let, thanks noonian :) 09:36:58 There's also the dreaded "do" 09:37:24 try to proof the correctnes of *this* 09:37:41 (let loop ((count 0)) (cond ((= count 10) #t) (else (loop (+ count 1))))) 09:38:32 (dotimes (i 10) (display i) (newline)) 09:38:58 :) 09:39:19 That sort-of corresponds to the classical Fortran "FOR". 09:39:51 another silly option: (for-each display (iota 10)) 09:40:26 (display "for loop") 09:40:43 i never use do or anything because i have no idea intuitively what the syntax for the form would be :P 09:40:48 this of course does not correspond to for statements like in C 09:47:48 dotimes: Unbound variable 09:48:17 noonian: Where does the payload go in your example? 09:50:41 tailnodes: dotimes is a nonstandard macro available in chicken scheme's miscmacros extension 09:51:33 in the else part of the cond expression before calling loop again (next iteration) 09:52:04 but usually you just modify an argument to loop and build up a result that way so you dont have to modify any state 09:52:15 I'll have to use (begin ... ) ? 09:52:43 (let loop ((count 0) (result '())) (cond ((= count 10) #t) (else (loop (+ count 1) (cons count result))))) 09:52:47 cond clauses imply a begin 09:53:05 actually you can have as many expressions as you want in a cond clause 09:53:28 (let loop ((count 0) (result '())) (cond ((= count 10) result) (else (loop (+ count 1) (cons count result))))) 09:53:47 list from 0 to 10 09:54:42 0 to 9 actually 09:54:52 backwards 09:55:09 (let loop ((count 0) (result '())) (cond ((> count 10) (reverse result)) (else (loop (+ count 1) (cons count result))))) 09:55:39 that's btw close to what the dotimes macro expands to :) 09:56:00 (of course) 09:56:54 astertronisticon [~astertron@ip70-181-196-121.sd.sd.cox.net] has joined #scheme 09:59:30 but after a while you begin to prefer (for-each display (iota 10)) 09:59:46 fold is awesome 10:00:35 That's a map, not a fold 10:01:05 i know, he was asking about loops 10:01:23 just as far as higher order procedures i think fold is super useful 10:01:46 Naw, they're just primitive recursive. 10:01:57 Dawgmatix [~dman@123.201.201.243] has joined #scheme 10:01:59 -!- pothos [~pothos@111-240-205-247.dynamic.hinet.net] has quit [Quit: leaving] 10:02:24 pothos [~pothos@111-240-205-247.dynamic.hinet.net] has joined #scheme 10:02:56 Hi everyone. I don't mean to interrupt, but does anyone know of a convenient way to generate the list (1 2 3 4 ... n)? I keep on implementing it with a function that does a lot of set-cdr!, and I was wondering if there might be a built in function for it. 10:03:29 iota in srfi-1 10:03:44 Cool, thanks, I'll look that up. 10:03:51 ...set-cdr!? 10:04:21 I like how that punctuation came out 10:04:22 noonian: well the drawback is that iota always generates the full list... 10:04:48 heh 10:04:53 do you need a lazy list? 10:05:03 astertronisticon: building a list usually involves cons... 10:05:13 Yeah, the exclamation points in scheme are always awesome. 10:05:42 hehe only the procedures that modify state have them though 10:06:02 noonian: If I do I would use streams. But for a loop recursion is enough imho 10:07:05 yea 10:07:43 for a list (1 2 3 4 ... n) it sounded like he wanted the actual list 10:08:11 noonian: I was referring to your (for-each display (iota 10)) example 10:08:17 arbscht [~arbscht@unaffiliated/arbscht] has joined #scheme 10:08:25 -!- trigen [~MSX@ec2-46-51-179-218.eu-west-1.compute.amazonaws.com] has left #scheme 10:08:38 oh i see 10:09:32 Cool, I guess I could write it without set-cdr actually: (define (interval start end) (if (> start end) #f (cons start (interval (+ 1 start) end)))) 10:10:21 It just wouldn't be tail recursive. 10:10:25 yep 10:10:35 but it is prettier 10:10:50 yeah that's definitely true 10:11:18 you can used named let to make almost anything tail recursive 10:11:27 -!- mathk_ is now known as mathk 10:11:49 named let? 10:13:46 (define (interval start end) (let loop ((cur start) (result '())) (if (> cur end) (reverse result) (loop (+ cur 1) (cons cur result)))) 10:15:48 astertronisticon: https://secure.wikimedia.org/wikipedia/en/wiki/Scheme_(programming_language)#Block_structure 10:16:40 astertronisticon: see also http://www.schemers.org/Documents/Standards/R5RS/HTML/r5rs-Z-H-2.html#%_toc_%_sec_4.2.4 10:16:41 http://tinyurl.com/2dzneh4 10:17:32 thanks 10:18:06 think i missed a paren 10:18:48 That's always a given 10:18:58 lol 10:19:18 I miss a paren about 1 in 5 times I try to compile. 10:20:43 -!- kilimanjaro [~kilimanja@unaffiliated/kilimanjaro] has quit [Ping timeout: 240 seconds] 10:20:45 Gmind [~Deulamco@113.190.182.90] has joined #scheme 10:20:46 yeah it used to stress me out but now its just the runtime and logic errors that do in scheme :P 10:21:24 Yeah it can be hard to trace. 10:22:03 -!- Gmind1 [~Deulamco@113.190.182.90] has quit [Ping timeout: 260 seconds] 10:24:12 rudybot: (let loop ((count 0)) (+ 1 count)) 10:24:14 kilimanjaro [~kilimanja@unaffiliated/kilimanjaro] has joined #scheme 10:24:16 minsa: your sandbox is ready 10:24:16 minsa: ; Value: 1 10:24:49 noonian: I was studying your example. loop is the name for the body of expression ? 10:25:23 loop is the name of a procedure, can be anything 10:25:49 named let lets you define a procedure with initial values for parameters and call it at the same time 10:25:52 definitely, so the procedure can be defined using "let" or "define" 10:25:59 nice.. 10:26:03 yeah 10:26:49 Here's my previous tail recursive implementation of the function we were talking about. It took me a while to rewrite it. 10:26:50 so : (let ((x '1) (y '1)) (+ x y)) is a nameless let ? 10:26:57 (define (interval start end) 10:26:58 (let [(loop (lambda (current-number head tail) 10:26:58 (if (> current-number end) 10:26:58 head 10:26:58 (let [(new-node (cons current-number #f))] 10:26:58 (if (= head #f) 10:27:01 (loop (+ 1 current-number new-node new-node)) 10:27:03 (begin (set-cdr! tail new-node) 10:27:04 (loop (+ 1 current-number head new-node))))))))] 10:27:07 (loop start #f #f))) 10:27:09 sorry for the mess 10:28:35 if you use emacs you can use paredit-mode and you will never miss a paren 10:28:58 -!- kilimanjaro [~kilimanja@unaffiliated/kilimanjaro] has quit [Ping timeout: 276 seconds] 10:29:16 i would try to do it without using set-cdr! though 10:30:06 noonian: I tried to write using a define but wasn't successful. (define (loop count result) (cond (> count 10) (result) (else (loop (+ count 1) (cons count result))))) 10:30:07 Yeah, your version with reverse was much shorter 10:30:12 it always return 10 10:30:17 what's a miss ? 10:30:46 I call it using "(loop 0 '()) 10:30:50 " 10:31:58 I might be wrong, but should the cond be: (cond ((> count 10) (result)) (else ... ? 10:32:03 It has been a while for me. 10:32:08 let me try. 10:32:11 thats right but your cond form is a little messed up 10:32:48 in what way ? 10:32:49 ((> count 10) result) (else ... 10:33:00 oh.. 10:33:04 instead of (cond (> count 10) (result) (else ... 10:33:34 I'll try to write another version... 10:33:40 yaye.. 10:34:13 but there is no initializing with "define" ? 10:34:46 yea but you can do it inside the definition of interval 10:35:26 (define (interval start end) (define (loop cur result) ...) (loop start '())) 10:35:40 is the same as the named let 10:36:51 nice.. 10:37:39 Wow, this is so much better than before: 10:37:44 (define (interval start end) 10:37:44 (let [(loop (lambda (current-number end-list) 10:37:44 (if (< current-number start) 10:37:44 end-list 10:37:44 (loop (- current-number 1) (cons current-number end-list)))))] 10:37:45 (loop end '()))) 10:37:59 It does it backwards though, which is a little strange. 10:38:43 yeah, it doesnt really take much time to reverse things, and doesn't affect time complexity at all 10:38:53 so i often build backwards then reverse 10:39:36 Yeah, it's definitely more intuitive to do it that way, so you don't need to worry about doing it backwards within the algorithm 10:40:01 exactly 10:40:47 I'm kind of an efficiency geek though, I like to see how far I can take it for the fun of it. 10:40:48 the book "the little scheme" really helped me think about everything recursively like that 10:41:41 astertronisticon: the last thing you did is not named let but named lambda ? 10:42:04 he just used a regular let 10:42:13 how about loop ? 10:42:21 and gave the variable loop a procedure as its value 10:42:31 which is the same recursive procedure 10:42:33 ic.. yes.. 10:43:13 cool, yeah I'm not too familiar with scheme, I know just enough to get around. 10:43:35 I switched from lisp. 10:44:03 and in (interval start end) : start and end are variables ? 10:44:09 yeah 10:44:15 defined already ? 10:44:19 the arguments to interval 10:44:28 no 10:44:43 If you called (interval 3 8) start would be 3 and end would be 8. 10:44:51 (define (interval start end) ...) is the same as (define interval (lambda (start end) ...)) 10:45:07 oh.. I was thinking interval as keyword. 10:45:21 yeah, it looks like it, sorry. 10:45:33 thank you both.. 10:45:40 I just started a week ago. 10:45:41 no problem. 10:45:47 Cool. 10:45:59 What prior programming experience do you have? 10:46:06 C, C++ 10:46:16 mainly C nowadays. 10:46:21 cool, I had the same back ground when I started learning. 10:46:27 cool, what do you think of scheme? 10:46:50 oh, it is like eating snack or something sweet. I am so happy about it. 10:47:01 if I want to take a break from work, I will be doing it. 10:47:06 wait till it bites you back in the ass with CALL/CC 10:47:13 hehe thats a good way of putting it 10:47:19 Yeah, that's is such a mind bender 10:47:43 I had to learn that via Lua's coroutines and then I could sort of make sense of call/cc 10:47:51 what got me started is "Programming Paradigms" lectures from Stanford. 10:48:33 cool, what did they say? 10:48:50 I like scheme so Ive been trying to use it to get better at it but it was rough for a while hehe 10:48:59 read http://symbo1ics.com/blog/?p=275 if you want to know what scheme/lisp is all about, in my opinion =) 10:49:02 the professor is really good. 10:49:25 yeah, it is surprising how much you can get out of an online lecture. 10:49:47 Quadrescence: will do. 10:50:22 It takes a lot of practice to keep up with it in general. 10:50:42 astertronisticon: yeah, the class is a survey of paradigms as the name suggests. it looks at hardware architecture, call stacks, c, c++, scheme, and python. 10:51:04 and concurrency in c. 10:51:08 cool, I still haven't really learned python. 10:51:25 yeah i avoided python because i am phobic about the white space thing 10:51:30 the class uses kawa. 10:51:32 yeah me too 10:51:46 kawa? 10:52:02 scheme implementation in java. 10:52:08 Oh cool. 10:53:39 concurrency is fun to learn. 10:54:09 does anyone know if scheme implementations use threads by default for functions like map? 10:55:07 It seems like the specifications really hint at it when they say the order isn't specified in how it gets evaluated, but I'm not sure of which implementations actually take advantage of that. 10:55:34 im not sure what optimizations are used but there are many optimizing compilers out there 10:55:49 Yeah, I'll have to check that out. 10:56:00 i think most scheme implementations only run in 1 process though so only use 1 os thread and therefore cant make use of multiple cores 10:56:13 I see. 10:56:53 I'll have to learn more about threading. 10:57:21 -!- vu3rdd [~vu3rdd@nat/cisco/x-axnfatgqeozpzdpo] has quit [Remote host closed the connection] 10:57:25 there is a parallelizing scheme compiler somewhere 10:57:34 i can't remember the name 10:57:54 yeah? That would be the craziest thing to have if you had an intense multicore computer 10:57:55 schemik or something? 10:58:20 To be able to take advantage of all that without putting any effort into it would be fun. 10:58:27 Yeah 11:00:05 I wonder what issues you'd have to sort out if you were going to implement a parallelizing scheme compiler. 11:01:34 call/cc business 11:02:11 Like if someone ran: (define thing '(5)) (define (fn a) (set-car! (+ 1 a))) (map fn (list thing thing thing thing)) 11:02:24 Yeah, mutating junk would be trouble 11:02:37 Yeah, and I couldn't imagine the call/cc stuff. 11:02:47 *couldn't* 11:03:01 and most scheme systems implement their own lightweight threads so would be hard to switch and know when you would want to, because the lightweight threads usually perform better 11:03:45 or just divide number of lightweight ones per core i guess 11:03:50 I guess every object in the scheme environment would need a mutex for the mutable operations. 11:04:40 Yeah, it makes sense that there would be better performance if the programmer had control over the threads. 11:05:22 or you could just default to single threaded computation for mutating junk :) 11:06:02 yeah, that's true, that would solve it, with almost no overhead, and it would encourage functional style. 11:06:10 So I think that would be a win. 11:07:56 -!- tailnodes [~user@212.185.106.68] has quit [Remote host closed the connection] 11:09:22 couldnt you just join the threads when you mutate and spawn new ones again after? 11:09:44 sounds messy 11:10:15 -!- pyro- [~pyro@unaffiliated/purplepanda] has left #scheme 11:10:21 yeah, I don't know too much about threading, but would it just be to stop everyone for a moment until a mutation is complete? 11:10:35 And then let everyone continue? 11:11:10 yeah, it messes up everyones model when you start mutating things 11:11:33 thats why haskellites are so proud of monads 11:11:41 Yeah, in the worst case, it would all degenerate down to a single thread. 11:11:59 I wanna learn haskell 11:13:09 bah, monads 11:13:12 The syntax is so foreign I always get discouraged. 11:13:29 yeah, i find it hard to read 11:13:39 and there are also white space rules hehe 11:13:41 It seems very dense 11:13:47 it is very dense 11:14:14 -!- erider [~chatzilla@unaffiliated/erider] has quit [Read error: Connection reset by peer] 11:14:15 the white space rules explains a lot, there had to be something else going on. 11:14:34 i wrote some mumbo jumbo on haskell here http://symbo1ics.com/blog/?p=87 11:15:03 I didnt even know that until I tried to use a .xmonad file i got from someone and accidently deleted some whitespace or something 11:15:13 ha :( 11:17:35 I also get confused a lot by haskell now because i learned a little sml and now i switch up the syntax all the time lol 11:18:05 yeah, they seem very similar. want to learn... 11:18:23 cons is switched with type declarations for one thing 11:19:08 SML is smaller 11:19:11 more "pure" 11:19:30 also SML actually has a crazy neat module system 11:19:40 haskell has the dumbest module system ever 11:20:00 Gmind1 [~Deulamco@113.190.182.90] has joined #scheme 11:20:01 emacs can handle your white space 11:20:03 :p 11:20:16 sml is the opposite of scheme in that it is super hard to get programs to compile, but if they do then they dont have very many bugs 11:20:19 -!- Gmind [~Deulamco@113.190.182.90] has quit [Ping timeout: 240 seconds] 11:20:26 syntax of Haskell isn't that hard 11:20:33 Gmind1: It's messy 11:20:37 some are very bright 11:21:03 I have a hard time on Haskell Strictness 11:21:42 schmir [~schmir@mail.brainbot.com] has joined #scheme 11:21:47 rudybot: (define (interval start end) (let ((loop ((lambda (count result) (if (< count end) (reverse result) (loop (+ count 1) (cons count result))))))))) 11:21:48 minsa: error: eval:1:29: let: bad syntax in: (let ((loop ((lambda (count result) (if (< count end) (reverse result) (loop (+ count 1) (cons count result)))))))) 11:22:26 rudybot: (define (interval start end) (let ((loop (lambda (count result) (if (< count end) (reverse result) (loop (+ count 1) (cons count result)))))))) 11:22:27 minsa: error: eval:1:29: let: bad syntax in: (let ((loop (lambda (count result) (if (< count end) (reverse result) (loop (+ count 1) (cons count result))))))) 11:23:00 Wow, are you sending r*dybot scheme code and it is posting the output? 11:23:09 yes. 11:23:21 wow, that's so cool. 11:23:35 I tried to write your code as a practice but I am missing something. 11:23:48 I'm tempted to send it ((lambda (x) (x x)) (lambda (x) (x x))), but that would be bad. 11:24:19 hmm, let is complaining about bad syntax. 11:25:01 counting parenthesis... 11:25:19 I am using Racket and the paranthesis match up. 11:25:36 rudybot: (define (interval s e) (let LOOPER ((ss s) (c '())) (if (<= ss e) (LOOPER (+ 1 ss) (cons ss c)) c))) 11:25:36 Quadrescence: your sandbox is ready 11:25:37 Quadrescence: Done. 11:25:38 i think its because the lambda is anonymous so cant call itself recursively? 11:25:46 rudybot: (interval 1 10) 11:25:47 Quadrescence: ; Value: (10 9 8 7 6 5 4 3 2 1) 11:25:57 needs some reversin' 11:26:15 rudybot: (define (interval s e) (let LOOPER ((ss s) (c '())) (if (<= ss e) (LOOPER (+ 1 ss) (cons ss c)) (reverse c)))) 11:26:15 Quadrescence: Done. 11:26:17 rudybot: (interval 1 10) 11:26:18 Quadrescence: ; Value: (1 2 3 4 5 6 7 8 9 10) 11:26:22 bonk bonk bonk 11:26:37 Yeah, the ((lambda (x) (x x)) (lambda (x) (x x))) is a strange infinite loop 11:26:53 rudybot: (reverse (list 1 2 3 4)) 11:26:54 minsa: ; Value: (4 3 2 1) 11:26:54 thats what i had originally :) 11:27:09 cool 11:27:32 ((lambda (x) (x x)) (lambda (x) (x x) (x x))) will blow up the stack. 11:27:37 but in the code I pasted, lambda is the value for loop, right ? 11:27:48 yea it is. 11:27:58 minsa: use LETREC 11:28:07 letrec instead of let 11:28:12 ok. 11:28:21 yes, but let isnt bound until after the procedure is created I think 11:28:38 doesnt work either 11:28:51 letrec is the same as let* right? 11:28:54 no 11:29:01 let* is sequential binding 11:29:04 Can I send r*dybot code that'll cause a stack overflow? 11:29:11 astertronisticon: sure 11:29:15 alright 11:29:38 rudybot: ((lambda (x) (x x)) (lambda (x) (x x) (x x))) 11:29:38 astertronisticon: your sandbox is ready 11:29:50 astertronisticon: error: with-limit: out of time 11:29:53 :) 11:29:56 yah 11:30:17 it ran out of time before it ran out of stack 11:30:59 rudybot: (begin (set! with-time 0) ((lambda (x) (x x)) (lambda (x) (x x) (x x)))) 11:31:00 (define (interval start end) (letrec ((loop (lambda (count result) (if (< count end) (reverse result) (loop (+ count 1) (cons count result)))))))) doesnt work either 11:31:00 Quadrescence: error: set!: cannot set undefined variable: with-time 11:31:11 rudybot: (begin (define with-time 0) ((lambda (x) (x x)) (lambda (x) (x x) (x x)))) 11:31:36 noonian: You never call loop 11:31:47 might want to add (loop start end) in there :) 11:31:53 erm 11:32:07 (loop start '()) 11:32:18 rudyb*t is busy... 11:32:19 ah 11:32:24 Quadrescence: error: evaluator: terminated (out-of-memory) 11:32:31 yah! 11:32:32 we have a winnar 11:32:56 <--- elite haxor, obviously 11:32:58 That was a lot of memory, it took like 20 seconds to get to the stack overflow 11:33:09 =)) 11:33:17 and need to change to > 11:33:19 my computer takes 5 seconds 11:33:34 Ok , now I knew why #LIsp peoples said Schemers are "mean" peoples =)) 11:33:35 rudybot: (define (interval start end) (letrec ((loop (lambda (count result) (if (> count end) (reverse result) (loop (+ count 1) (cons count result)))))) (loop start '()))) 11:33:46 noonian: error: with-limit: out of time 11:33:49 rudybot: (interval 17 25) 11:33:51 noonian: your sandbox is ready 11:33:51 noonian: error: reference to undefined identifier: interval 11:33:52 that's because we are always scheming 11:33:59 rudybot: (define (interval start end) (letrec ((loop (lambda (count result) (if (> count end) (reverse result) (loop (+ count 1) (cons count result)))))) (loop start '()))) 11:33:59 noonian: Done. 11:34:01 rudybot: (interval 17 25) 11:34:01 noonian: ; Value: (17 18 19 20 21 22 23 24 25) 11:34:06 :) 11:34:33 oh what happened ? 11:34:45 because of letrec ? 11:34:52 the letrec makes it create the loop variable first and leave it uninitialized 11:35:10 yeah and we were forgetting to call loop after we define it 11:35:20 Oh yeah, I forgot about using letrec 11:36:02 rudybot: (begin (define with-time 0) ((lambda (x) (x x) (x x)) (lambda (x) (x x) (x x)))) 11:36:03 Quadrescence: your sandbox is ready 11:36:15 Quadrescence: error: with-limit: out of time 11:36:32 12 seconds, astertronisticon :) 11:36:41 erm 11:36:43 oh ok then 11:36:49 no, that was a time limit error 11:36:55 oh 11:37:03 rudybot: (begin (define with-limit 0) ((lambda (x) (x x) (x x)) (lambda (x) (x x) (x x)))) 11:37:35 *tumbleweed* 11:37:37 masm [~masm@bl19-153-71.dsl.telepac.pt] has joined #scheme 11:37:42 rudybot: (map (lambda (x) (x x)) (list (lambda (x) (x x)) (lambda (x) (x x)))) 11:37:59 Quadrescence: error: evaluator: terminated (out-of-memory) 11:38:01 astertronisticon: it will only do the first one 11:38:11 astertronisticon: error: with-limit: out of time 11:38:19 yeah, just an infinite loop 11:38:24 no stack blow up there 11:38:37 rudybot: (iota 10) 11:38:38 noonian: error: reference to undefined identifier: iota 11:38:51 rudybot: (import (srfi :1 lists)) 11:38:51 noonian: error: eval:1:0: import: misuse of unit keyword in: (import (srfi :1 lists)) 11:39:09 rudybot: (import srfi-1) 11:39:21 rudybot: (import srfi-1) 11:39:23 cool 11:39:24 Quadrescence: error: with-limit: out of time 11:39:24 noonian: error: eval:1:0: import: misuse of unit keyword in: (import srfi-1) 11:39:39 rudybot: (fold (lambda (x) (x x)) (lambda (x) (x x)) 11:39:40 astertronisticon: error: eval:1:0: read: expected a `)' to close `(' 11:39:44 rudybot: (iota 10) 11:39:44 noonian: error: reference to undefined identifier: iota 11:39:45 rudybot: (fold (lambda (x) (x x)) (lambda (x) (x x))) 11:39:45 astertronisticon: error: reference to undefined identifier: fold 11:39:51 rudybot: (define with-limit 'without-limit) 11:39:54 Quadrescence: your sandbox is ready 11:39:54 Quadrescence: Done. 11:40:01 hmmm, I forgot how to use fold... 11:40:29 rudybot: (if #f #f) 11:40:29 Quadrescence: error: eval:1:0: if: bad syntax (must have an "else" expression) in: (if #f #f) 11:41:13 rudybot: (map list (list 1 2 3 4 5)) 11:41:13 astertronisticon: ; Value: ((1) (2) (3) (4) (5)) 11:41:21 rudybot: (begin (expt 2 10000000) 0) 11:41:22 Quadrescence: ; Value: 0 11:41:48 rudybot: (define (sum-list lis) (fold + 0 lis)) 11:41:48 noonian: Done. 11:42:01 rudybot: (map (lambda (x) (map list x)) (map list (list 1 2 3 4 5))) 11:42:02 astertronisticon: ; Value: (((1)) ((2)) ((3)) ((4)) ((5))) 11:42:04 rudybot: (sum-list '(1 2 3 4 5)) 11:42:05 noonian: error: reference to undefined identifier: fold 11:42:07 yes.... 11:42:11 ack 11:42:24 rudybot: (map list '(1 2 3 4 5) '(a b c d e)) 11:42:25 Quadrescence: ; Value: ((1 a) (2 b) (3 c) (4 d) (5 e)) 11:42:35 no fold? 11:43:31 rudybot: (define FOLD (lambda args ((car args) (FOLD (cdr args))))) 11:43:31 astertronisticon: Done. 11:43:36 did that do it? 11:43:49 no nevermind 11:44:15 rudybot: (map (lambda (k) (cons (number->string (car k)) (symbol->string (cadr k)))) (map list '(1 2 3 4 5) '(a b c d e))) 11:44:15 Quadrescence: ; Value: (("1" . "a") ("2" . "b") ("3" . "c") ("4" . "d") ("5" . "e")) 11:44:27 -!- schmir [~schmir@mail.brainbot.com] has quit [Remote host closed the connection] 11:44:50 rudybot: (apply append (map (lambda (k) (cons (number->string (car k)) (symbol->string (cadr k)))) (map list '(1 2 3 4 5) '(a b c d e)))) 11:44:50 Quadrescence: error: append: expected argument of type ; given ("4" . "d") 11:44:58 im hungry 11:45:16 rudybot: (define (fold combiner null-value lis) (cond ((null? lis) null-value) (else (combiner (car lis) (fold combiner null-value (cdr lis)))))) 11:45:16 noonian: Done. 11:45:25 rudybot: (define (sum-list lis) (fold + 0 lis)) 11:45:26 noonian: Done. 11:45:51 rudybot: (sum-list '(1 2 3 4)) 11:45:51 noonian: ; Value: 10 11:46:01 yah 11:46:14 yay 11:46:35 schmir [~schmir@mail.brainbot.com] has joined #scheme 11:48:15 so... anyone understand r6rs eval? 11:48:26 -!- drdo [~user@2.208.54.77.rev.vodafone.pt] has quit [Remote host closed the connection] 11:48:33 I haven't seen it I don't think. 11:48:37 the environment part 11:48:40 I remember eval from lisp 11:48:45 drdo [~user@2.208.54.77.rev.vodafone.pt] has joined #scheme 11:48:51 Nope don't understand the environment thing 11:48:58 rudybot: (eval '(sum-list (1 2 3 4)) 11:48:58 noonian: error: eval:1:0: read: expected a `)' to close `(' 11:49:04 rudybot: (eval '(sum-list (1 2 3 4))) 11:49:05 noonian: error: procedure application: expected procedure, given: 1; arguments were: 2 3 4 11:49:05 the environment just gives you bindings 11:49:15 defined variables :) 11:49:22 rudybot: (eval '(sum-list (1 2 3 4))) 11:49:23 noonian: error: procedure application: expected procedure, given: 1; arguments were: 2 3 4 11:49:41 thats weird 11:49:50 rudybot: (eval '(sum-list (quote (1 2 3 4)))) 11:49:50 Quadrescence: error: reference to undefined identifier: sum-list 11:49:53 what does the environment look like when you pass it into eval? 11:49:59 rudybot: '(1 2 3 (x 4 5)) 11:49:59 noonian: ; Value: (1 2 3 (x 4 5)) 11:50:10 noonian: do (eval '(sum-list (1 2 3 4))) 11:50:22 rudybot: (eval '(+ 1 2)) 11:50:22 noonian: ; Value: 3 11:50:31 erm 11:50:38 do (eval '(sum-list '(1 2 3 4))) 11:50:56 rudybot: (eval '(sum-list (1 2 3 4))) 11:50:56 noonian: error: procedure application: expected procedure, given: 1; arguments were: 2 3 4 11:50:56 astertronisticon: usually you have an environment type 11:51:02 why doesnt that work? 11:51:03 noonian: with an extra ' 11:51:13 because it's trying to eval (sumlist (1 2 3 4)) 11:51:16 and 1 is not a function 11:51:17 shouldnt the quote take care of everything? 11:51:20 No 11:51:33 oh i see 11:51:50 because it gets "unquoted" when it gets evaled 11:51:58 yea 11:51:58 wow that is complicated 11:52:01 rudybot: (eval '(sum-list '(1 2 3 4))) 11:52:01 noonian: ; Value: 10 11:52:14 eval and quote are inverses :) 11:52:43 rudybot: (eval '(2)) 11:52:43 astertronisticon: error: procedure application: expected procedure, given: 2 (no arguments) 11:52:48 rudybot: (eval '2) 11:52:48 astertronisticon: ; Value: 2 11:52:55 rudybot: '2 11:52:55 astertronisticon: ; Value: 2 11:52:57 rudybot: (eval ''(2)) 11:52:57 Quadrescence: ; Value: (2) 11:53:11 rudybot: (eval '''''''''''''(2) 11:53:11 astertronisticon: error: eval:1:0: read: expected a `)' to close `(' 11:53:15 rudybot: (eval '''''''''''''(2)) 11:53:15 astertronisticon: ; Value: (quote (quote (quote (quote (quote (quote (quote (quote (quote (quote (quote (2)))))))))))) 11:53:50 rudybot: (eval (quote (+ 1 1) )) 11:53:51 Quadrescence: ; Value: 2 11:53:54 rudybot: (eval (eval ''(2))) 11:53:54 astertronisticon: error: procedure application: expected procedure, given: 2 (no arguments) 11:53:54 rudybot: (eval (quote '(+ 1 1) )) 11:53:55 Quadrescence: ; Value: (+ 1 1) 11:53:59 rudybot: (eval (eval '''(2))) 11:53:59 astertronisticon: ; Value: (2) 11:54:10 astertronisticon: see that they're inverses? 11:54:11 :) 11:54:14 "fold" is like reduce ? 11:54:17 minsa: yes 11:54:22 yep 11:54:40 (eval (quote (eval (quote 3)))) 11:54:47 rudybot: (eval (quote (eval (quote 3)))) 11:54:48 astertronisticon: ; Value: 3 11:54:54 rudybot: (eval (quote (eval (quote (3))))) 11:54:54 astertronisticon: error: procedure application: expected procedure, given: 3 (no arguments) 11:54:56 :) 11:54:59 rudybot: (eval (quote (eval (quote '(3))))) 11:54:59 astertronisticon: ; Value: (3) 11:55:32 (eval (reverse '(1 2 +))) 11:55:38 rudybot: (eval (reverse '(1 2 +))) 11:55:39 Quadrescence: ; Value: 3 11:55:40 It would be cool if they gave a nice punctuation symbol for eval like we have for quote 11:56:08 like ! or something 11:56:13 astertronisticon: They kind of do 11:56:20 yeah? 11:56:37 rudybot: `(a b (+ 1 1) c d ,(+ 2 3) e f) 11:56:37 Quadrescence: ; Value: (a b (+ 1 1) c d 5 e f) 11:56:47 look at what was evaluated :) 11:56:48 of yeah, the comma 11:57:07 so in r6rs it went from (eval '(+ 1 2)) to (eval '(+ 1 2) (environment '(rnrs))) 11:57:25 but you can only use the comma if you use the quasi-quote ` instead of ' 11:57:31 well the environment is optional even in r5rs, if I recall correctly 11:57:36 rudybot: (environment '(rnrs)) 11:57:36 astertronisticon: error: reference to undefined identifier: environment 11:57:46 took me so long to figure that out reading a library before i knew about unquote and quasiquote 11:58:01 thats for r6rs 11:58:27 I see 11:58:28 rnrs eval 11:58:38 rudybot: (current-environment) 11:58:39 Quadrescence: error: reference to undefined identifier: current-environment 12:00:29 rudybot: (the-environment) 12:00:29 Quadrescence: error: reference to undefined identifier: the-environment 12:00:39 i think those are implementation defined anyway 12:00:51 MIT Scheme has first-class environment 12:00:52 s 12:01:01 rudybot: (concat '(1 2) '(3 4)) 12:01:02 astertronisticon: error: reference to undefined identifier: concat 12:01:22 rudybot: (cons '(1 2) '(3 4)) 12:01:23 Quadrescence: ; Value: ((1 2) 3 4) 12:01:32 rudybot: '(2) 12:01:37 minsa: your sandbox is ready 12:01:37 minsa: ; Value: (2) 12:01:42 rudybot: (eval '(2)) 12:01:42 minsa: error: procedure application: expected procedure, given: 2 (no arguments) 12:01:52 yeah probably for r5rs, the library exports an environment procedure though to create one 12:01:54 rudybot: (eval ''(2)) 12:01:54 Quadrescence: ; Value: (2) 12:02:07 rudybot: (map cons '(1 2) '(3 4)) 12:02:07 astertronisticon: ; Value: ((1 . 3) (2 . 4)) 12:02:12 so one eval is automatic ? 12:02:43 minsa: yes 12:02:49 nice. 12:02:54 because the arguments to a procedure are evaluated first always since scheme is strict 12:03:26 but not for special forms like and, if, and quote 12:03:47 -!- drdo [~user@2.208.54.77.rev.vodafone.pt] has quit [Remote host closed the connection] 12:04:17 drdo [~user@2.208.54.77.rev.vodafone.pt] has joined #scheme 12:04:24 rudybot: (define big (lambda (X count) (if (< count 0) X (map (lambda (Y) (big Y (- count 1))) X))) 12:04:24 astertronisticon: error: eval:1:0: read: expected a `)' to close `(' 12:05:04 rudybot: (define big (lambda (X count) (if (< count 0) X (map (lambda (Y) (big Y (- count 1))) X)))) 12:05:04 astertronisticon: Done. 12:05:16 rudybot: (big '(1 2) 3) 12:05:16 astertronisticon: error: map: expects type as 2nd argument, given: 1; other arguments were: # 12:05:51 fradgers- [~fradgers-@5e0b815c.bb.sky.com] has joined #scheme 12:07:34 noonian: in special forms what happens ? 12:07:43 rudybot: (define (big X) (map big X)) 12:07:43 astertronisticon: Done. 12:07:52 rudybot: (big '()) 12:07:52 astertronisticon: ; Value: () 12:07:56 rudybot: (big '(2)) 12:07:56 astertronisticon: error: map: expects type as 2nd argument, given: 2; other arguments were: # 12:08:13 depends on the special form, but it is somehow transformed textually like a macro 12:08:24 for instance, quote just doesnt evaluate it and leaves it as it 12:08:27 as is* 12:08:37 and if only evaluates 1 of 2 expressions 12:08:53 rudybot: (big '(() () () () ())) 12:08:53 astertronisticon: ; Value: (() () () () ()) 12:08:58 and (and a b) doesnt evaluate b if a is false 12:09:01 rudybot: (big '(() () () () (() () () ()))) 12:09:01 astertronisticon: ; Value: (() () () () (() () () ())) 12:09:09 rudybot: (big '(() () () () (() () () ())) () () () ()) 12:09:10 astertronisticon: error: eval:1:34: #%app: missing procedure expression; probably originally (), which is an illegal empty application in: (#%app) 12:10:19 noonian: ok. 12:10:36 in a procedure, it doesn't do lazy evaluation ? 12:10:47 rudybot: (define cool '()) 12:10:47 astertronisticon: Done. 12:11:00 rudybot: (define cool (cons #f #f)) 12:11:01 astertronisticon: Done. 12:11:19 rudybot: (set-car! cool cool) 12:11:19 astertronisticon: error: reference to undefined identifier: set-car! 12:11:22 nope, but you can make it do lazy evaluation 12:11:26 rudybot: (set-cdr! cool cool) 12:11:27 astertronisticon: error: reference to undefined identifier: set-cdr! 12:11:38 most languages tend to be strict, haskell is one of the few that is lazy 12:11:55 FORCE, DELAY 12:12:01 rudybot: (define cool (cons cool cool)) 12:12:02 astertronisticon: Done. 12:12:02 minsa: if you need lazy evaluation use force and delay 12:12:07 yea 12:12:09 rudybot: cool 12:12:09 astertronisticon: ; Value: ((#f . #f) #f . #f) 12:12:17 errrrrr 12:12:28 rudybot: (define bool (cons bool bool)) 12:12:29 Quadrescence: error: reference to undefined identifier: bool 12:12:44 rudybot: (define (bool) (cons bool bool)) 12:12:45 Quadrescence: Done. 12:12:51 guess what (bool) will do 12:12:52 (define (force value) (value)) 12:12:53 C-Keen, Quadrescence : you mean lazy evaluation in argument list to the procedure, right ? 12:13:10 minsa: I mean lazy evaluation in general 12:13:15 ok. 12:13:15 hmmm 12:13:17 do it 12:13:21 (define (delay expression) (lambda () expression)) 12:13:30 rudybot: (bool) 12:13:31 Quadrescence: ; Value: (# . #) 12:13:32 minsa: delay will give you a promise for an expression 12:13:34 :) 12:13:47 do (map bool (bool)) 12:13:59 rudybot: (map bool (bool)) 12:14:00 Quadrescence: error: map: expects type as 2nd argument, given: (# . #); other arguments were: # 12:14:05 ;) 12:14:09 cool 12:14:15 rudybot: (define (bool) (cons (bool) (bool))) 12:14:15 Quadrescence: Done. 12:14:16 (map bool '(bool)) 12:14:29 rudybot: (bool) 12:14:39 time out baby 12:14:41 Quadrescence: error: with-limit: out of time 12:14:43 wah my head hurts 12:15:00 minecamph [~user@212.185.106.68] has joined #scheme 12:15:14 implementing lazy lists is pretty fun and makes you think but not hard 12:15:24 lazy lists ? 12:15:30 minsa: aka streams 12:15:38 (define (hurts? x) (equal? x 'astertronisticon)) 12:15:55 that means once an item in the list is not proper, the interpreter bails ? 12:16:10 so whichever elements you are accessing are computed but the rest of the list isnt just knows how to compute it if you ask for it 12:16:12 minsa: no 12:16:35 minsa: that's because map checks for the argument being a proper list 12:16:45 dang. 12:16:50 rudybot: (define (tt) tt) 12:16:50 minsa: I added this the other day: https://bitbucket.org/tarballs_are_good/scheme-random/src/937e71a8ba6f/infinite.scm 12:16:51 astertronisticon: Done. 12:16:51 http://tinyurl.com/2g43ozo 12:17:01 rudybot: (tt) 12:17:02 astertronisticon: ; Value: # 12:17:07 rudybot: tt 12:17:07 astertronisticon: ; Value: # 12:17:19 minsa: that has some more or less standard examples of infinite lists/streams 12:17:29 ok, I will study that. 12:17:45 rudybot: (map (lambda (x) (x)) (list tt tt tt tt)) 12:17:45 astertronisticon: ; Value: (# # # #) 12:18:06 rudybot: (map (lambda (x) (x)) (map (lambda (x) (x)) (list tt tt tt tt))) 12:18:06 astertronisticon: ; Value: (# # # #) 12:18:06 I have gathered a lot of good examples and explanation tonight. 12:18:11 I really thank you all. 12:18:18 yeah it's been fun 12:18:23 I need time to digest. 12:18:29 thanks to you as well 12:18:30 Actually I have a lot of random short examples here: https://bitbucket.org/tarballs_are_good/scheme-random/src 12:18:47 Well... most are short anyway 12:18:58 with the "big assignment" from Quadrescence, I will call it a night. Well, actually 4:18 am. 12:19:12 minsa: 6 19 AM here 12:19:14 but it's so fun. 12:19:20 but you can implement lazy lists with only procedures, general delay i dont think you can 12:19:30 Gmind [~Deulamco@113.190.182.90] has joined #scheme 12:19:46 (btw, I use Chicken Scheme in all my examples) 12:19:49 rudybot: (define (compose f g) (lambda (x) (f (g x)))) 12:19:49 astertronisticon: Done. 12:19:49 ok have a good night minsa, see ya around 12:19:52 (highly recommend Chicken Scheme!) 12:20:14 yeah, see ya minsa 12:20:23 I just installed Chicken and guile on my cygwin. 12:20:23 astertronisticon: https://bitbucket.org/tarballs_are_good/scheme-random/src/71437cdfdf08/pipe.scm 12:20:23 http://tinyurl.com/2culb2d 12:20:39 i use larceny :P 12:21:07 -!- Gmind1 [~Deulamco@113.190.182.90] has quit [Ping timeout: 240 seconds] 12:21:55 cool theme font 12:21:56 rudyboy: (define (mask-iterator f g) (lambda () (f (g)))) 12:22:10 rudyboy? woops 12:22:16 rudybot: (define (mask-iterator f g) (lambda () (f (g)))) 12:22:16 astertronisticon: Done. 12:22:46 this is so good. a totally different world. Like minsa in wonderland .. With that good night and thnx all. 12:23:22 rudybot: (define (make-iterator f start) (lambda () (set! start (f start)) start))) 12:23:22 astertronisticon: error: eval:1:73: read: unexpected `)' 12:23:26 rudybot: (define (make-iterator f start) (lambda () (set! start (f start)) start)) 12:23:26 astertronisticon: Done. 12:24:09 astertronisticon: did you check out that link? 12:24:20 rudybot: (define (make-counter increment start) (make-iterator (lambda (x) (+ x increment)) start)) 12:24:21 astertronisticon: Done. 12:24:27 not yet sorry 12:25:20 wow cool 12:25:45 if anyone wants commit access to that repo, I'd be happy to 12:25:54 I want to collect short snippets of "interesting" things 12:25:59 How do I define an array? 12:26:09 minecamph: vectors 12:27:19 rudybot: (define (make-cool-thingy a start) (make-iterator (lambda (x) (* a x (- 1 x))) start)) 12:27:19 astertronisticon: Done. 12:27:46 rubybot: (define very-cool-thingy (make-cool-thingy 4.0 .2)) 12:28:05 rudybot: (define my-vec (make-vector 10)) 12:28:08 noonian: your sandbox is ready 12:28:08 noonian: Done. 12:28:15 rudybot: my-vec 12:28:16 noonian: ; Value: #(0 0 0 0 0 0 0 0 0 0) 12:28:27 rudybot: (define my-vec (make-vector 10 "initialized")) 12:28:27 noonian: Done. 12:28:30 rudybot: my-vec 12:28:30 noonian: ; Value: #("initialized" "initialized" "initialized" "initialized" "initialized" "initialized" "initialized" "initialized" "initialized" "initialized") 12:28:42 rubybot: (define very-cool-thingy (make-cool-thingy 4.0 .2)) 12:28:45 ) 12:28:46 Thanks. 12:29:08 rubybot: (define very-cool-thingy (make-cool-thingy 4.0 .2)) 12:29:18 hmm, rudybot doesn't wanna do it. 12:29:21 np, more info if you check out vectors in the standards 12:29:55 o well... 12:30:04 hmm, the uninitialized one wont always have 0's either, im suprised rudybot did that actually 12:30:11 rubybot: very-cool-thingy 12:30:15 larceny uses '() 12:30:33 probably implementation dependent 12:30:43 rudybot: 4 12:30:43 astertronisticon: ; Value: 4 12:30:50 rubybot: very-cool-thingy 12:31:00 ventonegro [~alex@200.150.183.81] has joined #scheme 12:31:02 rubybot: very-cool-thing 12:31:22 rubybot: (make-counter 3 4) 12:31:37 rubybot: ((make-counter 3 4)) 12:31:43 rubybot: (((make-counter 3 4))) 12:31:51 hmm, o well 12:32:02 simple for-loop in Scheme https://bitbucket.org/tarballs_are_good/scheme-random/src/71437cdfdf08/forloop.scm 12:32:03 http://tinyurl.com/2ees97h 12:32:17 rudybot: (define fun (make-counter 3 4)) 12:32:17 noonian: error: reference to undefined identifier: make-counter 12:33:41 rudybot: (define (make-map-iterator f start) (lambda () (set! start (f start)) start))) 12:33:41 astertronisticon: error: eval:1:77: read: unexpected `)' 12:33:44 rudybot: (define (make-map-iterator f start) (lambda () (set! start (f start)) start)) 12:33:44 astertronisticon: Done. 12:34:14 rudybot: (define (make-counter start increment) (let ((val start)) (lambda (let ((temp val)) (set! val (+ val increment)) temp)))) 12:34:14 noonian: error: eval:1:58: lambda: bad syntax in: (lambda (let ((temp val)) (set! val (+ val increment)) temp)) 12:34:19 rudybot: (define cool-map (make-map-iterator (lambda (x) (* 4.0 x (- 1 x))) .2)) 12:34:20 astertronisticon: Done. 12:34:35 rudybot: (cool-map) 12:34:35 astertronisticon: ; Value: 0.6400000000000001 12:34:37 rudybot: (cool-map) 12:34:37 astertronisticon: ; Value: 0.9215999999999999 12:34:39 rudybot: (cool-map) 12:34:39 astertronisticon: ; Value: 0.28901376000000045 12:34:41 rudybot: (cool-map) 12:34:41 astertronisticon: ; Value: 0.8219392261226504 12:34:43 rudybot: (cool-map) 12:34:43 astertronisticon: ; Value: 0.585420538734196 12:34:48 yah 12:34:58 It's a chaotic orbit 12:36:24 rudybot: (define (make-counter start increment) (let ((val start)) (lambda () (let ((temp val)) (set! val (+ val increment)) temp)))) 12:36:25 noonian: Done. 12:37:00 rudybot: (define fun (make-counter 0 5)) 12:37:00 noonian: Done. 12:37:11 rudybot: (fun) 12:37:11 noonian: ; Value: 0 12:37:13 rudybot: (fun) 12:37:13 noonian: ; Value: 5 12:37:14 rudybot: (fun) 12:37:15 noonian: ; Value: 10 12:37:51 rudybot: (define (make-log count iterator lis) (if (< count 0) lis (make-log (- count 1) iterator (cons (iterator) lis)))) 12:37:51 astertronisticon: Done. 12:38:06 astertronisticon: speaking of chaotic orbits 12:38:07 http://i.imgur.com/GlGYb.png 12:38:12 http://i.imgur.com/Dxqmc.png 12:38:13 rudybot: (make-log 20 cool-map '()) 12:38:14 astertronisticon: ; Value: (0.05374198106289484 0.9863789723397551 0.44164542078755753 0.12638436220748117 0.9673370405265665 0.5903644834454244 0.8200138733533968 0.7121238592465515 0.23172954842479926 0.06174480848049252 0.015682131364248682 0.003936025134924932 0.0009849764623626413 0.00024630478163611714 0.9999384200124961 0.5039236458652606 0.14783655991331973 0.9615634951138035 0.40197384929750063 0.11333924730375745 0.970813326249439) 12:38:14 :) 12:38:20 rudybot: (make-log 20 cool-map '()) 12:38:20 astertronisticon: ; Value: (0.012549522241221646 0.9968527140307222 0.4719496614580242 0.8633353611135227 0.31515909618912996 0.9137755743790558 0.35318002041535335 0.09787440407733101 0.02509853760946656 0.00631450740614895 0.9984188731864623 0.5198816926689969 0.1535471506355435 0.03998563898383115 0.9899016128306195 0.44975463412069594 0.8708926279529239 0.3203424284596693 0.912206735613433 0.6481496408927195 0.20341512213732119) 12:38:25 yah 12:38:37 I like number crunching 12:39:27 pretty 12:40:22 rudybot: (make-log 200 cool-map '()) 12:40:22 astertronisticon: ; Value: (0.5359158276490233 0.8406186182341537 0.30038701083982144 0.08178564432812133 0.02088248944755769 0.005248165604097454 0.9986862326142317 0.4818770353848475 0.8599037943031278 0.31285286156551023 0.9144716933743756 0.6462261148236049 0.7973944708532739 0.7250586196675913 0.2378257352768923 0.06348703778607338 0.9838679991004589 0.5635059070078153 0.8303384979805505 0.29405006553809643 0.9201041342518256 0.64132928 12:40:33 awww 12:40:42 astertronisticon: I reckon you shouldn't do too much rudybot in here 12:40:53 We've kind of abused it a bit :S 12:40:56 yeah, I should give it a rest 12:41:43 astertronisticon: just use /msg rudybot 'hello 12:42:03 aww cool 12:42:26 pdelgallego [~pdelgalle@42.Red-217-125-2.staticIP.rima-tde.net] has joined #scheme 12:43:48 Sorry for polluting this channel with all of my code and output 12:44:25 its not too bad because this channel is pretty dead most of the time haha 12:44:40 that's cool 12:45:59 one more thing... 12:47:21 rudybot: (define (tupple-iterator mapping value-list) (lambda () (map mapping value-list) value-list)) 12:47:21 astertronisticon: Done. 12:48:20 rudybot: (define cool-counter (tupple-iterator (lambda (x) (+ 1 x)) '(1 2 3 4 5 6 7 8))) 12:48:20 astertronisticon: Done. 12:48:30 rudybot: (cool-counter) 12:48:30 astertronisticon: ; Value: (1 2 3 4 5 6 7 8) 12:48:32 rudybot: (cool-counter) 12:48:32 astertronisticon: ; Value: (1 2 3 4 5 6 7 8) 12:48:41 woops 12:49:10 rudybot: (define (tupple-iterator mapping value-list) (lambda () (set! value-list (map mapping value-list)) value-list)) 12:49:11 astertronisticon: Done. 12:49:16 rudybot: (define cool-counter (tupple-iterator (lambda (x) (+ 1 x)) '(1 2 3 4 5 6 7 8))) 12:49:16 astertronisticon: Done. 12:49:19 rudybot: (cool-counter) 12:49:20 astertronisticon: ; Value: (2 3 4 5 6 7 8 9) 12:49:21 rudybot: (cool-counter) 12:49:21 astertronisticon: ; Value: (3 4 5 6 7 8 9 10) 12:49:24 yah 12:50:32 alright, I think I'll sleep now. 12:50:36 Thanks everyone! 12:50:52 night, i think ill hit the hay as weel 12:50:58 well* 12:51:12 cool, good night, happy scheming 12:51:18 among other things 12:51:42 you too, good night everyone 12:51:48 -!- noonian [~noonian@c-98-232-230-23.hsd1.or.comcast.net] has quit [Quit: Leaving] 12:52:01 -!- astertronisticon [~astertron@ip70-181-196-121.sd.sd.cox.net] has left #scheme 12:55:14 jao [~user@74.Red-80-24-4.staticIP.rima-tde.net] has joined #scheme 12:55:14 -!- jao [~user@74.Red-80-24-4.staticIP.rima-tde.net] has quit [Changing host] 12:55:14 jao [~user@pdpc/supporter/professional/jao] has joined #scheme 13:06:55 vu3rdd [~vu3rdd@122.166.150.104] has joined #scheme 13:09:19 -!- jao [~user@pdpc/supporter/professional/jao] has quit [Ping timeout: 260 seconds] 13:18:37 Gmind1 [~Deulamco@113.190.182.90] has joined #scheme 13:21:31 -!- Gmind [~Deulamco@113.190.182.90] has quit [Ping timeout: 240 seconds] 13:23:56 And some people still complain that scheme won't go away... http://www.nongnu.org/gm2/ 13:33:38 tupi [~david@139.82.89.24] has joined #scheme 13:41:05 -!- Riastradh [debian-tor@fsf/member/riastradh] has quit [Ping timeout: 245 seconds] 13:45:27 homie` [~user@xdsl-78-35-163-158.netcologne.de] has joined #scheme 13:45:27 wbooze` [~user@xdsl-78-35-163-158.netcologne.de] has joined #scheme 13:47:07 -!- homie [~user@xdsl-78-35-158-4.netcologne.de] has quit [Ping timeout: 240 seconds] 13:47:49 -!- wbooze [~user@xdsl-78-35-158-4.netcologne.de] has quit [Ping timeout: 260 seconds] 13:48:49 -!- schmir [~schmir@mail.brainbot.com] has quit [Remote host closed the connection] 13:49:20 jao [~user@74.Red-80-24-4.staticIP.rima-tde.net] has joined #scheme 13:49:20 -!- jao [~user@74.Red-80-24-4.staticIP.rima-tde.net] has quit [Changing host] 13:49:20 jao [~user@pdpc/supporter/professional/jao] has joined #scheme 13:50:45 schmir [~schmir@mail.brainbot.com] has joined #scheme 14:02:51 Riastradh [debian-tor@fsf/member/riastradh] has joined #scheme 14:13:21 -!- drdo [~user@2.208.54.77.rev.vodafone.pt] has quit [Remote host closed the connection] 14:13:29 Why does (char? #\ß) produce an error? 14:13:40 drdo [~user@2.208.54.77.rev.vodafone.pt] has joined #scheme 14:19:34 Gmind [~Deulamco@113.190.182.90] has joined #scheme 14:22:25 -!- Gmind1 [~Deulamco@113.190.182.90] has quit [Ping timeout: 250 seconds] 14:22:45 -!- dfkjjkfd [~paulh@145.120.22.20] has quit [Quit: Lost terminal] 14:35:34 -!- leppie [~lolcow@196-215-20-67.dynamic.isadsl.co.za] has quit [Read error: Connection reset by peer] 14:40:14 nice nick. 14:45:00 -!- wbooze` [~user@xdsl-78-35-163-158.netcologne.de] has quit [Quit: ERC Version 5.3 (IRC client for Emacs)] 14:45:06 -!- homie` [~user@xdsl-78-35-163-158.netcologne.de] has quit [Quit: ERC Version 5.3 (IRC client for Emacs)] 14:45:09 langmartin [~user@exeuntcha2.tva.gov] has joined #scheme 14:47:10 -!- drdo [~user@2.208.54.77.rev.vodafone.pt] has quit [Remote host closed the connection] 14:47:25 drdo [~user@2.208.54.77.rev.vodafone.pt] has joined #scheme 14:50:20 wbooze [~user@xdsl-78-35-163-158.netcologne.de] has joined #scheme 14:51:09 pavelludiq [57f63ac1@gateway/web/freenode/ip.87.246.58.193] has joined #scheme 14:54:39 bitweiler [~bitweiler@adsl-99-40-236-82.dsl.stl2mo.sbcglobal.net] has joined #scheme 14:55:53 leppie [~lolcow@196-215-20-67.dynamic.isadsl.co.za] has joined #scheme 14:56:33 homie [~user@xdsl-78-35-163-158.netcologne.de] has joined #scheme 14:56:36 hey besides gmane are their any other decent nntp's around? 14:57:19 mmc [~michal@cs27120227.pp.htv.fi] has joined #scheme 15:04:51 Kerrick [~Kerrick@kerrick.student.iastate.edu] has joined #scheme 15:05:13 When did gmane become decent? 15:08:02 -!- minsa [~minsa@c-24-5-121-157.hsd1.ca.comcast.net] has quit [Ping timeout: 240 seconds] 15:12:59 femtoo [~femto@95-89-196-233-dynip.superkabel.de] has joined #scheme 15:13:25 -!- leppie [~lolcow@196-215-20-67.dynamic.isadsl.co.za] has quit [] 15:17:53 leppie [~lolcow@196-215-20-67.dynamic.isadsl.co.za] has joined #scheme 15:19:01 Gmind1 [~Deulamco@113.190.182.90] has joined #scheme 15:20:35 "Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to build bigger and better idiots. So far, the universe is winning." 15:20:35 - Rick Cook 15:22:35 -!- Gmind [~Deulamco@113.190.182.90] has quit [Ping timeout: 276 seconds] 15:30:39 To iterate is human, to recurse divine. 15:30:39 :D 15:32:41 -!- copumpkin [~pumpkin@unaffiliated/pumpkingod] has quit [Quit: Computer has gone to sleep.] 15:35:18 Caleb--: But only true tail recursion... 15:38:07 -!- minecamph [~user@212.185.106.68] has quit [Remote host closed the connection] 15:43:49 =.=! 15:43:56 Oh...mah god 15:47:00 j6dyck [~jeff@129-97-233-213.uwaterloo.ca] has joined #scheme 15:51:45 bweaver [~user@host-68-169-175-225.WISOLT2.epbfi.com] has joined #scheme 15:55:50 gravicappa [~gravicapp@ppp85-141-164-11.pppoe.mtu-net.ru] has joined #scheme 15:57:24 copumpkin [~pumpkin@17.101.89.201] has joined #scheme 15:57:24 -!- copumpkin [~pumpkin@17.101.89.201] has quit [Changing host] 15:57:24 copumpkin [~pumpkin@unaffiliated/pumpkingod] has joined #scheme 15:59:26 stis [~stis@1-1-1-39a.veo.vs.bostream.se] has joined #scheme 16:02:29 -!- githogori [~githogori@adsl-66-123-22-146.dsl.snfc21.pacbell.net] has quit [Ping timeout: 264 seconds] 16:03:49 Rearden [~John@209-217-211-155.northland.net] has joined #scheme 16:07:52 minecamph: I never used gmane so I don't know 16:10:58 -!- drdo [~user@2.208.54.77.rev.vodafone.pt] has quit [Remote host closed the connection] 16:11:15 drdo [~user@2.208.54.77.rev.vodafone.pt] has joined #scheme 16:18:50 Gmind [~Deulamco@113.190.182.90] has joined #scheme 16:20:15 -!- bitweiler [~bitweiler@adsl-99-40-236-82.dsl.stl2mo.sbcglobal.net] has quit [Remote host closed the connection] 16:21:16 -!- copumpkin [~pumpkin@unaffiliated/pumpkingod] has quit [Ping timeout: 265 seconds] 16:21:20 -!- Gmind1 [~Deulamco@113.190.182.90] has quit [Ping timeout: 260 seconds] 16:22:43 copumpkin [~pumpkin@17.101.89.201] has joined #scheme 16:22:43 -!- copumpkin [~pumpkin@17.101.89.201] has quit [Changing host] 16:22:43 copumpkin [~pumpkin@unaffiliated/pumpkingod] has joined #scheme 16:24:27 Riastradh, the reason for the existence of both `put-datum' and `write' in R6RS is given here: http://www.r6rs.org/final/html/r6rs-rationale/r6rs-rationale-Z-H-22.html#node_sec_20.8 16:24:27 http://tinyurl.com/2dwja96 16:25:49 -!- clklein [~clklein@spaghetti.cs.northwestern.edu] has left #scheme 16:29:29 -!- martinhex [~mjc@93-97-29-243.zone5.bethere.co.uk] has quit [Ping timeout: 265 seconds] 16:33:32 -!- Dawgmatix [~dman@123.201.201.243] has quit [Quit: Ex-Chat] 16:34:45 -!- j6dyck [~jeff@129-97-233-213.uwaterloo.ca] has quit [Remote host closed the connection] 16:55:07 -!- mmc [~michal@cs27120227.pp.htv.fi] has quit [Ping timeout: 240 seconds] 16:55:40 -!- Riastradh [debian-tor@fsf/member/riastradh] has quit [Ping timeout: 245 seconds] 16:57:07 kenjin [~kenjin@211.177.89.126] has joined #scheme 16:57:33 -!- kenjin is now known as Guest76042 17:00:33 -!- femtoo [~femto@95-89-196-233-dynip.superkabel.de] has quit [Read error: Connection reset by peer] 17:01:50 -!- langmartin [~user@exeuntcha2.tva.gov] has quit [Remote host closed the connection] 17:04:35 mmc [~michal@cs27120227.pp.htv.fi] has joined #scheme 17:09:17 -!- MichaelRaskin [~MichaelRa@195.178.216.22] has quit [Ping timeout: 272 seconds] 17:09:40 -!- alaricsp [~alaric@relief.warhead.org.uk] has quit [Ping timeout: 255 seconds] 17:14:40 kilimanjaro [~kilimanja@unaffiliated/kilimanjaro] has joined #scheme 17:19:17 Gmind1 [~Deulamco@113.190.182.90] has joined #scheme 17:20:10 -!- hkBst [~quassel@gentoo/developer/hkbst] has quit [Remote host closed the connection] 17:21:07 -!- Gmind [~Deulamco@113.190.182.90] has quit [Ping timeout: 240 seconds] 17:22:54 kniu [~kniu@pool-71-106-0-142.lsanca.dsl-w.verizon.net] has joined #scheme 17:28:00 -!- schmir [~schmir@mail.brainbot.com] has quit [Remote host closed the connection] 17:36:19 -!- jao [~user@pdpc/supporter/professional/jao] has quit [Ping timeout: 240 seconds] 17:40:10 jonrafkind [~jon@crystalis.cs.utah.edu] has joined #scheme 17:40:43 -!- pdelgallego [~pdelgalle@42.Red-217-125-2.staticIP.rima-tde.net] has quit [Ping timeout: 240 seconds] 17:47:55 -!- kilimanjaro [~kilimanja@unaffiliated/kilimanjaro] has quit [Ping timeout: 255 seconds] 17:57:18 -!- vu3rdd [~vu3rdd@122.166.150.104] has quit [Remote host closed the connection] 17:58:40 femtoo [~femto@95-89-196-233-dynip.superkabel.de] has joined #scheme 18:03:21 Riastradh [debian-tor@fsf/member/riastradh] has joined #scheme 18:07:31 -!- drdo [~user@2.208.54.77.rev.vodafone.pt] has quit [Ping timeout: 240 seconds] 18:12:49 minsa [~minsa@c-24-5-121-157.hsd1.ca.comcast.net] has joined #scheme 18:14:40 pumpkin [~pumpkin@17.101.89.201] has joined #scheme 18:14:40 -!- pumpkin [~pumpkin@17.101.89.201] has quit [Changing host] 18:14:40 pumpkin [~pumpkin@unaffiliated/pumpkingod] has joined #scheme 18:14:51 -!- copumpkin [~pumpkin@unaffiliated/pumpkingod] has quit [Ping timeout: 265 seconds] 18:17:52 -!- Caleb-- [~caleb@bzq-109-67-48-163.red.bezeqint.net] has quit [] 18:19:23 -!- Guest76042 [~kenjin@211.177.89.126] has quit [Remote host closed the connection] 18:19:38 Gmind [~Deulamco@113.190.182.90] has joined #scheme 18:21:21 -!- pumpkin [~pumpkin@unaffiliated/pumpkingod] has quit [Ping timeout: 240 seconds] 18:22:03 copumpkin [~pumpkin@17.101.89.201] has joined #scheme 18:22:03 -!- copumpkin [~pumpkin@17.101.89.201] has quit [Changing host] 18:22:03 copumpkin [~pumpkin@unaffiliated/pumpkingod] has joined #scheme 18:22:49 -!- Gmind1 [~Deulamco@113.190.182.90] has quit [Ping timeout: 276 seconds] 18:28:14 pumpkin [~pumpkin@17.101.89.201] has joined #scheme 18:28:14 -!- pumpkin [~pumpkin@17.101.89.201] has quit [Changing host] 18:28:14 pumpkin [~pumpkin@unaffiliated/pumpkingod] has joined #scheme 18:30:00 Gmind1 [~Welcome@113.190.182.90] has joined #scheme 18:31:16 -!- copumpkin [~pumpkin@unaffiliated/pumpkingod] has quit [Ping timeout: 276 seconds] 18:37:07 -!- Gmind1 [~Welcome@113.190.182.90] has quit [Ping timeout: 240 seconds] 18:40:05 jao [~user@245.Red-81-39-209.dynamicIP.rima-tde.net] has joined #scheme 18:40:05 -!- jao [~user@245.Red-81-39-209.dynamicIP.rima-tde.net] has quit [Changing host] 18:40:05 jao [~user@pdpc/supporter/professional/jao] has joined #scheme 18:57:16 chupish [182e1748@gateway/web/freenode/ip.24.46.23.72] has joined #scheme 19:08:21 adu [~ajr@64.134.240.174] has joined #scheme 19:14:52 martinhex [~mjc@93-97-29-243.zone5.bethere.co.uk] has joined #scheme 19:18:48 -!- tupi [~david@139.82.89.24] has quit [Quit: Leaving] 19:19:54 -!- Kerrick [~Kerrick@kerrick.student.iastate.edu] has quit [Read error: Operation timed out] 19:19:54 Gmind1 [~Deulamco@113.190.182.90] has joined #scheme 19:21:48 -!- nilg [~user@77.70.2.229] has quit [Read error: Connection reset by peer] 19:22:03 -!- Gmind [~Deulamco@113.190.182.90] has quit [Ping timeout: 265 seconds] 19:27:05 MichaelRaskin [~MichaelRa@195.91.224.225] has joined #scheme 19:30:13 -!- femtoo [~femto@95-89-196-233-dynip.superkabel.de] has quit [Read error: Connection reset by peer] 19:34:07 -!- chupish [182e1748@gateway/web/freenode/ip.24.46.23.72] has quit [] 19:35:12 githogori [~githogori@142.sub-75-210-199.myvzw.com] has joined #scheme 19:35:55 -!- gravicappa [~gravicapp@ppp85-141-164-11.pppoe.mtu-net.ru] has quit [Ping timeout: 240 seconds] 19:41:51 Belaf [~campedel@194.209.131.192] has joined #scheme 19:41:56 -!- Belaf [~campedel@194.209.131.192] has left #scheme 19:46:08 Kerrick [~Kerrick@kerrick.student.iastate.edu] has joined #scheme 19:47:44 gravicappa [~gravicapp@ppp85-141-164-93.pppoe.mtu-net.ru] has joined #scheme 19:53:12 -!- ventonegro [~alex@200.150.183.81] has quit [Quit: ventonegro] 19:55:06 hey man 19:55:28 I suddenly think about local variable and global variable in Scheme ? 19:55:50 can someone show me a clear example of this 19:56:27 (or (again) all variables in Scheme are global and mutable (without in a nested define )) 19:57:45 local/global implies only two levels of scope, there are infinite levels of scope in scheme 19:58:11 but there is usually a top-most scope, which I guess you can call 'global' 19:59:45 like (define a 100) ? 20:00:12 if you are outside any functions then most likely you are at the top-most scope 20:00:21 so yea (define a 100) will be a "global" varaible 20:00:34 (define (x) (define a 100) 2) ;; now a is not global, its only defined in `x' 20:00:47 yep that's what I'm asking.... so mostly in "nested" define, there will always be local ? 20:01:06 yea 20:01:08 yep 20:03:00 in fact that allows you to do things like implement let in terms of lambda, make "objects" by closing methods inside a lambda and dispatching to them based on an argument, etc. 20:03:44 so what's "let" used for ? (since we have define ? ) 20:03:46 =)) 20:03:55 for letting stuff in a specific scope 20:04:12 you can fake it up with (begin (define ...) ...) 20:05:50 it declares variables inside a scope, eg. (define (foo) (let ((a 0) (b 1) (c 2)) some more code here) 20:06:27 er i forgot a ) , we need paredit in irc :) 20:06:53 copumpkin [~pumpkin@17.101.89.201] has joined #scheme 20:06:53 -!- copumpkin [~pumpkin@17.101.89.201] has quit [Changing host] 20:06:53 copumpkin [~pumpkin@unaffiliated/pumpkingod] has joined #scheme 20:07:08 -!- minsa [~minsa@c-24-5-121-157.hsd1.ca.comcast.net] has quit [Ping timeout: 260 seconds] 20:07:28 minsa [~minsa@c-24-5-121-157.hsd1.ca.comcast.net] has joined #scheme 20:07:37 alaricsp [~alaric@relief.warhead.org.uk] has joined #scheme 20:07:46 it's ok if the code is short 20:07:47 :) 20:07:55 thanks guys 20:08:30 n9mtb: use erc + paredit-mode! 20:08:42 I'm just reading "Land of Lisp" to understand more about what made me feel a bit ambitious in Scheme, perhaps ,must learn both 20:08:53 -!- pumpkin [~pumpkin@unaffiliated/pumpkingod] has quit [Ping timeout: 260 seconds] 20:09:21 (really like the style book like "Land of Lisp" , hope Scheme got some alike) 20:09:48 *foof* despairs at the stupidity of people discussing time on the scheme-reports list 20:10:08 So I've heard, haven't picked it up myself yet. Should still help with scheme, at least in the sense of teaching you how to think about programming in a lispish way. 20:11:12 mostly book like HTPD, or SCIP are teaching along with math 20:11:28 :P I feel a bit lack of playfulness 20:12:08 Computer science is just a badly named field of mathematics. ;-) 20:12:22 I must ask about examples all time at here to understand more 20:13:20 if any book you can suggest , please tell me :P . I don't mind search for example codes and new books 20:13:24 Have you tried "the little schemer"? Not sure it counts as playful, but it's definitely a different style from the typical serious CS text 20:14:13 n9mtb: I ordered my book few days ago, but seem to be a long time till it get to me :P 20:14:23 It's a series of questions that build upon one another, and answers in scheme 20:14:36 is it available online ? 20:14:59 Not legally, no, i don't think there is even a kindle/nook version that I know of 20:19:46 Gmind [~Deulamco@113.190.182.90] has joined #scheme 20:19:49 :) 20:22:44 -!- Gmind1 [~Deulamco@113.190.182.90] has quit [Ping timeout: 260 seconds] 20:25:44 what the shift - bit function in Scheme ? 20:26:56 arithmetic-shift 20:27:27 (arithmetic-shift x y) shift x by y bits 20:28:25 =.=! woow... now I knew what "ash" stand for.. 20:28:38 thanks 20:29:08 ash? where is that? 20:29:51 -!- pothos [~pothos@111-240-205-247.dynamic.hinet.net] has quit [Read error: Connection reset by peer] 20:29:53 jonrafkind: from L*sp 20:30:21 that is pathetic 20:31:00 alaricsp_ [~alaric@relief.warhead.org.uk] has joined #scheme 20:31:59 pothos [~pothos@111-240-210-81.dynamic.hinet.net] has joined #scheme 20:32:36 -!- alaricsp [~alaric@relief.warhead.org.uk] has quit [Ping timeout: 265 seconds] 20:32:51 -!- alaricsp_ is now known as alaricsp 20:35:47 -!- ASau [~user@95-26-92-70.broadband.corbina.ru] has quit [Remote host closed the connection] 20:36:07 ASau [~user@95-26-92-70.broadband.corbina.ru] has joined #scheme 20:41:09 -!- githogori [~githogori@142.sub-75-210-199.myvzw.com] has quit [Ping timeout: 250 seconds] 20:50:56 evhan [~evhan@76-250-39-229.lightspeed.mdsnwi.sbcglobal.net] has joined #scheme 20:53:41 -!- gravicappa [~gravicapp@ppp85-141-164-93.pppoe.mtu-net.ru] has quit [Ping timeout: 240 seconds] 21:04:29 nilg [~user@77.70.2.229] has joined #scheme 21:05:08 gravicappa [~gravicapp@ppp85-140-65-1.pppoe.mtu-net.ru] has joined #scheme 21:05:37 -!- nilg [~user@77.70.2.229] has quit [Read error: Connection reset by peer] 21:07:47 -!- adu [~ajr@64.134.240.174] has quit [Quit: adu] 21:10:36 -!- Rearden [~John@209-217-211-155.northland.net] has quit [Quit: Leaving] 21:20:12 Gmind1 [~Deulamco@113.190.182.90] has joined #scheme 21:21:21 -!- Gmind [~Deulamco@113.190.182.90] has quit [Ping timeout: 272 seconds] 21:21:26 kephas [~pierre@AStrasbourg-551-1-79-19.w81-51.abo.wanadoo.fr] has joined #scheme 21:21:40 -!- nowhereman [~pierre@AStrasbourg-551-1-57-59.w83-194.abo.wanadoo.fr] has quit [Ping timeout: 255 seconds] 21:33:24 capitalism [~g@207-180-177-44.c3-0.bkl-ubr1.sbo-bkl.ma.cable.rcn.com] has joined #scheme 21:39:59 -!- Adamant [~Adamant@unaffiliated/adamant] has quit [Quit: Adamant] 21:44:09 -!- Gmind1 [~Deulamco@113.190.182.90] has quit [Read error: Connection reset by peer] 21:49:49 bgs100 [~ian@h139.16.131.174.dynamic.ip.windstream.net] has joined #scheme 21:49:49 -!- bgs100 [~ian@h139.16.131.174.dynamic.ip.windstream.net] has quit [Changing host] 21:49:49 bgs100 [~ian@unaffiliated/bgs100] has joined #scheme 21:50:09 Adamant [~Adamant@unaffiliated/adamant] has joined #scheme 21:51:49 drdo [~user@2.208.54.77.rev.vodafone.pt] has joined #scheme 21:58:37 foof, what epoch did you intend to use for CURRENT-TAI-SECONDS? 22:03:35 Riastradh: I don't particularly care, I was more concerned about the Emperor being buck-naked. 22:04:37 (I named my proposal SECONDS-SINCE-UTC-EPOCH, after considering SECONDS-SINCE-19700101T000000Z or SECONDS-SINCE-1970-01-01T00:00:00Z, to avoid this confusion.) 22:04:56 (Excuse me: SECONDS-SINCE-19720101T000000Z or SECONDS-SINCE-1972-01-01T00:00:00Z.) 22:05:38 -!- mathk [~mathk@dispo-82-250-11-79.adsl.proxad.net] has quit [Quit: ..zzZzzZ] 22:05:47 If you can provide a good argument either way I'll consider it. 22:07:23 OK. Argument: The name CURRENT-TAI-SECONDS doesn't make it clear what the value represents. The name SECONDS-SINCE-UTC-EPOCH does. I don't care much about the choice of epoch, but 1972-01-01T00:00:00Z is an obvious choice, being the start of modern UTC, and any earlier date doesn't have a well-defined name in UTC. 22:07:35 -!- minsa [~minsa@c-24-5-121-157.hsd1.ca.comcast.net] has quit [Ping timeout: 255 seconds] 22:08:17 Choosing something other than the Unix epoch (i.e., giving seconds since 1972-01-01T00:00:00Z plus 63072000) will help to avoid confusing it with POSIX time. 22:09:22 -!- mmc [~michal@cs27120227.pp.htv.fi] has quit [Remote host closed the connection] 22:09:23 My only concern was that using the term "Unix" can be confused with POSIX time, whereas TAI makes it very clear we are not subtracting leap seconds. 22:09:43 Unix? 22:10:19 Sorry, UTC. 22:10:25 Hmm. 22:10:37 Have you just demonstrated empirically that using the term `UTC' leads to misreading it as `Unix'? 22:10:50 perhaps 22:11:19 Though you were also just discussing the choice of the Unix epoch. 22:11:44 mmc [~michal@cs27120227.pp.htv.fi] has joined #scheme 22:12:43 -!- mmc [~michal@cs27120227.pp.htv.fi] has quit [Remote host closed the connection] 22:13:27 The TAI epoch would work too, which was on 1958-01-01 at 00:00:00 in TAI. Another possibility would be the modern TAI epoch, which was when gravitational correction was applied, on 1977-01-01 at 00:00:32.184 in TAI. But a fractional epoch is a little weird. 22:14:18 mmc [~michal@cs27120227.pp.htv.fi] has joined #scheme 22:15:34 -!- mmc [~michal@cs27120227.pp.htv.fi] has quit [Remote host closed the connection] 22:15:52 (By `fractional epoch', I mean an epoch whose representation in TAI or UTC has a non-integral number of seconds.) 22:16:45 dfkjjkfd [~paulh@145.120.22.22] has joined #scheme 22:18:22 mmc [~michal@cs27120227.pp.htv.fi] has joined #scheme 22:18:32 schmir [~schmir@p54A90B0D.dip0.t-ipconnect.de] has joined #scheme 22:18:45 Oops, excuse me. The TAI clock read 1977-01-01, 00:00:00; other clocks to which it is related read ...:32.184. So we could use 1977-01-01 at 00:00:00 in TAI. 22:19:46 (Other clocks including non-rotating, solar-system-centred time (barycentric coordinate time), non-rotating earth-centred time (geocentric coordinate time), and rotating earth-centred time (terrestrial time).) 22:20:04 Caleb-- [~caleb@bzq-79-179-11-252.red.bezeqint.net] has joined #scheme 22:22:30 -!- mmc [~michal@cs27120227.pp.htv.fi] has quit [Ping timeout: 240 seconds] 22:22:35 -!- stis [~stis@1-1-1-39a.veo.vs.bostream.se] has quit [Remote host closed the connection] 22:24:41 -!- gravicappa [~gravicapp@ppp85-140-65-1.pppoe.mtu-net.ru] has quit [Ping timeout: 264 seconds] 22:25:18 -!- fradgers- [~fradgers-@5e0b815c.bb.sky.com] has left #scheme 22:26:37 -!- capitalism [~g@207-180-177-44.c3-0.bkl-ubr1.sbo-bkl.ma.cable.rcn.com] has quit [Quit: Leaving.] 22:29:02 davazp [~user@3.Red-83-46-6.dynamicIP.rima-tde.net] has joined #scheme 22:31:06 -!- aisa [~aisa@173-10-243-253-Albuquerque.hfc.comcastbusiness.net] has quit [Quit: aisa] 22:32:20 mmc [~michal@cs27120227.pp.htv.fi] has joined #scheme 22:36:55 DrDuck [~duck@216.186.151.63] has joined #scheme 22:37:12 -!- DrDuck [~duck@216.186.151.63] has left #scheme 22:51:14 -!- ASau [~user@95-26-92-70.broadband.corbina.ru] has quit [Remote host closed the connection] 22:51:34 ASau [~user@95-26-92-70.broadband.corbina.ru] has joined #scheme 22:51:44 -!- kephas [~pierre@AStrasbourg-551-1-79-19.w81-51.abo.wanadoo.fr] has quit [Ping timeout: 276 seconds] 22:52:01 kephas [~pierre@AStrasbourg-551-1-110-206.w90-13.abo.wanadoo.fr] has joined #scheme 23:00:32 DrDuck [~duck@216.186.151.63] has joined #scheme 23:01:11 Hm, I know this question may be poorly crafted but I think some of you may understand what I'm asking. When trying to solve a problem using scheme, how do you make the distinction between problems which will require a domain specific language and those that won't. 23:01:29 jcowan [~John@cpe-98-14-172-204.nyc.res.rr.com] has joined #scheme 23:02:32 -!- mmc [~michal@cs27120227.pp.htv.fi] has quit [Ping timeout: 240 seconds] 23:02:52 -!- Kerrick [~Kerrick@kerrick.student.iastate.edu] has quit [Ping timeout: 240 seconds] 23:03:05 -!- sloyd_ [sloyd@station457.vo3.net] has quit [Ping timeout: 264 seconds] 23:04:59 mmc [~michal@cs27120227.pp.htv.fi] has joined #scheme 23:07:47 sloyd [sloyd@station457.vo3.net] has joined #scheme 23:10:19 askhader: Well, if your problem domain is lists and the solution can easily be expressed in terms of first and rest and recursion, I guess you won't need to invent another language than scheme. 23:11:14 askhader: but as soon as your application domain is (at least partially) outside of the domain of the lisp objects defined by scheme, you will be better off by defining some level of abstraction. 23:11:37 -!- sloyd [sloyd@station457.vo3.net] has quit [Client Quit] 23:12:31 askhader: in simple cases, data astration and functional abstrations will be enough. But often at least some level of metalinguistic abstraction will soon be useful, in the form of syntactic abstraction (macros). 23:13:15 "With great power comes great responsibility." --Peter Schemer 23:13:17 Fair enough. 23:13:50 id say linguistic abstraction is always useful, but people usually get away with the usual toolbox of functional abstractions because they can't be bothered to make more domain-specific forms 23:13:52 -!- mmc [~michal@cs27120227.pp.htv.fi] has quit [Ping timeout: 240 seconds] 23:14:55 -!- copumpkin [~pumpkin@unaffiliated/pumpkingod] has quit [Quit: Computer has gone to sleep.] 23:15:18 Well my experience thus far has been within the scope of functional abstractions simply because I haven't thought in terms of syntactical abstraction until recently. 23:15:28 And also it took me a while to see the real difference between the two. 23:15:47 mmc [~michal@cs27120227.pp.htv.fi] has joined #scheme 23:16:34 askhader: (define (while* cond-thunk body-thunk) (if (code-thunk) (begin (body-thunk) (while* cond-thunk body-thunk)))) 23:17:14 So that's a functional abstraction, no? 23:17:21 askhader: when you grow tired of writing (while* (lambda () (< a b)) (lambda () (set! a (+ 1 a)))), you will implement the syntactic abstraction allowing you to write (while (< a b) (set! a (+ 1 a))) 23:17:31 Ah yes 23:17:38 askhader: yes, write* is a functional abstraction. 23:17:53 Yeah absolutely, I see that. 23:18:20 The first level of meta-linguistic abstraction is syntactic abstraction, where you hide the fact that you need to pass thunks to a function to use the "while" control structure . 23:18:25 I'd like to use more of that in my code at least to the point where I can `effectively` same time 23:18:40 I see. 23:19:39 askhader: the best way to find out DSLs, is to start from the point of view of the users, and see how they solve their problems in terms of their own jargon, and with their own methods. 23:20:09 Then you implement their "jargon" as a DSL, so they can write directly their solutions in this DSL. 23:20:21 Yeah that seems like the most practical way to go about it. 23:20:21 (or you can more directly translate them yourself). 23:20:25 -!- Caleb-- [~caleb@bzq-79-179-11-252.red.bezeqint.net] has quit [Ping timeout: 272 seconds] 23:25:03 Caleb-- [thedude@109.64.11.148] has joined #scheme 23:25:26 -!- bweaver [~user@host-68-169-175-225.WISOLT2.epbfi.com] has quit [Ping timeout: 255 seconds] 23:25:45 pdelgallego [~pdelgalle@42.Red-217-125-2.staticIP.rima-tde.net] has joined #scheme 23:28:18 sloyd [sloyd@station457.vo3.net] has joined #scheme 23:34:19 -!- sloyd [sloyd@station457.vo3.net] has quit [Ping timeout: 240 seconds] 23:42:35 -!- Caleb-- [thedude@109.64.11.148] has quit [Ping timeout: 272 seconds] 23:46:46 Caleb-- [~caleb@bzq-79-176-18-223.red.bezeqint.net] has joined #scheme 23:49:59 Azuvix [~Azuvix@71-215-25-216.bois.qwest.net] has joined #scheme 23:52:32 -!- mmc [~michal@cs27120227.pp.htv.fi] has quit [Ping timeout: 240 seconds] 23:52:43 -!- schmir [~schmir@p54A90B0D.dip0.t-ipconnect.de] has quit [Ping timeout: 240 seconds] 23:54:34 Kerrick [~Kerrick@kerrick.student.iastate.edu] has joined #scheme 23:54:35 I [~pumpkin@209-6-232-56.c3-0.sbo-ubr1.sbo.ma.cable.rcn.com] has joined #scheme 23:55:02 -!- I is now known as Guest85717 23:56:59 mmc [~michal@cs27120227.pp.htv.fi] has joined #scheme 23:57:21 necroforest [~jarred@pool-108-18-226-169.washdc.fios.verizon.net] has joined #scheme 23:59:28 -!- Guest85717 is now known as copumpkin 23:59:29 -!- copumpkin [~pumpkin@209-6-232-56.c3-0.sbo-ubr1.sbo.ma.cable.rcn.com] has quit [Changing host] 23:59:29 copumpkin [~pumpkin@unaffiliated/pumpkingod] has joined #scheme