00:07:12 -!- Fill [~Fill@unaffiliated/fill] has quit [Ping timeout: 240 seconds] 00:07:39 sedeki [~sedeki@c80-216-168-90.bredband.comhem.se] has joined #scheme 00:09:29 Fill [~Fill@static.195.170.4.46.clients.your-server.de] has joined #scheme 00:12:06 Jafet [~Jafet@unaffiliated/jafet] has joined #scheme 00:13:37 -!- pdelgallego [~pdelgalle@1385159852.dhcp.dbnet.dk] has quit [Ping timeout: 246 seconds] 00:18:05 schmir [~schmir@p54A915D1.dip0.t-ipconnect.de] has joined #scheme 00:22:10 noonian [~noonian@c-98-232-230-23.hsd1.or.comcast.net] has joined #scheme 00:25:50 accel [~accel@unaffiliated/accel] has joined #scheme 00:30:40 -!- sedeki [~sedeki@c80-216-168-90.bredband.comhem.se] has quit [Quit: Lämnar] 00:33:54 -!- kilimanjaro [~kilimanja@unaffiliated/kilimanjaro] has quit [Ping timeout: 250 seconds] 00:37:52 -!- jensn [~ceres@c-83-233-145-103.cust.bredband2.com] has quit [Ping timeout: 240 seconds] 00:38:45 -!- Azuvix [~Azuvix@71-215-25-216.bois.qwest.net] has quit [Quit: Leaving] 00:46:43 unkanon [~unkanon@dyn-160-39-34-114.dyn.columbia.edu] has joined #scheme 00:47:35 -!- masm [~masm@bl16-170-191.dsl.telepac.pt] has quit [Quit: Leaving.] 00:48:17 jensn [~ceres@c-83-233-145-103.cust.bredband2.com] has joined #scheme 00:58:47 -!- jensn [~ceres@c-83-233-145-103.cust.bredband2.com] has quit [Ping timeout: 272 seconds] 00:59:08 daedra [~simon@unaffiliated/daedra] has joined #scheme 00:59:34 is there a nice way of getting the first element from the first sublist, the second from the second, third from the third... etc? 01:00:09 I'm using nested maps to do a cartesian product of two polynomials, to compare equality 01:00:38 and I end up with something like ((#t () ()) (() #t ()) (() () #t)) 01:00:44 I could think of an ugly way using a counter 01:01:01 nested for maps is not bad. 01:01:10 yes so can I :) 01:01:16 (map list-ref list (iota (length list))) 01:03:27 It sounds as though perhaps this subproblem would be better solved at an earlier stage. 01:03:38 look 01:03:45 (map (lambda (t1) 01:03:54 (map (lambda (t2) (t= t1 t2)) p2)) 01:04:09 where p1 is the first polynomial, and p2 the second 01:04:22 t1 is a term from p1, t2 is a term from the second 01:04:58 and t= compares terms for equality (= on coefficients, eq? on variables, = on powers) 01:05:05 qhe [~qhe2@134.134.137.73] has joined #scheme 01:05:33 masm [~masm@bl16-170-191.dsl.telepac.pt] has joined #scheme 01:05:40 this produces a list like ((#t #f #f) (#f #t #f) (#f #f #t)) 01:06:14 in this example p1 and p2 have the same number of terms (3 each) 01:06:56 Are you sure you don't just want (map t= p1 p2), perhaps first checking (= (length p1) (length p2))? 01:07:28 jensn [~ceres@c-83-233-145-103.cust.bredband2.com] has joined #scheme 01:07:37 and how do I do (map t= p1 p2)? 01:07:57 *Riastradh* blinks. 01:08:05 sure I can do length comparison first 01:08:40 I'm completely serious about my question 01:08:47 (map t= p1 p2) doesn't seem possible 01:08:56 Why not? 01:08:56 p1 is a list and p2 is another list 01:09:05 polynomials 01:09:14 doesn't map only take one arg? 01:09:14 Try it. 01:09:16 rudybot: (map string=? '("foo" "bar" "baz") '("foo" "bar" "quux")) 01:09:16 cky: your racket sandbox is ready 01:09:16 cky: ; Value: (#t #t #f) 01:09:25 oh wow 01:09:37 daedra: map takes arbitrary numbers of lists. 01:09:46 daedra: It calls the function with as many arguments as lists. 01:09:54 In this case, it calls it with 2. 01:09:59 Now, that said, you probably actually want to use (every t= p1 p2) in order to ask whether every element of p1 is equal, under t=, to the corresponding element of p2. 01:10:07 my mind broke 01:10:16 I can't believe I didn't know that 01:10:42 the reason I'm doing nested maps though, is because p1 and p2 can be unordered 01:10:44 -!- didi [~user@unaffiliated/didi/x-1022147] has quit [Ping timeout: 250 seconds] 01:10:56 daedra: Okay, so sort them both first, if you can do that. 01:11:04 I can not 01:11:14 polynomials can consist of any symbols 01:11:25 not just a-z 01:11:35 So? 01:11:39 but goose-banana 01:11:45 or &-$ 01:11:52 Yes, but there is a well-defined ordering for them all. 01:11:59 I would need to define it 01:12:01 If using nothing other than code points. 01:12:18 rudybot: (string cky: ; Value: #f 01:12:23 rudybot: (string cky: ; Value: #f 01:12:35 you make an interesting point 01:13:08 and it would reduce the comparison complexity to O(n log n) I think 01:13:34 as opposed to the nested map O(n^2) 01:13:44 Uh huh. 01:14:12 hmm 01:15:45 I will do it your way 01:16:13 but I'm still curious as to how to implement the first element from the first sublist, the second from the second.. 01:16:25 I have an idea 01:25:02 nope 01:27:06 Bwahahahahahaha. 01:27:09 I solved it. 01:28:02 (defun pickit (l subl) (cond ((null l) '()) ((null subl) (pickit (cdr l))) (cons (car subl) (pickit (cdr l) (magic l))))) 01:28:03 rudybot: (diagonal '(1 2 3 4) '(5 6 7 8) '(9 10 11 12) '(13 14 15 16)) 01:28:03 cky: ; Value: (1 6 11 16) 01:28:13 magic does.. magic 01:28:20 apologies for the lisp 01:28:24 daedra: My "diagonal" does "magic" too. :-P 01:28:29 You just have to know how it's defined. :-P 01:28:30 yes I can see that :P 01:28:43 You can even play with it.... 01:28:48 rudybot: give daedra diagonal 01:28:49 daedra: cky has given you a value, say "rudybot: eval (GRAB)" to get it (case sensitive) 01:29:10 oh 01:29:14 but I want to figure it out 01:29:20 it's so tempting :P 01:29:25 Then you should. 01:29:29 What I've given you is a black box. 01:29:38 You just use it to validate correct results. :-P 01:29:45 ok 01:30:13 ooh this is fun and also horrible 01:30:20 Yep. :-P 01:32:45 I've read the little schemer 01:32:54 and I think that should be enough to prepare me for this 01:33:04 :-) 01:33:19 The method I use does not require getting the current index number. 01:33:36 So, if you think you need the index number, prepare to think outside the square. 01:34:15 for my pickit function, I want magic to.. do magic 01:34:39 i.e every subsequent recur does cadr, then caddr.. 01:34:39 Hehehehe. 01:34:51 Riastradh's version of diagonal is much shorter than mine, I must say. 01:34:52 recur on l that is 01:34:56 I admire its brevity. 01:35:14 But, mine does not require counters. (It's still O(n^2); that's unavoidable. But it "feels" cleaner.) 01:35:19 -!- mejja [~user@c-b4b5e555.023-82-73746f38.cust.bredbandsbolaget.se] has quit [Quit: ChatZilla 0.9.86 [Firefox 3.6/20100115144158]] 01:35:38 I don't know what iota and list-ref are made of 01:35:44 and suspect they are large 01:35:46 rudybot: (iota 10) 01:35:46 cky: ; Value: (0 1 2 3 4 5 6 7 8 9) 01:35:53 I'm looking for something relatively self contained 01:36:00 rudybot: (list-ref '(1 2 3 4 5 6 7 8 9 10) 5) 01:36:01 cky: ; Value: 6 01:36:09 ah I see 01:36:10 daedra: Hopefully that gives you some ideas. 01:36:34 Azuvix [~Azuvix@71-215-25-216.bois.qwest.net] has joined #scheme 01:39:39 -!- masm [~masm@bl16-170-191.dsl.telepac.pt] has quit [Quit: Leaving.] 01:40:05 myu2 [~myu2@v077103.dynamic.ppp.asahi-net.or.jp] has joined #scheme 01:45:55 -!- carleastlund [~cce@gotham.ccs.neu.edu] has quit [Quit: carleastlund] 01:48:26 rudybot: (list-ref '(1 2 3 4 5 6 7 8 9) 0) 01:48:26 daedra: your sandbox is ready 01:48:26 daedra: ; Value: 1 01:48:38 rudybot: (list-ref '(1 2 3 4 5 6 7 8 9) 9) 01:48:39 daedra: error: list-ref: index 9 too large for list: (1 2 3 4 5 6 7 8 9) 01:48:48 -!- daedra [~simon@unaffiliated/daedra] has quit [Read error: Connection reset by peer] 01:49:06 O_o 01:49:21 daedra [~simon@unaffiliated/daedra] has joined #scheme 01:49:31 oh great irssi segfaulted :( 01:49:31 What, the Scheme error disconnected you? 01:49:33 Heh. 01:49:43 or that 01:49:48 *daedra* glares at rudybot 01:53:44 Hehehehe. 01:54:08 But yeah. Try a solution without using list-ref (or nth, re the CL solution you saw in #chicken). 01:54:12 You'll have fun with it. 01:55:07 I wasn't in #chicken 01:55:12 I asked in #lisp 01:55:18 daedra: Oops, sorry, yes. 01:55:28 but I'm sure you mean me :) 01:55:33 I have #lisp and #chicken in windows 7 and 8 respectively, so sometimes I hit the wrong key. 01:57:22 I have so many windows open on my irssi...currently: 2=#stackoverflow, 3=#scheme, 4=#kernel-panic, 5=#anagol, 6=, 7=#lisp, 8=#chicken, 9=#guile, 10=#clojure, 11=#lisp-nz, 14=#racket. :-P 01:57:41 -!- schmir [~schmir@p54A915D1.dip0.t-ipconnect.de] has quit [Ping timeout: 264 seconds] 01:58:05 <_danb_> beat you 01:58:12 <_danb_> I'm on 15 channels using erc 01:58:23 _danb_: Hahaha, not surprising...IIRC, elly mentioned having 200+ windows open. 01:58:44 <_danb_> 112 buffers here 01:58:47 <_danb_> and 66 files 01:58:49 Fancy. 01:58:55 <_danb_> and thats just my emacs daemon 01:59:02 Hehehehe. 01:59:05 <_danb_> I'm runnign some standalone emacsen too 01:59:13 What?! What're they for? 01:59:34 <_danb_> oh just if you want to work on a particular project and don't the clutter of 112 other buffers getting in the way 01:59:42 Hehehehehe. 02:00:53 didi [~user@unaffiliated/didi/x-1022147] has joined #scheme 02:01:41 <_danb_> ibuffer and ido can only take you so far 02:01:52 -!- wisey [~Steven@host86-150-108-29.range86-150.btcentralplus.com] has quit [Quit: Leaving] 02:03:06 -!- copumpkin [~pumpkin@unaffiliated/pumpkingod] has quit [Quit: Computer has gone to sleep.] 02:13:49 kanru [~kanru@61-30-10-70.static.tfn.net.tw] has joined #scheme 02:16:13 -!- jlongster [~user@nat/mozilla/x-fxzfunnwohrlevkp] has quit [Ping timeout: 240 seconds] 02:16:32 you know what 02:16:36 -!- acarrico [~acarrico@pppoe-68-142-43-164.gmavt.net] has quit [Ping timeout: 250 seconds] 02:17:07 the "lisp" I'm developing in can't handle something as simple as (defun land (l) (cond ((null l) t) (else (and (car l) (land (cdr l)))))) 02:17:20 `else' is spelt `t' in Emacs Lisp. 02:17:21 (land '(nil nil nil)) gives #t 02:17:33 yes 02:17:45 but this lisp accepts else 02:17:51 Of course you can rewrite (cond (x t) (t y)) more simply as (or x y). 02:17:55 ...uh. 02:18:08 Gee, maybe I should try reading what you actually said. 02:18:14 accel_ [~accel@unaffiliated/accel] has joined #scheme 02:18:18 Somehow, I got it into my head that you had said `I wonder why this doesn't work in elisp'. 02:18:32 (or something to that effect) 02:18:40 -!- accel [~accel@unaffiliated/accel] has quit [Disconnected by services] 02:18:46 -!- accel_ is now known as accel 02:18:48 what I'm getting at, is the lisp I'm using sucks 02:19:00 and doesn't behave how it should 02:19:02 daedra: Why are you not doing this in Scheme, may I ask? ;-) 02:19:17 because it's coursework 02:19:51 *vomits* 02:20:20 I appreciate your sympathy liquids 02:20:29 To rephrase something I said earlier today (about C++ IOStreams), coursework is my ceramic goddess. 02:20:32 -!- accel [~accel@unaffiliated/accel] has quit [Client Quit] 02:21:31 how else might I write this "land" function? 02:21:46 -!- MrFahrenheit [~RageOfTho@users-146-124.vinet.ba] has quit [Ping timeout: 255 seconds] 02:21:49 daedra: What does "land" do? 02:22:00 I just want to and together all the elements of a list 02:22:13 (land '(#t #t #t)) -> #t 02:22:24 (land '(#t #t #f)) -> #f 02:22:40 all elements must be #t to evaluate to true 02:22:52 That's not how Scheme truthiness works. 02:23:01 oh? 02:23:01 Indeed, you simply search for #f and if you don't find it, the result is true. 02:23:10 rudybot: (not #f) 02:23:10 cky: ; Value: #t 02:23:13 rudybot: (not 0) 02:23:14 cky: ; Value: #f 02:23:17 rudybot: (not "") 02:23:17 cky: ; Value: #f 02:23:19 rudybot: (not (void)) 02:23:20 cky: ; Value: #f 02:23:28 I could do that, yes 02:23:28 rudybot: (not '()) 02:23:28 cky: ; Value: #f 02:23:39 of course *rolls eyes* 02:23:43 daedra: Every value other than #f is true. Even (), void, etc. 02:23:44 why didn't I think of that 02:24:12 Now, for your Common Lisp homework, () is actually a false value in CL, IIRC. 02:25:09 You know, though, re your question in #lisp, don't tell people you're doing something "just for fun" when it's for coursework. :-P 02:25:32 Honestly is the best policy, especially when you're asking questions in Stack Overflow. 02:26:05 I will gladly smite liars with my >>10k of rep power. :-P 02:32:34 -!- bgs100 [~ian@unaffiliated/bgs100] has quit [Quit: night.] 02:44:05 Tekk_ [~user@cpe-071-077-209-233.ec.res.rr.com] has joined #scheme 02:44:33 I isntalled s48 from the ubuntu repos and plan on trying prescheme, does anyone know the command for it? 02:45:50 -!- parcs [~patrick@ool-45741d7d.dyn.optonline.net] has quit [Ping timeout: 240 seconds] 02:47:30 parcs [~patrick@ool-45741d7d.dyn.optonline.net] has joined #scheme 02:48:39 Tekk_, you'll need the Scheme48 source too. You can find the Texinfo source to a rough reference manual in . 02:49:09 Riastradh: I was afraid of that, tried compiling s48 but it didnt work 02:49:42 that'd probably be better than this one anyway 02:50:08 copumpkin [~pumpkin@unaffiliated/pumpkingod] has joined #scheme 02:51:03 You can use the Scheme48 you installed from Ubuntu. It's just that what is installed doesn't include the Pre-Scheme compiler, which is distributed with the Scheme48 source. 02:51:17 ah 02:51:37 Riastradh: is there any way to compile prescheme alone? 02:51:42 since compiling didn't work for me 02:52:24 The way it works is that you load the Pre-Scheme compiler into Scheme48, following the direction of the node `Invoking the Pre-Scheme compiler' in the manual I gave you. 02:52:44 ah, so the compiler is a scheme file? 02:53:02 Well, a collection of Scheme files. 02:53:11 alright 02:53:24 Just FYI: using Pre-Scheme is not very convenient. 02:53:37 It has one application, the Scheme48 virtual machine, and wasn't built to have a nice user interface. 02:54:12 ah, I was under the impression that pre-scheme was an actual compiler 02:54:24 like, to machine code, or at least assembly 02:54:35 The Pre-Scheme compiler generates C code. 02:55:15 okay so you use s48 to load the prescheme files, then you feed it a ps scheme file and it generates your C file? 02:55:17 It's a Scheme program that takes in Pre-Scheme code and spits out C code. To get machine code from that, you must pass the C code through a C compiler. 02:55:22 Exactly. 02:55:48 and you linked me to a basic of how to use it 02:55:48 got it 02:58:24 acarrico [~acarrico@pppoe-68-142-43-164.gmavt.net] has joined #scheme 03:02:37 bombshelter13b [~bombshelt@76-10-149-209.dsl.teksavvy.com] has joined #scheme 03:15:26 -!- dakeyras [~dakeyras@pool-173-64-149-152.sttlwa.fios.verizon.net] has quit [Read error: Connection reset by peer] 03:16:01 dakeyras [~dakeyras@pool-173-64-149-152.sttlwa.fios.verizon.net] has joined #scheme 03:16:23 groovy2shoes [~guv@unaffiliated/groovebot] has joined #scheme 03:20:48 -!- myu2 [~myu2@v077103.dynamic.ppp.asahi-net.or.jp] has quit [Remote host closed the connection] 03:26:43 -!- Azuvix [~Azuvix@71-215-25-216.bois.qwest.net] has quit [Quit: Leaving] 03:27:52 -!- pavelludiq [~quassel@87.246.58.193] has quit [Ping timeout: 240 seconds] 03:28:55 -!- timj_ [~timj@e176206226.adsl.alicedsl.de] has quit [Remote host closed the connection] 03:30:12 timj [~timj@e176206226.adsl.alicedsl.de] has joined #scheme 03:42:52 accel [~accel@unaffiliated/accel] has joined #scheme 03:45:05 -!- accel [~accel@unaffiliated/accel] has quit [Client Quit] 03:47:12 accel [~accel@unaffiliated/accel] has joined #scheme 03:51:28 -!- rgrau [~user@62.Red-88-2-20.staticIP.rima-tde.net] has quit [Read error: Operation timed out] 03:52:36 timj_ [~timj@e176199067.adsl.alicedsl.de] has joined #scheme 03:53:23 accel_ [~accel@unaffiliated/accel] has joined #scheme 03:53:23 -!- accel_ [~accel@unaffiliated/accel] has quit [Client Quit] 03:55:50 -!- timj [~timj@e176206226.adsl.alicedsl.de] has quit [Ping timeout: 240 seconds] 04:02:12 -!- araujo [~araujo@gentoo/developer/araujo] has quit [Ping timeout: 260 seconds] 04:06:56 mwolfe [~michael@cpe-67-49-72-40.socal.res.rr.com] has joined #scheme 04:07:45 -!- corruptmemory [~jim@ool-18bbd5b2.static.optonline.net] has quit [Quit: Leaving] 04:24:00 -!- imran_sr [~imran@75-18-254-4.lightspeed.uncyca.sbcglobal.net] has quit [Quit: Leaving] 04:24:12 -!- accel [~accel@unaffiliated/accel] has quit [Quit: leaving] 04:24:13 araujo [~araujo@gentoo/developer/araujo] has joined #scheme 04:25:14 -!- Tekk_ [~user@cpe-071-077-209-233.ec.res.rr.com] has quit [Remote host closed the connection] 04:40:01 -!- noonian [~noonian@c-98-232-230-23.hsd1.or.comcast.net] has quit [Read error: Connection reset by peer] 04:42:57 homie` [~levgue@xdsl-78-35-150-94.netcologne.de] has joined #scheme 04:43:06 wbooze` [~levgue@xdsl-78-35-150-94.netcologne.de] has joined #scheme 04:44:27 -!- homie [~levgue@xdsl-84-44-153-92.netcologne.de] has quit [Ping timeout: 240 seconds] 04:44:45 -!- homie` [~levgue@xdsl-78-35-150-94.netcologne.de] has quit [Client Quit] 04:44:47 -!- wbooze [~levgue@xdsl-84-44-153-92.netcologne.de] has quit [Ping timeout: 240 seconds] 04:44:57 -!- wbooze` [~levgue@xdsl-78-35-150-94.netcologne.de] has quit [Client Quit] 04:48:01 dualbus [~dualbus@201.170.71.87.dsl.dyn.telnor.net] has joined #scheme 04:50:52 -!- dakeyras [~dakeyras@pool-173-64-149-152.sttlwa.fios.verizon.net] has quit [Quit: dakeyras] 04:59:43 wbooze [~levgue@xdsl-78-35-150-94.netcologne.de] has joined #scheme 05:00:04 -!- bombshelter13b [~bombshelt@76-10-149-209.dsl.teksavvy.com] has quit [Quit: bombshelter13b] 05:01:04 -!- mathk [~mathk@194.177.62.31] has quit [Ping timeout: 260 seconds] 05:01:32 homie [~levgue@xdsl-78-35-150-94.netcologne.de] has joined #scheme 05:03:31 -!- stamourv [~user@kauai.ccs.neu.edu] has quit [Read error: Connection reset by peer] 05:03:34 stamourv` [~user@kauai.ccs.neu.edu] has joined #scheme 05:03:46 -!- araujo [~araujo@gentoo/developer/araujo] has quit [Quit: Leaving] 05:04:27 -!- Crito [~none@unaffiliated/crito] has quit [Ping timeout: 240 seconds] 05:04:44 -!- samth [~samth@punge.ccs.neu.edu] has quit [Ping timeout: 250 seconds] 05:05:05 samth [~samth@punge.ccs.neu.edu] has joined #scheme 05:05:40 Crito [~none@unaffiliated/crito] has joined #scheme 05:06:32 myu2 [~myu2@58x5x224x106.ap58.ftth.ucom.ne.jp] has joined #scheme 05:09:23 -!- groovy2shoes [~guv@unaffiliated/groovebot] has quit [Quit: groovy2shoes] 05:11:20 -!- phao [~phao@189.12.240.52] has quit [Quit: Leaving] 05:12:22 smtlaissezfaire [~smtlaisse@user-387hbid.cable.mindspring.com] has joined #scheme 05:19:38 -!- smtlaissezfaire [~smtlaisse@user-387hbid.cable.mindspring.com] has quit [Quit: smtlaissezfaire] 05:29:15 -!- offby1 is now known as ophphby1 05:49:14 smtlaissezfaire [~smtlaisse@user-387hbid.cable.mindspring.com] has joined #scheme 05:55:16 -!- smtlaissezfaire [~smtlaisse@user-387hbid.cable.mindspring.com] has quit [Quit: smtlaissezfaire] 06:00:23 -!- mwolfe [~michael@cpe-67-49-72-40.socal.res.rr.com] has quit [Remote host closed the connection] 06:09:54 -!- saccade [~saccade@209-6-54-113.c3-0.smr-ubr1.sbo-smr.ma.cable.rcn.com] has quit [Quit: This computer has gone to sleep] 06:12:03 jonrafkind [~jon@jonr5.dsl.xmission.com] has joined #scheme 06:19:15 jewel [~jewel@196-210-134-64.dynamic.isadsl.co.za] has joined #scheme 06:23:27 lolcow [~lolcow@196-215-126-77.dynamic.isadsl.co.za] has joined #scheme 06:23:41 -!- DrDuck [~duck@adsl-81-55-129.hsv.bellsouth.net] has quit [Ping timeout: 272 seconds] 06:23:42 -!- leppie [~lolcow@196-215-126-77.dynamic.isadsl.co.za] has quit [Read error: Connection reset by peer] 06:32:35 saccade [~saccade@209-6-54-113.c3-0.smr-ubr1.sbo-smr.ma.cable.rcn.com] has joined #scheme 06:38:38 -!- Riastradh [debian-tor@fsf/member/riastradh] has quit [Ping timeout: 240 seconds] 06:44:31 smtlaissezfaire [~smtlaisse@user-387hbid.cable.mindspring.com] has joined #scheme 07:00:42 -!- lewis1711 [~lewis@125-239-255-244.jetstream.xtra.co.nz] has left #scheme 07:01:13 Riastradh [debian-tor@fsf/member/riastradh] has joined #scheme 07:11:07 -!- bitweiler [~bitweiler@adsl-99-58-93-196.dsl.stl2mo.sbcglobal.net] has quit [Ping timeout: 240 seconds] 07:12:36 lewis1711 [~lewis@125-239-255-244.jetstream.xtra.co.nz] has joined #scheme 07:12:58 mathk [~mathk@lns-bzn-24-82-64-160-173.adsl.proxad.net] has joined #scheme 07:13:11 right so having a go at actually programming something with scheme instead of playing around 07:14:00 -!- minsa [~minsa@c-24-5-121-157.hsd1.ca.comcast.net] has quit [Quit: WeeChat 0.2.6.3] 07:14:26 I'm writing up a little C library for input/output for a game, which I will then access from scheme. my question is, what's the best way of sharing global values between the two? for example, the size of the game screen. should I just pass it as a paramater to the C function or is there a better way? 07:15:36 -!- smtlaissezfaire [~smtlaisse@user-387hbid.cable.mindspring.com] has quit [Quit: smtlaissezfaire] 07:21:26 -!- jewel [~jewel@196-210-134-64.dynamic.isadsl.co.za] has quit [Ping timeout: 240 seconds] 07:26:14 -!- timj_ [~timj@e176199067.adsl.alicedsl.de] has quit [Ping timeout: 240 seconds] 07:29:07 -!- mathk [~mathk@lns-bzn-24-82-64-160-173.adsl.proxad.net] has quit [Ping timeout: 276 seconds] 07:29:22 pdelgallego [~pdelgalle@1385159852.dhcp.dbnet.dk] has joined #scheme 07:31:45 If it's manageable, it's usually best to pass state as parameters. If not, depending on your scheme implementation, you can either export the objects to be accessible from C (or vice versa), or you can create some large struct to hold all global state and pass that around. 07:32:12 ... pass a pointer to it around, rather. 07:34:47 hmm 07:35:14 for now I am going with a "init values" function I will call from scheme. not the nicest, but it'll only be a small C lib so I can probably get away with it 07:36:17 -!- pantsd_home [~pantsd_ho@174-21-243-233.tukw.qwest.net] has quit [Ping timeout: 260 seconds] 07:38:46 Note that chicken makes interfacing with C very convenient, if you're not already decided on a scheme implementation. 07:38:58 MrFahrenheit [~RageOfTho@users-146-124.vinet.ba] has joined #scheme 07:39:17 I'm using gambit right now. 07:39:55 though i've only really decided on "some scheme that compiles to C" as far as implementations go 07:39:59 timj_ [~timj@e176199221.adsl.alicedsl.de] has joined #scheme 07:41:16 well keep in mind that there will be differences in how the FFI works, and other stuff like what modules are available and such, so beware of waiting until you're too deep in before making that decision 07:44:00 hmm, noted 07:44:25 stuck on the C side of things anyway, completely forgot how to do shared libraries:D 07:45:33 accel [~accel@unaffiliated/accel] has joined #scheme 07:50:16 -!- accel [~accel@unaffiliated/accel] has quit [Client Quit] 07:50:37 accel [~accel@unaffiliated/accel] has joined #scheme 07:54:07 -!- MrFahrenheit [~RageOfTho@users-146-124.vinet.ba] has quit [Ping timeout: 240 seconds] 07:57:49 -!- myu2 [~myu2@58x5x224x106.ap58.ftth.ucom.ne.jp] has quit [Remote host closed the connection] 08:06:27 HG` [~HG@xdsl-92-252-120-140.dip.osnanet.de] has joined #scheme 08:09:44 hkBst [~quassel@gentoo/developer/hkbst] has joined #scheme 08:17:31 -!- accel [~accel@unaffiliated/accel] has quit [Quit: brb, swtiching irssi terminal font] 08:17:55 accel [~accel@unaffiliated/accel] has joined #scheme 08:20:38 -!- copumpkin [~pumpkin@unaffiliated/pumpkingod] has quit [Ping timeout: 240 seconds] 08:21:04 copumpkin [~pumpkin@unaffiliated/pumpkingod] has joined #scheme 08:24:48 nilg` [~user@77.70.2.229] has joined #scheme 08:26:00 Adamant_ [~Adamant@unaffiliated/adamant] has joined #scheme 08:26:10 -!- Adamant_ [~Adamant@unaffiliated/adamant] has quit [Read error: Connection reset by peer] 08:26:17 Adamant_ [~Adamant@c-68-51-145-83.hsd1.ga.comcast.net] has joined #scheme 08:26:17 -!- Adamant_ [~Adamant@c-68-51-145-83.hsd1.ga.comcast.net] has quit [Changing host] 08:26:17 Adamant_ [~Adamant@unaffiliated/adamant] has joined #scheme 08:28:38 -!- Adamant [~Adamant@unaffiliated/adamant] has quit [Ping timeout: 240 seconds] 08:28:38 -!- Adamant_ is now known as Adamant 08:29:16 -!- jonrafkind [~jon@jonr5.dsl.xmission.com] has quit [Ping timeout: 250 seconds] 08:38:55 pdelgallego_ [~pdelgalle@1385159852.dhcp.dbnet.dk] has joined #scheme 08:39:17 -!- drdo [~user@91.205.108.93.rev.vodafone.pt] has quit [Remote host closed the connection] 08:41:29 drdo [~user@91.205.108.93.rev.vodafone.pt] has joined #scheme 08:57:12 lewis1711: Re the SDL crash -- running code that uses the ffi is possible in drracket, and such code can easily lead to crashes; protecting against it could be done by forbidding use of ffi code in drracket, but then it won't be possible to test such code in drracket because it really runs everything in-process rather than some emacs-like inferior mode that runs separate processes. 08:57:18 lewis1711: And re your issue with an `eval' -- if you write a library that *provides* it, then you should know what you're doing... As with the above, it would be possible to forbid such things by making a language that will make requiring such a module throw an error if it provides something that the language has -- in fact, this was the situation for a long while, and was modified by popular demand. 08:57:21 foof: Not really, because of what Riastradh said -- (delay (force E)) should be translated to (lazy E), and you can't do that automatically. In any case, racket's `lazy' is probably closer to what you'd want, since it's behaving a little different than srfi-45 wrt the type of the result, but that means that (lazy (lazy E)) is (roughly) equivalent to (lazy E). 08:58:07 -!- accel [~accel@unaffiliated/accel] has quit [Quit: leaving] 08:58:11 -!- qhe [~qhe2@134.134.137.73] has quit [Quit: Leaving.] 08:59:07 eli: re 'eval' -- I think throwing a warning would be the sensible behaviour here 08:59:56 "Throwing a warning" doesn't make sense. 09:00:27 If you "throw" something, then it's an error. 09:00:29 compiler warning:P 09:01:44 In any case, like I said, you're in minority here -- most people wanted things to change to what they are now. 09:02:32 But that was before there was a logging facility (which is what we use for warnings), so perhaps a warning would make sense. Feel free to suggest it on the list... 09:03:13 what list is this?:) 09:03:48 The racket mailing list. See http://racket-lang.org/community.html 09:04:11 ohh, I thought you were talking about scheme in general 09:04:25 gravicappa [~gravicapp@ppp85-140-65-44.pppoe.mtu-net.ru] has joined #scheme 09:04:39 since all the schemes i've tried let you do that (if you're counting racket as one) 09:04:56 The racket module system has very little to do with "scheme in general". 09:05:24 I figured you meant r6rs, which has a module system 09:05:31 (I think..) 09:05:43 Even with r6rs implementations, there are many differences between various implementations' module systems. 09:22:49 -!- nilg` [~user@77.70.2.229] has quit [Read error: Connection reset by peer] 09:32:23 fradgers- [~fradgers-@5e0b815c.bb.sky.com] has joined #scheme 09:35:53 mmc [~michal@cs27120227.pp.htv.fi] has joined #scheme 09:39:33 Gmind [~Nevermind@113.190.197.36] has joined #scheme 09:39:53 cky : yo u there ? 09:59:31 schmir [~schmir@p54A9088B.dip0.t-ipconnect.de] has joined #scheme 10:04:29 tupi [~david@186.205.37.15] has joined #scheme 10:16:23 what exactly is the difference between creating an extension in C for a language, and creating a C library than interfacing with an FFI? other than the fact one is a library:P is one typically faster? 10:16:29 *for scheme 10:16:55 I notice racket has a way of making a scheme extension, which is similarish to how I've done it in a few languages like ruby and lua 10:19:01 -!- schmir [~schmir@p54A9088B.dip0.t-ipconnect.de] has quit [Read error: Connection reset by peer] 10:19:26 -!- mmc [~michal@cs27120227.pp.htv.fi] has quit [Remote host closed the connection] 10:22:25 -!- unkanon-work [~unkanon@rrcs-69-193-217-130.nyc.biz.rr.com] has quit [Ping timeout: 255 seconds] 10:23:45 unkanon-work [~unkanon@rrcs-69-193-217-130.nyc.biz.rr.com] has joined #scheme 10:24:27 -!- githogori [~githogori@adsl-66-123-22-146.dsl.snfc21.pacbell.net] has quit [Remote host closed the connection] 10:26:59 bokr [~eduska@85.26.241.136] has joined #scheme 10:28:59 Gmind1 [~Nevermind@113.190.197.36] has joined #scheme 10:30:11 accel [~accel@unaffiliated/accel] has joined #scheme 10:32:26 -!- Gmind [~Nevermind@113.190.197.36] has quit [Ping timeout: 265 seconds] 10:36:10 myu2 [~myu2@v077103.dynamic.ppp.asahi-net.or.jp] has joined #scheme 10:36:25 schmir [~schmir@p54A9088B.dip0.t-ipconnect.de] has joined #scheme 10:37:37 mmc [~michal@cs27120227.pp.htv.fi] has joined #scheme 10:42:00 nilg` [~user@77.70.2.229] has joined #scheme 10:44:52 -!- unkanon-work [~unkanon@rrcs-69-193-217-130.nyc.biz.rr.com] has quit [Ping timeout: 240 seconds] 10:45:51 -!- pdelgallego_ [~pdelgalle@1385159852.dhcp.dbnet.dk] has quit [Read error: Operation timed out] 10:46:13 more confusion! reading the chicken docs and you can embed C, create an extension in C or interface a C library in scheme 10:46:44 unkanon-work [~unkanon@rrcs-69-193-217-130.nyc.biz.rr.com] has joined #scheme 10:47:47 -!- pdelgallego [~pdelgalle@1385159852.dhcp.dbnet.dk] has quit [Ping timeout: 240 seconds] 10:48:08 Well that's really not too different from other languages that can interface with C, is it? Just that you have more ways to do it than just writing an extension as you might do for python, ruby, etc. 10:48:58 Since chicken compiles to C they let you avoid having to write extension code in some circumstances, by providing a direct FFI and C embedding 10:49:21 pdelgallego [~pdelgalle@1385159852.dhcp.dbnet.dk] has joined #scheme 10:50:58 I suppose so, it's just pretty confusing. having a choice, I guess:P 10:52:41 Since one of the most common uses of C interfaces from other languages is to wrap libraries, I imagine it makes that a lot easier (never done scheme->c stuff myself yet :) 10:54:28 femtoo [~femto@95-89-196-241-dynip.superkabel.de] has joined #scheme 10:59:55 -!- Gmind1 [~Nevermind@113.190.197.36] has quit [Quit: Leaving.] 11:06:28 -!- pdelgallego [~pdelgalle@1385159852.dhcp.dbnet.dk] has quit [Ping timeout: 255 seconds] 11:07:11 pdelgallego [~pdelgalle@1385159852.dhcp.dbnet.dk] has joined #scheme 11:09:49 -!- schmir [~schmir@p54A9088B.dip0.t-ipconnect.de] has quit [Remote host closed the connection] 11:10:09 pdelgallego_ [~pdelgalle@1385159852.dhcp.dbnet.dk] has joined #scheme 11:15:24 araujo [~araujo@190.38.51.34] has joined #scheme 11:15:24 -!- araujo [~araujo@190.38.51.34] has quit [Changing host] 11:15:24 araujo [~araujo@gentoo/developer/araujo] has joined #scheme 11:21:23 -!- ophphby1 is now known as offby1 11:24:11 do nicks get charged by the # of letters ? 11:26:43 schmir [~schmir@p54A9088B.dip0.t-ipconnect.de] has joined #scheme 11:35:15 robtillotson: well, for what it's worth, after poking around a bit gambit has very nice C integration. you can write it all in as a string inside your scheme code, even use external C libraries inside it as long as you pass the right flags. not sure what embedding is like speedwise however, we'll find out once I do a computationally intensive function :) 11:37:35 phao [~phao@189.107.190.102] has joined #scheme 11:38:07 -!- accel [~accel@unaffiliated/accel] has quit [Quit: Lost terminal] 11:38:21 I am thinking it should be pretty minimal since it compiles down C anyway, so the only overhead should be converting from scheme-C types. but I don't really know either language well so who knows:P 11:47:27 blergh just as I was getting productive the 3rd party module system bites me in the ass 11:52:54 Just when I thought I was out -- they drag me back in 11:55:27 -!- pygospa [~pygospa@kiel-d9bfd0e7.pool.mediaWays.net] has quit [Ping timeout: 240 seconds] 11:57:53 pygospa [~pygospa@kiel-d9bfc140.pool.mediaWays.net] has joined #scheme 12:08:49 rgrau [~user@62.Red-88-2-20.staticIP.rima-tde.net] has joined #scheme 12:17:39 -!- didi [~user@unaffiliated/didi/x-1022147] has quit [Remote host closed the connection] 12:19:05 -!- schmir [~schmir@p54A9088B.dip0.t-ipconnect.de] has quit [Remote host closed the connection] 12:19:29 -!- drdo [~user@91.205.108.93.rev.vodafone.pt] has quit [Remote host closed the connection] 12:19:52 drdo [~user@91.205.108.93.rev.vodafone.pt] has joined #scheme 12:23:40 didi [~user@unaffiliated/didi/x-1022147] has joined #scheme 12:40:42 -!- bokr [~eduska@85.26.241.136] has quit [Quit: Leaving.] 12:42:46 masm [~masm@bl16-170-191.dsl.telepac.pt] has joined #scheme 12:58:58 schmir [~schmir@p54A9088B.dip0.t-ipconnect.de] has joined #scheme 13:00:30 Gmind [~Nevermind@113.190.197.36] has joined #scheme 13:01:55 -!- lewis1711 [~lewis@125-239-255-244.jetstream.xtra.co.nz] has left #scheme 13:07:41 m 13:08:01 b 13:09:16 -!- mmc [~michal@cs27120227.pp.htv.fi] has quit [Remote host closed the connection] 13:12:32 -!- schmir [~schmir@p54A9088B.dip0.t-ipconnect.de] has quit [Remote host closed the connection] 13:13:45 bombshelter13b [~bombshelt@76-10-149-209.dsl.teksavvy.com] has joined #scheme 13:17:16 -!- wbooze [~levgue@xdsl-78-35-150-94.netcologne.de] has quit [Remote host closed the connection] 13:17:17 -!- homie [~levgue@xdsl-78-35-150-94.netcologne.de] has quit [Read error: Connection reset by peer] 13:19:14 -!- femtoo [~femto@95-89-196-241-dynip.superkabel.de] has quit [Ping timeout: 260 seconds] 13:26:24 wbooze [~levgue@xdsl-78-35-150-94.netcologne.de] has joined #scheme 13:26:34 homie [~levgue@xdsl-78-35-150-94.netcologne.de] has joined #scheme 13:33:56 Gmind1 [~Nevermind@113.190.192.228] has joined #scheme 13:36:22 -!- Gmind [~Nevermind@113.190.197.36] has quit [Ping timeout: 276 seconds] 13:47:10 -!- _danb_ [~user@124-149-166-62.dyn.iinet.net.au] has quit [Ping timeout: 255 seconds] 13:48:20 Gmind [~Nevermind@113.190.195.244] has joined #scheme 13:49:05 femtoo [~femto@95-89-196-241-dynip.superkabel.de] has joined #scheme 13:50:27 -!- Gmind1 [~Nevermind@113.190.192.228] has quit [Ping timeout: 240 seconds] 14:01:01 -!- lolcow is now known as leppie 14:10:38 -!- Riastradh [debian-tor@fsf/member/riastradh] has quit [Ping timeout: 240 seconds] 14:16:19 jao [~user@80.31.85.144] has joined #scheme 14:16:19 -!- jao [~user@80.31.85.144] has quit [Changing host] 14:16:19 jao [~user@pdpc/supporter/professional/jao] has joined #scheme 14:18:50 corruptmemory [~jim@ool-18bbd5b2.static.optonline.net] has joined #scheme 14:23:39 -!- leppie [~lolcow@196-215-126-77.dynamic.isadsl.co.za] has quit [Read error: Connection reset by peer] 14:24:02 leppie [~lolcow@196-215-126-77.dynamic.isadsl.co.za] has joined #scheme 14:26:21 -!- hkBst [~quassel@gentoo/developer/hkbst] has quit [Read error: Connection reset by peer] 14:26:42 hkBst [~quassel@gentoo/developer/hkbst] has joined #scheme 14:32:19 Riastradh [debian-tor@fsf/member/riastradh] has joined #scheme 14:34:03 bweaver [~user@host-68-169-175-225.WISOLT2.epbfi.com] has joined #scheme 14:46:14 -!- kanru [~kanru@61-30-10-70.static.tfn.net.tw] has quit [Ping timeout: 240 seconds] 14:46:53 Gmind1 [~Nevermind@113.190.195.244] has joined #scheme 14:49:05 -!- Gmind [~Nevermind@113.190.195.244] has quit [Ping timeout: 272 seconds] 14:52:06 cky: u there 14:54:08 Gmind1: No. 14:54:09 :-P 15:02:09 LoL 15:02:20 cky: your bot is quite smart =) 15:02:27 at least it can realize me =) 15:18:08 eli, what is the precise nature of the difference between SRFI 45's LAZY and Racket's LAZY? 15:18:43 In SRFI 45, LAZY is idempotent too. 15:22:03 aisa [~aisa@173-10-243-253-Albuquerque.hfc.comcastbusiness.net] has joined #scheme 15:24:11 kanru [~kanru@118-160-160-172.dynamic.hinet.net] has joined #scheme 15:26:05 -!- copumpkin [~pumpkin@unaffiliated/pumpkingod] has quit [Quit: Computer has gone to sleep.] 15:31:22 pavelludiq [~quassel@87.246.58.193] has joined #scheme 15:34:58 -!- pavelludiq [~quassel@87.246.58.193] has quit [Client Quit] 15:35:13 pavelludiq [~quassel@87.246.58.193] has joined #scheme 15:36:17 Checkie [15499@unaffiliated/checkie] has joined #scheme 15:38:49 -!- pavelludiq [~quassel@87.246.58.193] has quit [Client Quit] 15:39:05 pavelludiq [~quassel@87.246.58.193] has joined #scheme 15:39:09 -!- pavelludiq [~quassel@87.246.58.193] has quit [Read error: Connection reset by peer] 15:42:22 eli: Sure we can do it automatically, source to source transformations are trivial. 15:43:00 You can also build the laziness and trampolines into the evaluation semantics. 15:44:12 And I'm pretty sure you'd only need a moderately smart compiler to detect and fix the leak using just normal Scheme semantics, though I haven't had a chance to look into that yet. 15:44:57 Source to source transformations are trivial, but it's not a good idea to bake them into the definition of the language. 15:45:25 Riastradh: The point being there are several avenues of approach, one of which is easy. 15:47:09 Another question - Can we just substitute lazy for delay everywhere, assuming a force which is safe for non-promises? Then just rename lazy => delay and we're back to the same two R5RS forms. 15:48:02 WonTu [~WonTu@p57B5425B.dip.t-dialin.net] has joined #scheme 15:48:03 smtlaissezfaire [~smtlaisse@user-387hbid.cable.mindspring.com] has joined #scheme 15:48:16 -!- WonTu [~WonTu@p57B5425B.dip.t-dialin.net] has left #scheme 15:49:29 Then there's the question of whether lazy provides everything you need to avoid space leaks. The only non-trivial lazy algorithm I've written in Scheme is a transliteration of the Haskell tying-the-knot hack to created a doubly-linked list without mutation, and it doesn't use (delay (force x)), but it does have several instances of (delay (foo (force x))). 15:50:21 -!- Gmind1 [~Nevermind@113.190.195.244] has quit [Read error: Connection reset by peer] 15:51:30 Another way to put `safe for non-promises' is `semantically confused'. Suppose you did that in an implementation (not the language). First, how would you force a chain of promises? -- how would you know when you're done? Second, how would you then port that code to another implementation? Third, how would you be able to talk about what parts of a program work lazily and what parts work eagerly, unless you also make all primitives accept promi 15:52:05 Even if all primitives accept promises, it is very important to be able to understand what parts of a program work lazily and what parts of a program work eagerly, if we are going to talk about space leaks. 15:52:40 Riastradh: Safe for non-promises is just an implementation detail, in the particular implementation which wants to use that approach to making delay/force space safe. 15:53:00 So it doesn't have anything to do with portability. 15:53:59 Riastradh: I don't remember the exact details now, but IIRC it begins with our `force' not barfing on non-promises, and the fact that we can just do something like (lazy (lazy 1)); but that's vague -- more context is in the srfi list. 15:54:01 You suggested replacing (lazy ...) by (delay ...), rather than by (delay (force ...)), which gives observably different semantics in systems in which FORCE takes only promises and other primitives take only non-promises. 15:54:15 Riastradh: It was a thought experiment. 15:54:37 Riastradh: (Specifically, you'd probably consider this to be the semantically confused version.) 15:55:12 I'm arguing that, at the standards level, we might be able to just require delay/force be space-safe and leave the details to the implementation. 15:55:21 foof: You can use `lazy' instead of `force' if you go this route, but that makes things different than the usual. 15:56:09 As for standardising it, it's so under-specified even without this, that I doubt anyone will do more than just a naive implementation. 15:56:28 If you find a concise, compositional (i.e., no source-to-source transformations) implementation, foof, sure -- but I don't know of one, and as far as I know, you don't know of one, and I think eli, who has probably written much more lazy code in Scheme than either of us, doesn't know of one either. 15:57:09 -!- smtlaissezfaire [~smtlaisse@user-387hbid.cable.mindspring.com] has quit [Quit: smtlaissezfaire] 15:57:22 What we all know is that LAZY is a straightforward fix to a straightforward bug. 15:57:26 Riastradh: Show me a concise, compositional implementation of call/cc. 15:59:55 choas [~lars@p5792C657.dip.t-dialin.net] has joined #scheme 16:01:19 OK. Still, Scheme's evaluation model presumes the existence of continuations, irrespective of whether CWCC is involved. Let's suppose you have a Scheme interpreter written in a language that doesn't have its own stack. It is usually straightforward to add CWCC to such an interpreter with only local changes. Can you make DELAY and FORCE space-safe in such an interpreter, with only local changes? 16:01:43 I also think I could build in tail-recursive support for auto-forcing lazy primivites into the Chibi VM with almost no code, but it's currently way past my bedtime. 16:03:18 Riastradh, foof: BTW, to see how our thing works see the tests at http://git.racket-lang.org/plt/blob/HEAD:/collects/tests/lazy/promise.rkt (it's a little hackish, but enough patterns to clarify things). 16:03:24 (Also, keep in mind I'm playing devil's advocate. I definitely see the utility of lazy, but am just not convinced it's good enough to go into the core.) 16:03:46 copumpkin [~pumpkin@unaffiliated/pumpkingod] has joined #scheme 16:04:15 foof: re making chibi sfs it in in one evening -- that's amusing. 16:04:50 eli: almost no code != one evening!!! :) 16:05:47 foof: in a comment next to our implementation of all of this I wrote: note: measuring time invested divided by the number of lines, this innocent looking piece of code is by far the leader of that competition -- handle with extreme care. 16:06:14 And this is just this side -- not counting the various places that racket needed to adapt things to make it really SFS. 16:06:51 (Most notably the marks that can be seen in decompiled code for bindings that are no longer referenced -- and that wasn't in my department.) 16:07:12 Gmind [~Gmind@113.190.195.244] has joined #scheme 16:07:20 hey guys 16:07:45 do ya know any editor that can make grey and white lines like in pastebin ? 16:13:31 -!- hkBst [~quassel@gentoo/developer/hkbst] has quit [Remote host closed the connection] 16:14:09 -!- tessier [~treed@mail.copilotco.com] has quit [Ping timeout: 265 seconds] 16:18:34 -!- stamourv` [~user@kauai.ccs.neu.edu] has quit [Quit: ERC Version 5.2 (IRC client for Emacs)] 16:25:03 -!- Gmind [~Gmind@113.190.195.244] has left #scheme 16:28:20 -!- Adamant [~Adamant@unaffiliated/adamant] has quit [Quit: Adamant] 16:35:03 stamourv [~user@kauai.ccs.neu.edu] has joined #scheme 16:40:26 pantsd_home [~pantsd_ho@174-21-246-76.tukw.qwest.net] has joined #scheme 16:43:38 drdo` [~user@91.205.108.93.rev.vodafone.pt] has joined #scheme 16:44:21 jonrafkind [~jon@jonr5.dsl.xmission.com] has joined #scheme 16:46:57 -!- drdo [~user@91.205.108.93.rev.vodafone.pt] has quit [Remote host closed the connection] 16:51:22 wbooze` [~levgue@xdsl-78-35-137-96.netcologne.de] has joined #scheme 16:51:27 homie` [~levgue@xdsl-78-35-137-96.netcologne.de] has joined #scheme 16:53:28 -!- wbooze [~levgue@xdsl-78-35-150-94.netcologne.de] has quit [Ping timeout: 255 seconds] 16:53:47 -!- homie [~levgue@xdsl-78-35-150-94.netcologne.de] has quit [Ping timeout: 265 seconds] 17:01:33 -!- nilg` [~user@77.70.2.229] has quit [Remote host closed the connection] 17:07:59 carleastlund [~cce@gotham.ccs.neu.edu] has joined #scheme 17:10:14 -!- Riastradh [debian-tor@fsf/member/riastradh] has quit [Ping timeout: 240 seconds] 17:18:06 -!- kanru [~kanru@118-160-160-172.dynamic.hinet.net] has quit [Read error: Operation timed out] 17:30:27 drdo`` [~user@91.205.108.93.rev.vodafone.pt] has joined #scheme 17:30:52 -!- drdo`` is now known as drdo 17:31:51 githogori [~githogori@adsl-66-123-22-146.dsl.snfc21.pacbell.net] has joined #scheme 17:32:34 -!- drdo` [~user@91.205.108.93.rev.vodafone.pt] has quit [Ping timeout: 255 seconds] 17:49:29 -!- homie` [~levgue@xdsl-78-35-137-96.netcologne.de] has quit [Quit: ERC Version 5.3 (IRC client for Emacs)] 17:49:40 -!- wbooze` [~levgue@xdsl-78-35-137-96.netcologne.de] has quit [Quit: ERC Version 5.3 (IRC client for Emacs)] 17:52:04 wbooze [~levgue@xdsl-78-35-137-96.netcologne.de] has joined #scheme 17:52:11 homie [~levgue@xdsl-78-35-137-96.netcologne.de] has joined #scheme 17:53:09 -!- alexsuraci [~alexsurac@pool-71-188-133-67.aubnin.fios.verizon.net] has quit [Quit: alexsuraci] 18:02:34 -!- Pepe_ [~ppjet@bouah.net] has quit [Remote host closed the connection] 18:08:54 alexsuraci [~alexsurac@pool-71-188-133-67.aubnin.fios.verizon.net] has joined #scheme 18:10:24 nilg [~user@77.70.2.229] has joined #scheme 18:14:47 -!- Jafet [~Jafet@unaffiliated/jafet] has quit [Ping timeout: 240 seconds] 18:21:24 -!- copumpkin [~pumpkin@unaffiliated/pumpkingod] has quit [Ping timeout: 260 seconds] 18:22:06 Pepe_ [~ppjet@bouah.net] has joined #scheme 18:42:20 copumpkin [~pumpkin@unaffiliated/pumpkingod] has joined #scheme 19:03:34 tessier [~treed@mail.copilotco.com] has joined #scheme 19:03:34 -!- unkanon-work is now known as rien 19:08:25 wisey [~Steven@host86-150-108-29.range86-150.btcentralplus.com] has joined #scheme 19:09:05 -!- tessier [~treed@mail.copilotco.com] has quit [Changing host] 19:09:05 tessier [~treed@kernel-panic/copilotco] has joined #scheme 19:14:19 jlongster [~user@nat/mozilla/x-nxoiqpfsjvbkcbpe] has joined #scheme 19:16:04 -!- drdo [~user@91.205.108.93.rev.vodafone.pt] has quit [Ping timeout: 255 seconds] 19:16:04 -!- daedra [~simon@unaffiliated/daedra] has left #scheme 19:20:39 DrDuck [~duck@adsl-81-55-129.hsv.bellsouth.net] has joined #scheme 19:32:38 zevarito [~zevarito@r186-48-134-225.dialup.adsl.anteldata.net.uy] has joined #scheme 19:34:58 -!- Khisanth [~Khisanth@pool-96-246-2-234.nycmny.east.verizon.net] has quit [Ping timeout: 241 seconds] 19:39:29 groovy2shoes [~guv@unaffiliated/groovebot] has joined #scheme 19:44:40 MrFahrenheit [~RageOfTho@users-146-124.vinet.ba] has joined #scheme 19:46:16 -!- homie [~levgue@xdsl-78-35-137-96.netcologne.de] has quit [Quit: ERC Version 5.3 (IRC client for Emacs)] 19:46:25 -!- wbooze [~levgue@xdsl-78-35-137-96.netcologne.de] has quit [Quit: ERC Version 5.3 (IRC client for Emacs)] 19:46:39 RageOfThou [~RageOfTho@users-146-124.vinet.ba] has joined #scheme 19:47:54 jewel [~jewel@196-210-187-2.dynamic.isadsl.co.za] has joined #scheme 19:48:29 homie [~levgue@xdsl-78-35-137-96.netcologne.de] has joined #scheme 19:49:55 wbooze [~levgue@xdsl-78-35-137-96.netcologne.de] has joined #scheme 19:55:02 Khisanth [~Khisanth@pool-96-246-5-94.nycmny.east.verizon.net] has joined #scheme 19:57:01 bitweiler [~bitweiler@adsl-99-58-93-196.dsl.stl2mo.sbcglobal.net] has joined #scheme 19:59:10 -!- nilg [~user@77.70.2.229] has quit [Read error: Connection reset by peer] 20:02:08 femtooo [~femto@95-89-196-241-dynip.superkabel.de] has joined #scheme 20:02:12 Riastradh [debian-tor@fsf/member/riastradh] has joined #scheme 20:04:11 pumpkin [~pumpkin@unaffiliated/pumpkingod] has joined #scheme 20:05:26 -!- femtoo [~femto@95-89-196-241-dynip.superkabel.de] has quit [Ping timeout: 240 seconds] 20:05:39 -!- copumpkin [~pumpkin@unaffiliated/pumpkingod] has quit [Read error: Operation timed out] 20:21:25 bgs100 [~ian@unaffiliated/bgs100] has joined #scheme 20:35:05 -!- zevarito [~zevarito@r186-48-134-225.dialup.adsl.anteldata.net.uy] has quit [Remote host closed the connection] 20:51:22 zevarito [~zevarito@r186-48-134-225.dialup.adsl.anteldata.net.uy] has joined #scheme 20:57:04 -!- DrDuck [~duck@adsl-81-55-129.hsv.bellsouth.net] has quit [Ping timeout: 276 seconds] 21:00:41 -!- zevarito [~zevarito@r186-48-134-225.dialup.adsl.anteldata.net.uy] has quit [Remote host closed the connection] 21:02:29 femtoo [~femto@95-89-196-241-dynip.superkabel.de] has joined #scheme 21:04:01 Adamant [~Adamant@c-68-51-145-83.hsd1.ga.comcast.net] has joined #scheme 21:04:01 -!- Adamant [~Adamant@c-68-51-145-83.hsd1.ga.comcast.net] has quit [Changing host] 21:04:01 Adamant [~Adamant@unaffiliated/adamant] has joined #scheme 21:05:26 -!- femtooo [~femto@95-89-196-241-dynip.superkabel.de] has quit [Ping timeout: 240 seconds] 21:06:05 mwolfe [~mwolfe@corona.cornerturn.com] has joined #scheme 21:11:29 schmir [~schmir@p54A90BA1.dip0.t-ipconnect.de] has joined #scheme 21:25:24 lewis1711 [~lewis@125-239-255-244.jetstream.xtra.co.nz] has joined #scheme 21:28:40 -!- schmir [~schmir@p54A90BA1.dip0.t-ipconnect.de] has quit [Remote host closed the connection] 21:31:18 ada2358 [~ada2358@login.ccs.neu.edu] has joined #scheme 21:32:40 -!- zbigniew [~zb@li177-156.members.linode.com] has quit [Ping timeout: 265 seconds] 21:40:16 pdponze [~pdponze@144.85.121.191] has joined #scheme 21:43:01 zbigniew [~zb@li177-156.members.linode.com] has joined #scheme 21:44:13 -!- pdponze [~pdponze@144.85.121.191] has left #scheme 21:53:57 -!- wbooze [~levgue@xdsl-78-35-137-96.netcologne.de] has quit [Remote host closed the connection] 21:54:12 -!- homie [~levgue@xdsl-78-35-137-96.netcologne.de] has quit [Remote host closed the connection] 21:55:50 -!- choas [~lars@p5792C657.dip.t-dialin.net] has quit [Quit: leaving] 21:59:46 -!- groovy2shoes [~guv@unaffiliated/groovebot] has quit [Quit: groovy2shoes] 22:02:45 femtooo [~femto@95-89-196-241-dynip.superkabel.de] has joined #scheme 22:06:10 -!- femtoo [~femto@95-89-196-241-dynip.superkabel.de] has quit [Ping timeout: 255 seconds] 22:08:39 Azuvix [~Azuvix@71-215-25-216.bois.qwest.net] has joined #scheme 22:17:34 josephholsten [~josephhol@216.16.128.242] has joined #scheme 22:18:22 copumpkin [~pumpkin@17.101.89.205] has joined #scheme 22:18:22 -!- copumpkin [~pumpkin@17.101.89.205] has quit [Changing host] 22:18:22 copumpkin [~pumpkin@unaffiliated/pumpkingod] has joined #scheme 22:18:43 is there an srfi for a module system in r5? 22:20:37 -!- pumpkin [~pumpkin@unaffiliated/pumpkingod] has quit [Ping timeout: 255 seconds] 22:25:28 right now I am just using load but it feels weird:P 22:26:40 paxcoder [~steampunk@unaffiliated/paxcoder] has joined #scheme 22:30:39 pdponze [~pdponze@144.85.121.191] has joined #scheme 22:31:03 homie [~levgue@xdsl-78-35-137-96.netcologne.de] has joined #scheme 22:34:16 wbooze [~levgue@xdsl-78-35-137-96.netcologne.de] has joined #scheme 22:43:14 83? 22:44:05 rien: hummm, seems to be withdrawn 22:44:23 I may just add two letter prefixes to top level names like one does in C 22:44:31 if I can't find something 22:44:31 yeah, withdrawn 22:44:56 srfi 83 was a preliminary design of the r6rs module system 22:45:31 load should be enough, no? 22:45:40 module systems are so complex 22:46:08 hmm, how do you avoid namespace clashes then? 22:46:23 since everything would be in the global namespace with load, wouldn't it? 22:46:30 be vewy vewy caweful ;) 22:46:33 lol 22:46:48 I like things to slap me when I'm not careful 22:47:02 though at least gambit has a warnings option, which will tell me if I defined the same symbol twice 22:47:05 you'd like algebraic data types then. they slap hard, though. 22:47:40 rien, algebraic data types don't slap anyone 22:48:35 algebraic data types make me think of algebraic structures in mathematics, though i am guessing they're different 22:48:46 they're related 22:49:41 yeah they do, they help lots 22:50:03 they tell you right away that your code is wrong and refuse to let the compiler do its thing 22:50:12 no, those are type system 22:50:12 until you fix your code 22:50:13 s 22:50:17 oh, well 22:50:37 wait are they those things ocaml? recursive types and all that juicy stuff 22:50:45 it's just that, types minus ADTs = annoying, types + ADTs = useful and helpful 22:50:52 ocaml too 22:50:58 you can have algebraic data types without a type system, and types without adts 22:51:11 oh I never knew that 22:51:15 the first part 22:51:18 also types minus ADTs != java 22:51:31 also, ADT is often used to mean "abstract data type" 22:52:06 it's used to mean both 22:52:10 HtDP defines lots of algebraic data types, without a type system 22:52:11 -!- bweaver [~user@host-68-169-175-225.WISOLT2.epbfi.com] has quit [Quit: ERC Version 5.3 (IRC client for Emacs)] 22:52:29 yes, but it's helpful spell thing out to avoid confusion 22:52:39 -!- dualbus [~dualbus@201.170.71.87.dsl.dyn.telnor.net] has quit [Quit: Goodbye!] 22:52:40 but it's so long :) 22:52:43 scottj [~scott@206.212.250.58] has joined #scheme 22:52:54 give me an example of types - ADT != java 22:53:21 a language, I mean 22:53:51 Are there any good actively developed alternatives to scsh? 22:53:59 steampunkey [~steampunk@78.134.131.131] has joined #scheme 22:54:05 -!- aisa [~aisa@173-10-243-253-Albuquerque.hfc.comcastbusiness.net] has quit [Quit: aisa] 22:54:16 something with a good syntax and lots of builtins for shell scripting 22:54:26 rien, scala is in some ways an example 22:54:38 Typed Racket, which I've developed, is definitely an example 22:55:08 samth: I'll look into it, thanks. 22:55:09 must try out typed racket at some point 22:55:39 i typed racket something I can just #lang and play with? 22:55:41 not sure how I feel about dynamic typing. I don't want it 95% of the time, except for that 5% where i absolutely need it:P 22:55:52 #lang typed/racket 22:55:56 beautiful 22:56:01 that must be dreamy 22:56:25 lewis1711: ... which is the main reason I write very little scheme code. :/ 22:56:40 heh 22:57:13 Obfuscate: you use what? scala? 22:57:41 that's why someone needs to create scheml! (+ 1 2.0) => warning; recieved type float but expression was expected of type int 22:57:54 -!- paxcoder [~steampunk@unaffiliated/paxcoder] has quit [Ping timeout: 260 seconds] 22:58:08 oh I thought scala was sexp based :( 22:58:24 lewis1711, try Typed Racket 22:58:33 how hard would that be? and more importantly, how far is typed racket from that? 22:58:39 I shall 22:58:45 rien: clojure is the lisp on the jvm I think 22:58:51 rien: I wrote a compiler (to llvm) for a somewhat scheme-like language with static types and default immutability (similar to typed-scheme in those respects), among other things. 22:58:57 oh yeah that's right, I always confuse clojure and scala 22:59:18 > (ann (+ 1 2.0) Integer) 22:59:19 stdin::5: Type Checker: Expected Integer, but got Nonnegative-Float in: (+ 1 2.0) 22:59:24 Obfuscate: that's pretty cool:) have a link for it? 22:59:28 Obfuscate: cool 22:59:40 rien, that's how far 22:59:40 Obfuscate: just types don't cut it for me though 22:59:44 like I was mentioning 22:59:53 -!- samth is now known as samth_away 23:00:00 samth: can you make a Maybe datatype? 23:00:13 rien, yes 23:00:16 Obfuscate: I need ADTs or types aren't worth it 23:00:36 lewis1711: Nay, it's not released yet, but I'm writing a game with it and will release the compiler once it's mature (probably the first half of this year). 23:00:38 samth_away: can you define List a = Empty | Cons (List a) ? 23:00:51 rien: ... which type of adt? 23:00:59 Obfuscate: algebraic 23:01:03 Obfuscate: like haskell offers 23:01:07 sweet, make sure to spam me then about it if you remember 23:01:41 as an aside, I am quite enjoying gambit. I can bash out some tight C loops right in C code, then use them in scheme seamlessly. very very nice. 23:01:48 *right in scheme code 23:01:53 rien: I implemented discriminated unions and haskell-style classes (no java-style oop though). 23:02:13 lewis1711: that must be handy 23:02:38 it really is, especially when interfacing with a C graphics library 23:02:44 lewis1711: I'll let the channel know about it when I think it's mature enough, and will ping you if you're around by then (again, assuming I remember). 23:03:04 Loops are the one thing I dislike doing the most in C. 23:03:10 Obfuscate: I guess a good test is, can your type system implemente Maybe? then can it do List? (because it's recursive) then can it allow for printf (because it's tricky to do with ADTs) 23:03:26 I may even replace ruby with it in my project if things go well, though the lack of a module system is still bothering me 23:03:47 Obfuscate: yeah, I much prefer HOF's, but if the thing has to be fast.. 23:04:08 yeah I prefer HOFs over loops in any language where it doesn't look awkward 23:04:24 rien: Yes, yes, and printf should be doable, but I have something different for that. 23:04:43 Obfuscate: well that's cool then 23:04:45 D is quite nice. it has HOFs and C++ speed. they're not as nice as scheme ones, but still pretty good 23:05:10 I'm getting to the point where I can't tolerate any syntax but sexps 23:05:25 lewis1711: Well, if optimizing map/fold is beyond a compiler, I feel it's pretty sad, but in that case, how about just plain tail recursion? 23:05:26 and I've only just started learning scheme 23:05:33 map)((x){return x + 1)([1, 2, 3]); 23:05:50 -!- Riastradh [debian-tor@fsf/member/riastradh] has quit [Ping timeout: 240 seconds] 23:05:50 -!- femtooo [~femto@95-89-196-241-dynip.superkabel.de] has quit [Ping timeout: 240 seconds] 23:05:55 whops, I mean 23:05:56 map!((x){return x + 1) ([1, 2, 3]); 23:06:13 That's pretty ugly, but sure. 23:06:20 Obfuscate: hmmm, well there's no tail recursion in c 23:06:28 yeah, it's not the prettiest 23:06:35 but still very nice for a C-like 23:06:41 lewis1711: Yes, that's why I don't like doing loops in C. ;) 23:06:49 ha 23:07:41 oh that's D?? 23:07:43 looked like ruby 23:07:47 that's pretty good, yeah 23:08:24 Riastradh [debian-tor@fsf/member/riastradh] has joined #scheme 23:08:34 ruby you'd pass a block 23:08:56 some_object.map{|x| x + 1} 23:09:02 (if my memory serves correctly) 23:09:54 yeah that's it 23:10:08 [1,2,3].map{|x| x+1} 23:10:12 -!- bitweiler [~bitweiler@adsl-99-58-93-196.dsl.stl2mo.sbcglobal.net] has quit [Quit: rcirc on GNU Emacs 23.2.1] 23:10:46 I quite like ruby really 23:10:59 ...except the constant use of "end" for blocks 23:11:11 whatwould you rather have instead of end? 23:11:47 gtg guys 23:11:56 -!- rien is now known as rien_home 23:12:42 rien_home: python significant whitespace or C-like {} braces. end looks too much like "actual code" if that makes sense 23:12:49 like a variable or function 23:14:47 mmc [~michal@cs27120227.pp.htv.fi] has joined #scheme 23:20:03 -!- pdponze [~pdponze@144.85.121.191] has left #scheme 23:25:29 is currying useful so as to spare stack? does it help change a recursive function into a loop? 23:36:06 :-/ 23:37:48 huh? are you asking what the point of currying is? 23:39:35 lewis1711: I wouldn't consider that to be a significant complaint, given the prevalence of syntax highlighting in editors (unless you happen to be colorblind). 23:40:15 it's not nice having five lines that just say end:P 23:40:40 How is that different from saying "it's not nice having five lines that just say }" ? 23:41:02 ) is 1/3rd the size, and not as visually distracting 23:41:05 It's a little more verbose, perhaps... 23:41:27 also, you can put all the )))'s on the last line. I guess you could do that with end but you must admit it'd look hideous 23:42:04 Not any more hideous than most of my Erlang code. ;) 23:42:12 ha, not familiar with erlang 23:43:03 hmm, in scheme to do a C style "while" loop, would you just write a procedure that steps through what you want it to do then calls itself at the end? 23:43:09 It's an amusing bastardization of prolog and C that's hellbent on concurrency. 23:43:35 Yep, that's it. 23:44:27 Normally one lambda lifts any mutable values and passes them as parameters, but scheme doesn't require that. 23:44:29 hmm, that wasn't so hard 23:44:42 nah, no mutatation required 23:46:40 lewis1711, yes 23:47:26 it's so you can make all your procedures take only one argument as input, which is how lambda calculus works i think. though you should probably listen to someone else i'm a noob 23:47:33 kilimanjaro [~kilimanja@unaffiliated/kilimanjaro] has joined #scheme 23:48:30 -!- HG` [~HG@xdsl-92-252-120-140.dip.osnanet.de] has quit [Quit: Leaving.] 23:50:42 That's not far off: (forced) currying is used to enable a certain form of laziness, and greatly simplifies dynamic function application. 23:51:02 -!- parcs [~patrick@ool-45741d7d.dyn.optonline.net] has quit [Ping timeout: 240 seconds] 23:52:58 parcs [~patrick@ool-45741d7d.dyn.optonline.net] has joined #scheme 23:54:04 -!- unkanon is now known as rien 23:54:58 lewis1711: yeah python has a nice solution to that problem. but in ruby you can always use {} instead of end 23:57:30 Obfuscate, wha? 23:57:38 you've obfuscated that pretty good 23:59:08 dualbus [~dualbus@201.171.107.254] has joined #scheme