00:02:51 arcfide [n=arcfide@adsl-99-137-200-228.dsl.bltnin.sbcglobal.net] has joined #scheme 00:07:23 -!- bughunter2 [n=j@ip4da4427e.direct-adsl.nl] has left #scheme 00:13:05 orgy_ [n=ratm_@pD9FFEF61.dip.t-dialin.net] has joined #scheme 00:15:10 -!- kniu [n=kniu@CMU-328092.WV.CC.CMU.EDU] has quit [Read error: 60 (Operation timed out)] 00:20:22 jberg [n=johan@229.84-48-210.nextgentel.com] has joined #scheme 00:23:53 -!- saccade__ [n=saccade@BRAIN-AND-COG-THREE-TWELVE.MIT.EDU] has quit [Read error: 60 (Operation timed out)] 00:24:17 AtnNn [n=welcome@modemcable087.62-56-74.mc.videotron.ca] has joined #scheme 00:25:33 saccade__ [n=saccade@BRAIN-AND-COG-THREE-TWELVE.MIT.EDU] has joined #scheme 00:28:57 -!- orgy` [n=ratm_@pD9FFF897.dip.t-dialin.net] has quit [Read error: 101 (Network is unreachable)] 00:31:51 geckosenator [n=sean@71.237.94.78] has joined #scheme 00:32:04 I need to replace a certain character in strings iwth another 00:32:09 like sed 00:37:13 I need a cup of coffee. 00:38:46 why doesn't (= (odd? 1) (odd? 3)) work? 00:39:12 does = only work on integers? 00:39:40 I get ";The object #t, passed as the first argument to integer-equal?, is not the correct type" 00:39:55 = works on numbers only 00:40:40 oh, too bad 00:42:24 -!- orgy_ [n=ratm_@pD9FFEF61.dip.t-dialin.net] has quit [Remote closed the connection] 00:42:47 -!- offby1` is now known as offby1 00:43:12 is there any nice way to express the same idea? 00:43:30 rudybot_: eval (eq? (odd? 1) (odd? 3)) 00:43:31 gnomon: your sandbox is ready 00:43:31 gnomon: ; Value: #t 00:43:48 r5rs eq? 00:43:48 http://www.schemers.org/Documents/Standards/R5RS/HTML/r5rs-Z-H-9.html#%_idx_216 00:43:51 -rudybot_:#scheme- http://tinyurl.com/6hr3jb 00:44:13 oh, nice 00:44:15 rudybot_: eval (and (odd? 3) (odd? 5)) 00:44:16 mejja: your sandbox is ready 00:44:16 mejja: ; Value: #t 00:44:50 mejja, the '=' thing is more of a XOR operation than an AND, though. 00:46:12 More like eqv if you ask me... 00:46:32 -!- rudybot_ is now known as rudybot 00:50:16 v__ [n=v@220.202.62.2] has joined #scheme 00:50:24 kniu [n=kniu@CMU-328092.WV.CC.CMU.EDU] has joined #scheme 00:51:40 rudybot: eval (let ((inimino (lambda (x y) (eq? (odd? x) (odd? y)))) (mejja (lambda (x y) (and (odd? x) (odd? y))))) (map (lambda (nums) (list (apply inimino nums) (apply mejja nums))) '((3 3) (3 4) (4 3) (4 4)))) 00:51:41 gnomon: your sandbox is ready 00:51:41 gnomon: ; Value: ((#t #t) (#f #f) (#f #f) (#t #f)) 00:52:15 mejja, the AND version produces different results than the EQ? version if both values are even. 00:54:26 -!- bombshelter13__ [n=bombshel@209-161-239-9.dsl.look.ca] has quit [Read error: 113 (No route to host)] 00:54:48 benny` [n=benny@i577A008F.versanet.de] has joined #scheme 00:55:12 Yes yes yes... 00:56:00 wow that's weird gnomon 01:04:27 is there a standard string function that splits strings at space and comma? 01:04:32 string-split works at space 01:07:24 how standard do you want? srfi-13? 01:07:39 i would just write it by hand, or use plt 01:08:21 -!- Nshag [i=user@Mix-Orleans-106-4-53.w193-248.abo.wanadoo.fr] has quit ["Quitte"] 01:10:34 geckosenator: Normally, any SPLIT function will allow you to do that. 01:10:50 what exactly are you trying to do? 01:11:01 -!- benny [n=benny@i577A1109.versanet.de] has quit [Read error: 113 (No route to host)] 01:11:10 geckosenator: SRFI-13 has STRING-TOKENIZE, and I believe Oleg has some code for a STRING-SPLIT that handles lists of characters instead of using Character Sets from SRFI-14. 01:13:26 (regexp-split #rx" *, *" string) 01:13:31 that's how PLT does it... 01:14:46 or, if you're trying to parse some csv-like file: (require (planet neil/csv:1:5)) 01:14:51 -!- saccade__ [n=saccade@BRAIN-AND-COG-THREE-TWELVE.MIT.EDU] has quit ["This computer has gone to sleep"] 01:17:31 jao [n=jao@cpe-75-84-114-170.socal.res.rr.com] has joined #scheme 01:20:44 tabe [n=tabe@210.188.204.133] has joined #scheme 01:24:38 wrldpc [n=worldpea@pool-173-48-214-204.bstnma.fios.verizon.net] has joined #scheme 01:24:43 -!- RageOfThou [n=RageOfTh@92.36.213.19] has quit [Read error: 110 (Connection timed out)] 01:30:11 spork [n=John@76-217-6-100.lightspeed.irvnca.sbcglobal.net] has joined #scheme 01:30:24 -!- meanburrito920_ [n=John@76-217-6-100.lightspeed.irvnca.sbcglobal.net] has quit ["has been attacked by a grue"] 01:30:37 -!- spork is now known as Guest62032 01:30:39 -!- Guest62032 [n=John@76-217-6-100.lightspeed.irvnca.sbcglobal.net] has quit [Client Quit] 01:32:23 arcfide: oh 01:32:29 arcfide: thanks 01:33:32 geckosenator: What implementation are you using? 01:33:41 neilv: There is a portable CSV parser available. 01:34:09 arcfide: mine is portable. well, not at the moment 01:34:11 I believe you wrote it, right? 01:34:26 Yeah, You. 01:34:53 Granted, the copy I have is from 2005. 01:35:04 i'm temporarily not distributing the r5rs packagings. migrating to a new packaging setup 01:35:43 yes, you want the 2005 version right now, unless you are using plt 4. http://www.neilvandyke.org/csv-scheme/#(part._.History) 01:35:59 Bah, why not? :-) 01:37:03 i used to develop my files in r5rs, and then have a script to turn those into plt modules. now i develop in plt modules and will have translators do r5rs and different implementations 01:37:48 brweber2 [n=brweber2@ip68-100-65-167.dc.dc.cox.net] has joined #scheme 01:41:32 neilv: Well, hup-to, at least make some R6RS modules. :-) 01:41:39 Sorry, *libraries*. 01:42:14 someone uses r6rs? 01:42:43 *arcfide* chuckles. 01:42:45 it's on my list, but i have some new xml and web stuff to push out first 01:42:51 Not yet, but I'll probably have to in the coming future. 01:43:51 arcfide: chicken 01:44:19 i'm trying to do two things: push out some stuff i've been working on, and drum up consulting opportunities so i can pay rent and food 01:44:31 geckosenator: There will be plenty of eggs that you should check for things that you want to do. 01:44:53 so the focus is getting out new web stuff on plt, while retaining portability as much as possible 01:44:58 brb 01:48:17 arcfide: yeah 01:49:48 -!- Khisanth [n=Khisanth@68.160.211.192] has quit [Read error: 110 (Connection timed out)] 01:54:31 Khisanth [n=Khisanth@pool-151-205-119-205.ny325.east.verizon.net] has joined #scheme 02:13:58 -!- davidad [n=me@RANDOM-FOUR-SEVENTY-FOUR.MIT.EDU] has quit [Read error: 110 (Connection timed out)] 02:14:02 -!- AtnNn [n=welcome@modemcable087.62-56-74.mc.videotron.ca] has quit ["foobar"] 02:15:53 new web stuff? 02:16:25 davidad [n=me@dhcp-18-111-16-64.dyn.mit.edu] has joined #scheme 02:17:02 neilv: I used your CSV parser btw. Add inotifywait to yet another of its many utilities. 02:17:39 scary 02:28:11 Mr_Awesome [n=eric@isr5452.urh.uiuc.edu] has joined #scheme 02:34:06 -!- dysinger [n=tim@cpe-75-80-200-182.hawaii.res.rr.com] has quit [] 02:36:29 -!- nothingHappens [n=nothingH@12-226-78-3.client.mchsi.com] has quit [Remote closed the connection] 02:36:50 -!- hornbeck [n=hornbeck@70.245.102.16] has quit ["Leaving..."] 02:40:48 dysinger [n=tim@cpe-75-80-200-182.hawaii.res.rr.com] has joined #scheme 02:44:24 rcassidy [n=rcassidy@155.33.149.150] has joined #scheme 02:45:40 how would i go about converting a symbol to a function name? 02:46:27 say i had the symbol 'append, and wanted to call the function append by somehow manipulating said symbol 02:46:36 you would install common lisp 02:47:20 you could try "eval", but nobody would be able to look you in the eye again 02:48:28 alright, understood, i'll code around it indirectly. wishful thinking on my part for thinking it would be so simple 02:48:30 thank you! 02:49:43 there are probably better ways to solve the bigger problem 02:56:26 -!- v__ [n=v@220.202.62.2] has quit ["Leaving"] 02:57:05 -!- kilimanjaro [n=kilimanj@70.116.95.163] has quit ["Leaving"] 02:59:13 -!- mejja [n=user@c-4bb5e555.023-82-73746f38.cust.bredbandsbolaget.se] has quit ["ChatZilla 0.9.84-rdmsoft [XULRunner 1.8.1.19/2008110600]"] 03:00:25 -!- timchen1` is now known as nasloc__ 03:05:03 saccade_ [n=saccade@65-78-24-47.c3-0.smr-ubr1.sbo-smr.ma.cable.rcn.com] has joined #scheme 03:12:42 tuor [n=greg@cpe-24-27-108-196.tx.res.rr.com] has joined #scheme 03:16:26 hadronzoo [n=hadronzo@ppp-70-247-162-27.dsl.rcsntx.swbell.net] has joined #scheme 03:26:30 -!- tuor [n=greg@cpe-24-27-108-196.tx.res.rr.com] has quit [] 03:33:29 so, um... https://synx.us.to/code/scheme/ff3.ss 03:33:59 In case anyone wanted to pretend to be Firefox during get-pure-port :3 03:34:48 refusenik [n=refuseni@pool-71-246-119-118.nycmny.east.verizon.net] has joined #scheme 03:37:36 -!- hark [n=strider@hark.slew.org] has quit ["leaving"] 03:38:06 -!- MichaelRaskin_ [n=raskin@gwh-1-177-mytn23k1.ln.rinet.ru] has quit [Remote closed the connection] 03:42:00 npe [i=npe@naist-wavenet126-102.naist.jp] has joined #scheme 03:50:21 rcassidy: is this homework, or not? 03:50:55 if i were a professor, i would give trick question homework 03:51:13 "1. write a non-hygienic macro" 03:51:37 the only winning move is not to play 03:51:45 rcassidy: It is possible to do this in most Schemes, but chances are this is not what you want. 03:51:48 "install common lisp", I think, fits the bill as an answer to a trick question 03:52:04 it's an open-ended project, so technically, yes it is homework, but the homework is "test out this new teachpack" 03:52:22 since we're in PLT scheme 03:52:41 it's an extra seminar, this question i have isn't like out of a problem set 03:52:46 just something we've run into 03:53:25 Then instead of giving you code, I will say that one way to solve it is by creating a map of symbols to procedures, then exploiting that 03:54:08 In other words, don't rely on the Scheme runtime to do it for you, as you might in CL 03:54:30 Well, strictly speaking, you probably wouldn't rely on the Scheme runtime in CL. Ahem. 03:55:04 -!- brweber2 [n=brweber2@ip68-100-65-167.dc.dc.cox.net] has quit [] 03:55:36 It is also possible to utilize the macro system to do it unhygenically. 03:55:52 yeah, that's the solution we have implemented now, a map of symbols to function calls. we need to be inventive with our code, we're coding a game in client-server style 03:56:11 and packages that can be sent across the network protocol have to be s-expressions, which means no structs or images. 03:56:38 arcfide: huh? 03:57:02 so it would be lovely to transfer from (list 'rectangle 50 50 'solid 'red) into (rectangle 50 50 'solid 'red) in runtime but right now we've just got that mapped out 03:57:08 eli: What was wrong? 03:57:17 rcassidy: That's the way to do it. Doing a generic eval or toplevel symbol lookup is dangerous, as an attacker might run arbitrary code. 03:57:18 rcassidy: It's possible in PLT to use a namespace, which is just that: a mapping from a symbol to a function. 03:57:35 arcfide: How do you suggest doing it with a macro? 03:57:57 rcassidy: But you just described why you don't want that (or any other form of `eval'). 03:58:10 right 03:58:20 rcassidy: You wouldn't want to run random function because the input line had them. 03:58:25 eli: datum->syntax, sorry, I said macro system, in which Iw as including syntax manipulations like that, or the defmacro things that some other systems I have seen can do it. 03:58:42 exactly, good call, so we should stick to mapping strict boundaries anyway 03:58:58 eli: But obviously that is the wrong way to go here. 03:59:08 arcfide: No, that wouldn't work without being able to run `eval' on the result. 03:59:31 hornbeck [n=hornbeck@70.245.102.16] has joined #scheme 04:00:45 Well, you may be able to restrict your eval or namespace to contain specific bindings only, ... but writing a little interpreter, as you've effectively done, is assuredly the way to go. 04:01:03 And it's totally portable. 04:01:45 eli and zbigniew: thank you! 04:01:52 and i will look up namespaces because they sound interesting 04:02:07 rcassidy: There's not that much. 04:02:27 rcassidy: It's pretty similar to a hash table that maps names to values. 04:02:40 The interesting stuff goes well beyond that. 04:02:49 ah, that's cool. 04:02:52 eno__ [n=eno@adsl-70-137-131-24.dsl.snfc21.sbcglobal.net] has joined #scheme 04:03:07 If you want a restricted form of evaluation, lookup the documentation for the sandbox library. 04:03:37 will do 04:03:47 rudybot: sandbox 04:03:47 zbigniew: eh? Try "rudybot: help". 04:04:01 incubot: canadian bacon 04:04:04 (if (want-bacon? luxy) (display "why are you here, then"?)) 04:04:31 rudybot: eval (require scheme/sandbox) 04:04:32 eli: your scheme sandbox is ready 04:04:39 rudybot: doc make-evaluator 04:04:44 eli: http://docs.plt-scheme.org/reference/Sandboxed_Evaluation.html#(def._((lib._scheme%2Fsandbox..ss)._make-evaluator)) 04:05:26 Any sufficiently smart compiler will preemptively substitute #t for (want-bacon? self) 04:05:43 yes, we call that "bacon-folding" 04:05:47 -!- rcassidy [n=rcassidy@155.33.149.150] has quit [] 04:06:04 incubot: it comes in handy when the skillet is small 04:06:07 well, for once Scheme and other Lisps tend to be verbose when writing "real" code. 04:06:39 i wonder if that's a xah-ism... 04:07:00 Huh. It does have a certain rare scent about it. 04:07:08 incubot: xahlee 04:07:11 um, now try bar quux zot . Also, #emacs is a more appropriate place for elisp discussion than #scheme. 04:08:51 breily_ [n=breily@173.15.192.254] has joined #scheme 04:09:30 08.03.01 12:45:55 emma: well, for once Scheme and other Lisps tend to be verbose when writing "real" code. 04:09:43 whoa 04:09:54 And no, that compiler won't pass in Israel. 04:09:56 Dude. 04:10:02 tjafk2 [n=timj@e176200023.adsl.alicedsl.de] has joined #scheme 04:10:11 damn... my dreams are shattered 04:10:24 spork [n=John@76-217-6-100.lightspeed.irvnca.sbcglobal.net] has joined #scheme 04:10:32 Man, I've had Pesach wrong all these years. 04:10:33 *eli* doesn't get what's so great about bacon anyway 04:10:51 -!- spork is now known as Guest74634 04:11:53 i bet this rindolf chap is a xah sockpuppet 04:11:57 Francis? 04:12:01 Kevin? 04:12:07 Bueller? 04:12:16 Red eyes? 04:13:32 No. 04:13:37 12:33:23 --- join: rindolf (n=shlomi@bzq-219-139-216.static.bezeqint.net) joined #scheme 04:13:46 vs 04:13:48 13:18:35 --- join: xahlee (n=xahlee@adsl-69-236-73-81.dsl.pltn13.pacbell.net) joined #scheme 04:14:27 A different flavor of troll. Okay. 04:14:36 *Daemmerung* resolves to troll moar 04:14:54 ah, but rindolf was in #scheme with emma, who was in #emacs with offby1, who was in #elisp with xah lee, who was in footloose with ... 04:15:07 The candlestick! In the conservatory!! 04:15:21 With the Professor Plum! 04:15:25 -!- eno [n=eno@nslu2-linux/eno] has quit [Read error: 110 (Connection timed out)] 04:15:32 *foof* never trusted that candlestick 04:15:35 incubot: the time to get a clue is now 04:15:38 no clue. 04:15:47 He showed his true colors in Beauty and the Beast. 04:15:48 incubot wins again. 04:16:27 oh, jerry orbach, why did you have to leave us... 04:16:58 -!- kniu [n=kniu@CMU-328092.WV.CC.CMU.EDU] has quit [Read error: 110 (Connection timed out)] 04:18:03 Holy smokes! Xah Lee was in Footloose!? That explains it! 04:18:13 -!- breily [n=breily@173.15.192.254] has quit [Read error: 110 (Connection timed out)] 04:18:22 The more you know. (tm) 04:18:29 The less you think(R). 04:18:53 incubot: please have the last word 04:18:54 Knowing is half the battle! 04:18:55 they already have, I'm trying to get the word out however. 04:19:09 Even incubot can't save us now. 04:19:19 *Daemmerung* tries a Hail Mary ploy 04:19:26 Hey, Kool-Aid!! 04:19:33 minion: chant 04:19:34 MORE YOU 04:19:57 Is there a unicode character for a space that has the same width as a numeral? 04:20:04 When one considers the size of the Kool-Aid mascot, I think minion is right on. 04:20:19 HFCS for the win. 04:20:42 kniu [n=kniu@DA-YU.RES.CMU.EDU] has joined #scheme 04:21:08 eli: do all numerals have the same width in a variable width font? 04:21:08 -!- Guest74634 [n=John@76-217-6-100.lightspeed.irvnca.sbcglobal.net] has quit ["has been attacked by a grue"] 04:21:31 meanburrito920_ [n=John@76-217-6-100.lightspeed.irvnca.sbcglobal.net] has joined #scheme 04:21:36 synx: In most fonts, I think. 04:22:48 eli: U+2007 FIGURE SPACE, possibly 04:23:20 see http://www.cs.tut.fi/~jkorpela/chars/spaces.html 04:24:19 "Lisp" doesn't rhyme with jack. Having a hell of a time with this tortured "Footloose" parody. 04:24:38 zbigniew: Thanks. 04:24:40 (It rhymes with the town of "Twisp" just down valley, but that's little help.) 04:25:03 crisp, wisp 04:25:43 http://www.rhymezone.com/r/rhyme.cgi?Word=lisp&typeofrhyme=perfect 04:25:55 you've got the gisp of it 04:26:09 -!- tjafk1 [n=timj@e176208163.adsl.alicedsl.de] has quit [Read error: 110 (Connection timed out)] 04:27:09 just don't make "lithp" jokes. i once got a very offended letter from a cs prof whose child had a lisp 04:27:33 don't you mean a c-eth prof? 04:27:46 neilv, what did the prof thay? 04:28:16 i am pained by the insensitivity 04:28:18 THAT'S NOT FUNNY 04:28:29 that's thick. 04:28:36 -!- gweiqi [n=greg@69.120.126.163] has left #scheme 04:28:40 Daemmerung: it's funny if done in a Daffy Duck voice. 04:28:55 thuffering thuccotash. 04:28:56 it just never occurred to me. but i suppose if you grew up being made fun of, you wouldn't think it was funny 04:29:17 I don't know about that. I still laugh at octopus jokes. 04:29:26 Long have I been mocked for my Brobdignagian e-penis. It is true. 04:30:07 Daemmerung, that's it - I'm done. Here are your honourary winnings: contents, internet, one. 04:30:26 Don't you mean 'Lilliputian'? 04:33:12 -!- bohanlon [n=bohanlon@pool-71-184-223-212.bstnma.fios.verizon.net] has quit ["I fear that I must depart for now."] 04:36:46 kilimanjaro [n=kilimanj@70.116.95.163] has joined #scheme 04:40:11 "Danny is responsible for suggesting that the aliens abduct cows" -- Acknowledgements 04:41:26 finally, sanity returns 04:44:35 arcfide pasted "Get your eye-bandages ready" at http://paste.lisp.org/display/77764 04:44:54 eli: ^^^, the above seems to work for at least a subset of possible expressions. 04:45:14 eli: It allows you to pass a symbol to a syntax and evaluate the procedure associated with it without using eval. 04:45:21 This is probably not portable. 04:45:31 It also is probably broken in all sorts of ways. 04:45:43 This is just a quick attempt at a concept. 04:48:44 Example usage? 04:48:59 (sym-app 'vector '(1 2 3)) 04:49:22 now 2 parameters! 04:49:24 (sym-app 'vector '(1 2 3 vector)). 04:49:25 MichaelRaskin_ [n=raskin@213.171.48.239] has joined #scheme 04:49:48 arcfide: how about (let ([plus '+]) (sym-app plus '(1 2 3)))? 04:49:49 jlongster [n=user@c-68-59-187-95.hsd1.tn.comcast.net] has joined #scheme 04:49:57 so compile-time only with literal symbols? 04:50:59 That version, yeah, basically. 04:51:06 or for that matter, (sym-app (read) '(1 2 3)) 04:51:07 arcfide: I can't tell what is it exactly that you're doing there, but if you require a quoted literal, then it's much easier to implement. (As easy as it is useless.) 04:51:10 eli: Of course that won't work in this example. 04:51:11 arcfide: that datum->syntax #'_ wont work 04:51:13 ever 04:51:28 arcfide: Then see what I just said. 04:51:36 eli: Yes. 04:51:51 leppie: Sure it does, if you have a system that's weird like that. :-) 04:51:58 rudybot: eval (define-syntax-rule (sym-app 'sym '(arg ...)) (sym arg ...)) 04:51:58 eli: error: eval:1:34: define-syntax-rule: variable used twice in pattern at: quote in: (_ (quote sym) (quote (arg ...))) 04:52:04 In this instance, I was being very lazy. 04:52:26 rudybot: eval (define-syntax sym-app (syntax-rules (quoye) [(_ 'sym '(arg ...)) (sym arg ...)])) 04:52:26 eli: error: eval:1:54: _: variable used twice in pattern at: quote in: (_ (quote sym) (quote (arg ...))) 04:52:35 rudybot: eval (define-syntax sym-app (syntax-rules (quote) [(_ 'sym '(arg ...)) (sym arg ...)])) 04:52:44 rudybot: eval (sym-app '+ '(1 2 3)) 04:52:44 eli: ; Value: 6 04:52:46 no, but the semantic is different, it is as if you are insert the variable right there, iow using any newly created arb syntax 04:53:07 arcfide: What does your macro do over that? 04:53:48 eli: I'm sorry, over what? You mean, what does (sym-app '+ '(1 2 3)) do? 04:54:15 What does your `sym-app' do that the above version I wrote does not. 04:54:26 eli: Oh, you mean what does my macro do that the above doesn't? Probably nothing. :-) 04:55:08 OK. So, `eval' or nothing. 04:55:29 North from here they'd probably say "`eval' or die". 04:58:54 eval; die if $@ 05:04:43 -!- arcfide [n=arcfide@adsl-99-137-200-228.dsl.bltnin.sbcglobal.net] has quit ["Bed Time."] 05:16:54 Daemmerung: http://www.youtube.com/watch?v=-wG0-vJJDf8 05:22:03 klutometis: you know, I priced the Steyr HS 50 this winter, but decided to stand down. Too much post-election paranoia driving up prices. Plus, I'm not shooting enough what I already have. Saving for a piano instead. 05:24:12 and, in time of need, you'll have an ample supply of bowstrings 05:24:38 For garroting the ninja of opposing clans. Yes. 05:28:38 ah, the infamous  technique 05:28:57 sometimes popularly known as 'tinkling the ivories of death' 05:29:36 huh? 05:29:49 zbigniew: where is that from? 05:30:05 native chinese speaker, don't ruin my moment of glory 05:30:09 tinkling? 05:30:10 haha 05:30:26 foof knows japanese, he could read it too! 05:30:53 "cry of the dead elephants tusk" would be better 05:31:05 foof: bravo, good translation! 05:31:25 Is that a Chinese expression? 05:31:29 foof: not that i know of 05:31:41 "tinkling the ivories" often leads to yellowish piano keys. And an acrid smell. Not sure why. 05:31:42 -!- Kusanagi [n=Lernaean@unaffiliated/kusanagi] has quit [] 05:31:47 *Daemmerung* eyes the cats accusingly 05:32:12 Kusanagi [n=Lernaean@unaffiliated/kusanagi] has joined #scheme 05:32:55 -!- Kusanagi [n=Lernaean@unaffiliated/kusanagi] has quit [Client Quit] 05:32:56 foof: i first parsed it as, 'dead elephant, tooth rings (makes a sound)', but your intepretation makes sense too 05:33:03 eno [n=eno@nslu2-linux/eno] has joined #scheme 05:33:19 i have *no idea* what that means, that's why i asked where zbigniew got that from 05:33:47 Oh wait, are we talking about pianos? That would make sense, sort of. 05:33:52 it means 'tinkling the ivories of death'--just relax and enjoy it 05:33:53 I am so going to name something "Cry of the Dead Elephant's Tusk." 05:33:57 ahh 05:34:19 foof: that's clever! 05:34:48 Daemmerung: too late, already took it for my next solo piano album 05:35:01 Poignant. 05:36:06 Hey, anyone here interested in fixing Usenet? 05:36:13 Nope. 05:36:25 The same way we fixed Chernobyl. Sure. 05:36:45 FUKOVVVVV 05:37:10 I heard the sunset over Usenet in Kiev was an iridescent green 05:37:18 I say we take off and nuke the entire site from orbit. 05:37:27 -!- eno__ [n=eno@adsl-70-137-131-24.dsl.snfc21.sbcglobal.net] has quit [Read error: 104 (Connection reset by peer)] 05:37:38 Really though all these PHP BBSes are seriously cramping my style. 05:37:48 They don't communicate or synchronize with each other. 05:38:06 And they only happened because of certain unfortunate properties about Usenet that people couldn't deal with. 05:39:21 there are so many things that are wrong with the architecture of computer systems today 05:39:42 Nothing that can't be fixed by a judicious application of atomics. 05:40:31 I try to see those things as opportunities to be fixed more than things that are wrong. 05:40:33 "This calls for a subtle combination of psychology and extreme violence" 05:41:34 zbigniew: https://synx.us.to/image/62a3/jpeg/849849849849846516315464.jpg 05:41:35 refusenik_ [n=refuseni@pool-71-246-119-118.nycmny.east.verizon.net] has joined #scheme 05:42:02 This Connection is Untrusted 05:42:13 Can you put it on Gopher? 05:43:20 -!- refusenik [n=refuseni@pool-71-246-119-118.nycmny.east.verizon.net] has quit [Read error: 110 (Connection timed out)] 05:44:32 Kusanagi [n=Lernaean@unaffiliated/kusanagi] has joined #scheme 05:46:54 -!- meanburrito920_ [n=John@76-217-6-100.lightspeed.irvnca.sbcglobal.net] has quit [Remote closed the connection] 05:47:04 Can you tunnel Gopher over SSL? 05:47:23 OK, I saw it. Very apropos, even though I was thinking of an old TV show. 05:47:57 It's a 6 page comic. <3 05:48:00 You can tunnel anything over SSL. 05:48:20 Yes, but can /you/ tunnel gopher over SSL. 05:48:52 Who knows. I barely got it working over TCP. 05:51:23 Just use HTTP I already got that set up. 05:51:36 Oh you did. 05:52:46 Daemmerung: yeah, i noticed that herd-like psychosis at a recent show; saving for a steinway B? 05:53:11 -!- breily_ [n=breily@173.15.192.254] has quit [Read error: 110 (Connection timed out)] 05:56:38 -!- refusenik_ [n=refuseni@pool-71-246-119-118.nycmny.east.verizon.net] has quit [Read error: 104 (Connection reset by peer)] 05:56:45 refusenik [n=refuseni@pool-71-246-119-118.nycmny.east.verizon.net] has joined #scheme 05:57:51 Axioplase [n=Pied@fortigate.kb.ecei.tohoku.ac.jp] has joined #scheme 05:58:29 -!- jberg [n=johan@229.84-48-210.nextgentel.com] has quit ["Lost terminal"] 06:05:40 -!- hadronzoo [n=hadronzo@ppp-70-247-162-27.dsl.rcsntx.swbell.net] has quit [Read error: 110 (Connection timed out)] 06:09:29 -!- neilv [n=user@dsl092-071-029.bos1.dsl.speakeasy.net] has quit ["Leaving"] 06:11:34 Daemmerung: Thanks 06:13:37 -!- refusenik [n=refuseni@pool-71-246-119-118.nycmny.east.verizon.net] has quit [Read error: 110 (Connection timed out)] 06:16:07 -!- Mr-Cat [n=Mr-Cat@bahirkin1507.static.corbina.ru] has quit ["    (xchat 2.4.5  )"] 06:27:00 refusenik [n=refuseni@user-1087rp3.cable.mindspring.com] has joined #scheme 06:33:49 McManiaC [n=nils@stud247045.studentenheim.uni-tuebingen.de] has joined #scheme 06:34:43 refusenik_ [n=refuseni@user-1087rp3.cable.mindspring.com] has joined #scheme 06:34:50 -!- refusenik [n=refuseni@user-1087rp3.cable.mindspring.com] has quit [Read error: 104 (Connection reset by peer)] 06:34:50 -!- refusenik_ is now known as refusenik 06:35:00 mmc [n=mima@esprx02x.nokia.com] has joined #scheme 06:40:17 eno__ [n=eno@adsl-70-137-148-237.dsl.snfc21.sbcglobal.net] has joined #scheme 06:40:24 -!- bzzbzz [n=franco@modemcable140.105-81-70.mc.videotron.ca] has quit ["Lost terminal"] 06:40:50 ecraven [n=nex@140.78.42.103] has joined #scheme 06:43:54 -!- cracki [n=cracki@sglty.kawo2.RWTH-Aachen.DE] has quit ["The funniest things in my life are truth and absurdity."] 06:45:54 -!- yosafbridge [n=yosafbri@ludios.net] has quit ["Coyote finally caught me"] 06:46:07 yosafbridge [n=yosafbri@ludios.net] has joined #scheme 06:48:45 -!- jlongster [n=user@c-68-59-187-95.hsd1.tn.comcast.net] has quit ["ERC Version 5.2 (IRC client for Emacs)"] 06:49:46 refusenik_ [n=refuseni@user-1087rp3.cable.mindspring.com] has joined #scheme 06:49:49 -!- refusenik [n=refuseni@user-1087rp3.cable.mindspring.com] has quit [Read error: 104 (Connection reset by peer)] 06:49:49 -!- refusenik_ is now known as refusenik 06:50:50 -!- eno [n=eno@nslu2-linux/eno] has quit [Read error: 110 (Connection timed out)] 06:51:47 -!- refusenik [n=refuseni@user-1087rp3.cable.mindspring.com] has quit [Read error: 60 (Operation timed out)] 07:01:36 morning 07:04:52 refusenik [n=refuseni@user-1087rp3.cable.mindspring.com] has joined #scheme 07:16:39 mejja [n=user@c-4bb5e555.023-82-73746f38.cust.bredbandsbolaget.se] has joined #scheme 07:19:57 refusenik_ [n=refuseni@user-1087rp3.cable.mindspring.com] has joined #scheme 07:19:58 -!- saccade_ [n=saccade@65-78-24-47.c3-0.smr-ubr1.sbo-smr.ma.cable.rcn.com] has quit ["This computer has gone to sleep"] 07:20:41 -!- z` is now known as tltstc 07:21:31 -!- refusenik [n=refuseni@user-1087rp3.cable.mindspring.com] has quit [Read error: 110 (Connection timed out)] 07:21:35 hotblack23 [n=jh@p5B055614.dip.t-dialin.net] has joined #scheme 07:27:36 -!- kilimanjaro [n=kilimanj@70.116.95.163] has quit ["Leaving"] 07:35:06 Mr-Cat [n=Miranda@hermes.lanit.ru] has joined #scheme 07:35:10 refusenik [n=refuseni@user-1087rp3.cable.mindspring.com] has joined #scheme 07:36:39 -!- refusenik_ [n=refuseni@user-1087rp3.cable.mindspring.com] has quit [Read error: 110 (Connection timed out)] 07:50:07 refusenik_ [n=refuseni@user-1087rp3.cable.mindspring.com] has joined #scheme 07:50:10 -!- refusenik [n=refuseni@user-1087rp3.cable.mindspring.com] has quit [Read error: 104 (Connection reset by peer)] 07:50:11 -!- refusenik_ is now known as refusenik 07:53:30 -!- refusenik [n=refuseni@user-1087rp3.cable.mindspring.com] has quit [Read error: 60 (Operation timed out)] 08:02:26 -!- raikov [n=igr@203.181.243.11] has quit [Remote closed the connection] 08:02:42 -!- wrldpc [n=worldpea@pool-173-48-214-204.bstnma.fios.verizon.net] has quit [] 08:04:12 -!- dysinger [n=tim@cpe-75-80-200-182.hawaii.res.rr.com] has quit [] 08:05:25 refusenik [n=refuseni@user-1087rp3.cable.mindspring.com] has joined #scheme 08:07:50 dysinger [n=tim@cpe-75-80-200-182.hawaii.res.rr.com] has joined #scheme 08:20:23 refusenik_ [n=refuseni@user-1087rp3.cable.mindspring.com] has joined #scheme 08:21:55 -!- refusenik [n=refuseni@user-1087rp3.cable.mindspring.com] has quit [Read error: 110 (Connection timed out)] 08:35:24 -!- jso [n=user@151.159.200.8] has quit [Remote closed the connection] 08:35:27 refusenik [n=refuseni@user-1087rp3.cable.mindspring.com] has joined #scheme 08:39:10 -!- refusenik_ [n=refuseni@user-1087rp3.cable.mindspring.com] has quit [Read error: 110 (Connection timed out)] 08:39:39 hkBst [n=hkBst@gentoo/developer/hkbst] has joined #scheme 08:45:48 -!- MichaelRaskin_ [n=raskin@213.171.48.239] has quit [Remote closed the connection] 08:49:31 Riastrad1 [n=rias@pool-141-154-233-226.bos.east.verizon.net] has joined #scheme 08:50:36 refusenik_ [n=refuseni@user-1087rp3.cable.mindspring.com] has joined #scheme 08:51:52 -!- refusenik [n=refuseni@user-1087rp3.cable.mindspring.com] has quit [Read error: 110 (Connection timed out)] 08:53:11 -!- refusenik_ [n=refuseni@user-1087rp3.cable.mindspring.com] has quit [Read error: 60 (Operation timed out)] 08:56:54 orgy` [n=ratm_@pD9FFC124.dip.t-dialin.net] has joined #scheme 09:00:59 -!- Riastradh [n=rias@pool-151-203-235-220.bos.east.verizon.net] has quit [Read error: 110 (Connection timed out)] 09:05:42 refusenik [n=refuseni@user-1087rp3.cable.mindspring.com] has joined #scheme 09:10:15 breily [n=breily@173.15.192.254] has joined #scheme 09:14:10 -!- qebab_ is now known as qebab 09:18:11 geckosen1tor [n=sean@71.237.94.78] has joined #scheme 09:18:14 -!- geckosenator [n=sean@71.237.94.78] has quit [Read error: 104 (Connection reset by peer)] 09:19:04 MichaelRaskin_ [n=raskin@213.171.48.239] has joined #scheme 09:20:48 refusenik_ [n=refuseni@user-1087rp3.cable.mindspring.com] has joined #scheme 09:25:42 -!- refusenik [n=refuseni@user-1087rp3.cable.mindspring.com] has quit [Read error: 110 (Connection timed out)] 09:30:18 -!- elmex [i=elmex@ist.m8geil.de] has quit [Remote closed the connection] 09:30:23 elmex [i=elmex@ist.m8geil.de] has joined #scheme 09:36:00 refusenik [n=refuseni@user-1087rp3.cable.mindspring.com] has joined #scheme 09:37:04 -!- MichaelRaskin_ [n=raskin@213.171.48.239] has quit [Read error: 104 (Connection reset by peer)] 09:38:13 -!- refusenik_ [n=refuseni@user-1087rp3.cable.mindspring.com] has quit [Read error: 110 (Connection timed out)] 09:38:14 MichaelRaskin_ [n=raskin@213.171.48.239] has joined #scheme 09:49:02 -!- breily [n=breily@173.15.192.254] has quit [Read error: 104 (Connection reset by peer)] 09:50:58 refusenik_ [n=refuseni@user-1087rp3.cable.mindspring.com] has joined #scheme 09:53:17 -!- refusenik [n=refuseni@user-1087rp3.cable.mindspring.com] has quit [Read error: 110 (Connection timed out)] 09:54:07 -!- geckosen1tor [n=sean@71.237.94.78] has quit [Read error: 110 (Connection timed out)] 10:06:02 refusenik [n=refuseni@user-1087rp3.cable.mindspring.com] has joined #scheme 10:06:09 -!- refusenik_ [n=refuseni@user-1087rp3.cable.mindspring.com] has quit [Read error: 104 (Connection reset by peer)] 10:11:41 seamus-android [n=user@cpc3-brig3-0-0-cust124.brig.cable.ntl.com] has joined #scheme 10:18:55 elias` [n=me@cs78208074.pp.htv.fi] has joined #scheme 10:21:12 refusenik_ [n=refuseni@user-1087rp3.cable.mindspring.com] has joined #scheme 10:23:40 -!- refusenik [n=refuseni@user-1087rp3.cable.mindspring.com] has quit [Read error: 110 (Connection timed out)] 10:26:18 -!- Axioplase [n=Pied@fortigate.kb.ecei.tohoku.ac.jp] has quit ["leaving"] 10:30:05 refusenik [n=refuseni@user-1087rp3.cable.mindspring.com] has joined #scheme 10:30:08 -!- refusenik_ [n=refuseni@user-1087rp3.cable.mindspring.com] has quit [Read error: 104 (Connection reset by peer)] 10:30:18 -!- MichaelRaskin_ [n=raskin@213.171.48.239] has quit [Read error: 104 (Connection reset by peer)] 10:36:23 refusenik_ [n=refuseni@user-1087rp3.cable.mindspring.com] has joined #scheme 10:39:06 -!- Khisanth [n=Khisanth@pool-151-205-119-205.ny325.east.verizon.net] has quit [Read error: 110 (Connection timed out)] 10:39:24 -!- refusenik_ [n=refuseni@user-1087rp3.cable.mindspring.com] has quit [Read error: 54 (Connection reset by peer)] 10:39:29 refusenik_ [n=refuseni@user-1087rp3.cable.mindspring.com] has joined #scheme 10:40:01 elderK [n=zk@219-89-246-1.adsl.xtra.co.nz] has joined #scheme 10:41:50 -!- refusenik_ [n=refuseni@user-1087rp3.cable.mindspring.com] has quit [Read error: 60 (Operation timed out)] 10:45:35 refusenik_ [n=refuseni@pool-71-246-119-118.nycmny.east.verizon.net] has joined #scheme 10:46:03 refusenik__ [n=refuseni@user-1087rp3.cable.mindspring.com] has joined #scheme 10:48:06 -!- refusenik__ [n=refuseni@user-1087rp3.cable.mindspring.com] has quit [Read error: 104 (Connection reset by peer)] 10:49:02 -!- refusenik [n=refuseni@user-1087rp3.cable.mindspring.com] has quit [Read error: 110 (Connection timed out)] 11:01:51 vy [n=user@213.139.194.186] has joined #scheme 11:03:05 -!- refusenik_ [n=refuseni@pool-71-246-119-118.nycmny.east.verizon.net] has quit [Read error: 110 (Connection timed out)] 11:26:53 -!- elias` [n=me@unaffiliated/elias/x-342423] has quit [Read error: 145 (Connection timed out)] 11:30:34 deat [n=deat@fac34-8-88-172-174-215.fbx.proxad.net] has joined #scheme 11:36:05 -!- rdd [n=user@c83-250-154-52.bredband.comhem.se] has quit [Read error: 104 (Connection reset by peer)] 11:38:39 howlingmadhowie [n=stefan@client-82-13-20-228.brhm.adsl.virgin.net] has joined #scheme 11:40:31 reprore [n=reprore@ntkngw372060.kngw.nt.ftth.ppp.infoweb.ne.jp] has joined #scheme 11:42:23 elias` [n=me@cs78208074.pp.htv.fi] has joined #scheme 11:43:06 -!- McManiaC [n=nils@stud247045.studentenheim.uni-tuebingen.de] has quit ["leaving"] 11:46:22 rdd [n=user@c83-250-154-52.bredband.comhem.se] has joined #scheme 11:50:26 Hey guys, 11:50:52 Is the map construct built-in to the implementation, or is it a scheme procedure, part of the 'standard library' as it were? 11:51:26 I figure it's part of the implementtion's standard library :) 12:02:01 elderK: it's just a procedure 12:02:12 elderK: easily implemented yourself 12:02:14 :) Thought so :D 12:02:18 And aye, I just built on for fun. 12:02:21 s/on/one 12:02:22 elderK: AFAIK, map is in srfi-1, not in rnrs 12:02:34 :) hkBst, would you mind looking at my little map, I'm curious to see if I did the tail recursion properly? 12:02:36 http://paste.lisp.org/display/77718#6 12:02:37 elderK: but implementations are allowed to apply it parallelly 12:02:37 :) 12:02:51 And I dunno, whether it's worth having map as a built-in procedure 12:03:27 Unlike, say, `reverse' - i.e. in erlang it's implemented internally 12:03:31 afaik 12:03:41 :) 12:03:45 Man, I'm having a ball with scheme. 12:03:50 elderK: (cons (_c (car _p)) (?map_iter (cdr _p))))) does not have ?map_iter in tail position 12:04:11 good point :) 12:04:19 cons is called last. 12:05:02 Does that matter for scheme? 12:05:28 what, tail recursion? 12:05:28 elderK: a common idiom is to use an accumulator to cons onto eagerly and then reverse it to obtain the result. 12:06:08 that would require a let? 12:06:23 to bind the accumulator for the iterator to seE? 12:06:23 Yes. Are there scheme implementations not performing cps or similar conversions? 12:06:43 I thought tail recursion was required to be optimized in scheme implementations? 12:07:30 Yes, but there is another point 12:08:14 bughunter2 [n=j@ip4da4427e.direct-adsl.nl] has joined #scheme 12:13:01 So, like. 12:13:03 hkBst: 12:13:14 How would you build that iterative style? :) 12:13:22 I figure accumulating onto a privat elist, then reversing, is bad. 12:13:29 since it's oN to get to the end of the list anyway. 12:13:35 but, using set! is bad form, right? 12:17:31 -!- Riastrad1 is now known as Riastradh 12:19:07 rtra [n=user@unaffiliated/rtra] has joined #scheme 12:19:22 :) hkBst, how abou tnow? :P http://paste.lisp.org/display/77718#7 12:21:10 Why all the underscores and question marks? 12:21:30 No reason 12:21:31 just playing :) 12:22:09 (SET! (CAR ) ) does not have a standard interpretation; the standard way to write what you probably meant is (SET-CAR! ). 12:22:50 With that substitution, the procedure you wrote behaves differently in an important way from the standard MAP procedure. 12:23:16 how so? :) 12:23:53 Without running this code, can you tell me what (LET ((L (LIST 1))) (MAP (LAMBDA (X) (* X 2)) L) L) yields? 12:25:01 dlt_ [n=dlt@201.57.58.146] has joined #scheme 12:25:07 :) If you let me work it out in my head, I can :) 12:25:41 Yes, you may run this code in your head -- just not on silicon, or any similar non-wetware machine! 12:25:52 :D neat 12:26:12 XD 12:26:13 blatant discrimination against us augmented-americans. 12:26:40 :) with a normal map 12:26:42 that retrusn 2. 12:26:43 on mien 12:26:44 it wont 12:26:46 Nope. 12:26:48 because it bails on nill cdr 12:27:05 No? 12:27:29 I don't know how standard MAP is implemented. 12:27:49 What does (MAP (LAMBDA (X) (* X 2)) L) do? 12:27:57 What does it return, and what side effects does it have? 12:28:48 It is creating a new list, that holds the double of the elements in L 12:28:56 it is using the lambda to do the doubling. 12:28:58 the scale. 12:28:58 Yep. 12:29:02 mine differs 12:29:04 But what side effects does it have? 12:29:05 because it modifies the list 12:29:08 consing ;) 12:29:09 Right. 12:29:13 :) 12:29:24 the standard map has no side effect, other tha nit returns a NEW list 12:29:28 mine on the other hand 12:29:29 does 12:29:30 Exactly. 12:29:33 beacuse it destroys the original list 12:29:34 :) 12:29:38 What you wrote is conventionally called MAP!, not MAP. 12:30:05 Can you repeat what you found wrong with accumulating a list in reverse and reversing it? 12:30:05 :) So, how does one create map, without having an accumulator list which would need reversing? 12:30:13 well. 12:30:36 wait 12:30:46 If you use the accumulator properly, its not an issue 12:30:54 just cons clever. 12:30:55 :) 12:30:55 right? 12:31:07 Can you be more specific? 12:31:25 okay, my worry was - we are traversing down the list of N elements, applying the scale, say. 12:31:33 we are saving the result in a cons list. 12:31:36 (You could be more specific in the form of code, too.) 12:31:37 after the scale is done 12:31:43 you would have to reverse tha tlist. 12:31:54 teh scale is oN 12:31:58 and the reversal would be oN too 12:32:05 *Riastradh* blinks. 12:32:06 so, we would end up with a o2n map, right? 12:32:15 Wild guess here -- when you write `oN', do you mean `O(n)'? 12:32:17 elderK: O(n) is the more usual notation 12:32:19 yes 12:32:24 :) Okay, sorry :) 12:32:32 Quiz: How are O(n) and O(2 n) related? 12:32:36 but yes, wouldn't we end up with o(2 n) 12:32:37 you could presumably accumulate it in order, passing a current cons cell as "pointer" whose cdr should be modified, if the reversal truly bugs you. 12:32:45 For that matter, what are O(n) and O(2 n), as mathematical objects? 12:32:54 they are constant. 12:33:02 o(2 n) = o(n). 12:33:03 no? 12:33:08 no; they're families of functions. 12:33:40 How about o(2 n) and O(2 n)? 12:33:59 something tells me they arent the same? :P 12:34:42 It may be worth your while to read up a little on this notation, which is pretty important. 12:35:01 :) Aye, I thin kI will. 12:35:36 I never got to study omega notation in detail. I just understand that o(n) worse than o(log n). 12:36:05 now i'm just curious as well; when exactly can this notation be helpful/important? 12:36:11 O(n) is a set 12:36:31 (ecraven and bpalmer aren't the subjects of this quiz, by the way...) 12:36:41 lol 12:36:54 (Subjects? Not the right word -- recipients? Intended audience?) 12:36:55 :) 12:37:04 publicum ;) 12:37:13 :) 12:37:36 I generally use the notation as a general way to gauge the efficiency of a given algorithm / adt. 12:38:01 I see o(log n) as better than o(n), because the o(log n) algorithm has to cycle less times. 12:38:20 so, I guess according to what I reckon from ecraven, is that the set is smaller. 12:38:34 ecraven: are you sure it quite qualifies as a set? 12:39:05 Yes, bpalmer. It is a set of maps of |N into |N. 12:39:08 bpalmer: i think so, as far as i know g = O(n) is actually wrong, it should be g \in O(n) (where \in is LaTeX for the element "operator?) 12:40:14 why |N --> |N ? 12:40:22 yes, it's certainly a grouping or collection; I just experience unease at calling it a set. 12:40:31 i'd say it's a set of functions? 12:40:34 Why, bpalmer? 12:41:31 if I have two functions f and g in O(n) identical on input and output everywhere but defined separately, they're not necessarily the same function. 12:41:35 rtra, each element of the set maps the size of an input to the number of steps required to compute the output. 12:41:40 defined differently, I mean. 12:41:57 bpalmer, how are they different if they are not the same, then? 12:42:21 rtra, the size of the input (in this case) and the number of steps are both natural numbers. 12:42:58 bpalmer: is this an argument against "set of functions"? 12:43:16 f(x) = (x+1)/2; g(x) = the number of steps it takes machine M to halt. 12:43:34 You can certainly foresee cases where f and g are extensionally identical mappings 12:43:54 If, given an input of size x, the machine M halts in (x + 1) / 2 steps, then f = g, and conversely. 12:44:08 Riastradh: oh yes, thanks 12:45:26 Riastradh: that's an extensional definition of function equality (and consistent with set theory's axiom of extensionality). 12:46:45 I wonder how you would say, implement binary search tree, with insertion/deletion/lookup of keys, the side effects are that the tree is modified in the process. I wonder how youd do that, without set! 12:46:46 At any rate, this is a digression, and perhaps not a particularly interesting one, since it can be resolved by definition and axiom. 12:47:12 ie: use of those functions in this case, is expected to modify the tree on which they act upon. 12:47:32 OK. I'm talking in ZFC where a function f is a set of pairs with (x, y), (x, y') \in f implying that y = y'. 12:47:32 elderK: look at zippers; this is an issue in functional programming 12:47:45 zippers? 12:47:52 Zippers? This is unrelated to the basic operations on binary trees. 12:48:03 Just as with lists, elderK, you create a new tree. 12:48:59 say, we have some tree. We locate node say, 9. we remove 9 from that tree. the holder of node 9, still has node 9. the tree no longer does. We should be able to insert node 9, into another tree. 12:49:28 say, (remove-key *some-tree* THIS_KEY) 12:49:47 should return the nod eholdnig THIS_KEY, and *some-tree* should no longer store links to that node. 12:49:54 Think of it this way: the nodes do not have identity of their own. Rather, the tree has a structure. 12:50:10 The nodes simply represent parts of that structure. 12:50:28 You can make a new structure that doesn't have a node with THIS-KEY. 12:50:35 so, the tree is the abstraction, the nodse ar ejust the inner pieces that make it work. 12:50:53 The new structure might share much of the original tree's structure. 12:50:58 the nodes just let the tree maitnain its ordering system - and allow the tree to store links to some other object. 12:51:05 ? 12:51:26 In fact, if the tree is binary and balanced, then you need create only O(log n) new nodes; the rest of the nodes will be shared with the original tree. 12:52:00 I see, I think. 12:52:04 Instead of recreating all the nod sei na tree 12:52:06 we copy all we can 12:52:14 and create new nodes, only for the branch that is modified. 12:52:15 ? 12:52:46 `Copy' isn't quite right -- at best, you're copying references to an existing structure, or rather you're just reusing the existing structure. 12:53:37 :) Riastradh, do you midn if I write up my understanding in lisppaste - as notes, and you check to see if I've got your meaning correctly? :) 12:53:41 I'd find that most helpful. 12:53:59 Go ahead, although I'm leaving now to get breakfast. If you remind me later I may take a look. 12:54:08 :) Thanks Riastradh 12:54:15 Have a good breakfast, man 12:54:24 *Riastradh* vanishes. 13:00:40 Judofyr [n=Judofyr@c349BBF51.dhcp.bluecom.no] has joined #scheme 13:06:52 -!- seamus-android [n=user@cpc3-brig3-0-0-cust124.brig.cable.ntl.com] has quit [Read error: 110 (Connection timed out)] 13:07:12 jewel [n=jewel@dsl-242-188-120.telkomadsl.co.za] has joined #scheme 13:10:25 hark [n=strider@hark.slew.org] has joined #scheme 13:25:01 Edico [n=Edico@unaffiliated/edico] has joined #scheme 13:29:57 ejs [n=eugen@nat.ironport.com] has joined #scheme 13:34:45 -!- dsmith [i=qvf5nz9u@cpe-71-74-230-225.neo.res.rr.com] has quit ["Leaving"] 13:36:55 aquanaut [n=user@pool-71-191-244-210.washdc.fios.verizon.net] has joined #scheme 13:40:24 the let primitive could be implemented as a macro, right? 13:40:25 ) 13:40:26 :) 13:40:53 let = lambda shuffled around 13:41:09 so, it is a macro sjamaan? 13:41:15 It can be 13:41:24 cracki [n=cracki@sglty.kawo2.RWTH-Aachen.DE] has joined #scheme 13:41:30 how is it, in the lambda form? 13:41:45 -!- reprore [n=reprore@ntkngw372060.kngw.nt.ftth.ppp.infoweb.ne.jp] has quit [Read error: 104 (Connection reset by peer)] 13:41:57 (let ((a b) (c d)) xyz) => ((lambda (a c) xyz) b d) 13:41:59 let* would be curious to see 13:42:12 reprore_ [n=reprore@ntkngw372060.kngw.nt.ftth.ppp.infoweb.ne.jp] has joined #scheme 13:42:22 It's just nested let 13:42:41 (let* ((a b) (c d)) xyz) => (let ((a b)) (let ((c d)) xyz)) 13:43:20 :) thank you for that. 13:43:21 :D 13:43:24 Man, SCHEME RULESSSS 13:43:24 :D 13:43:27 *elderK* dances 13:43:28 :D 13:43:32 I can't believe why more people don't use Scheme. 13:43:38 I don't understand why they don't. 13:43:40 *elderK* looks to sjamaan 13:43:42 Why don't they? 13:43:58 Because they're fools 13:44:01 Why is C++ and things like C# used over Scheme? 13:44:07 It's like they are afraid. 13:44:10 because Scheme is different. 13:44:19 -!- Judofyr [n=Judofyr@c349BBF51.dhcp.bluecom.no] has quit [Remote closed the connection] 13:44:22 Takes a little more work to 'click' to. 13:44:24 but man, once you click. 13:44:27 :) 13:44:28 :D the looking glass. 13:44:41 Thats how I explain this to my friends at the moment. 13:44:57 Learning Scheme, is like stepping up - and seeing through the looking glass. 13:45:08 :) 13:45:12 Lisp is the Red Pill 13:45:23 There's a reason why Scheme has an IRC channel full of brilliant, attractive young ladies and gentlemen dedicated to providing help for it for free, while C++ is mostly supported by bearded weirdos. 13:45:40 and assholes, dont forget that. 13:45:40 :P 13:45:54 fscking amen to that 13:45:56 Who are more interested in dominating/proving themselves right, even when they are wrong, than actually helping. 13:46:09 yeah, too much ego 13:46:09 That's one thing I noticed immediately - the Scheme community is really, really cool :D 13:46:18 In fact, bughunter2 and I have been searching for such a community for a long time. 13:46:19 :) 13:46:25 ^ 13:46:26 :) 13:46:27 ^^ 13:47:34 :P Sorry if I seem somewhat gushy, it's just, it's been hard going finding channels, places to speak and ponder, that aren't filled by assholes who really, honestly, aren't interested in anything cool - they are more interested in being tosspots. 13:47:37 So, this is like :O WOAH! 13:48:04 Don't tell too many people about it, ok? 13:48:12 :) Of course. 13:48:15 Otherwise this place will turn out the same way ;) 13:48:19 heh 13:48:21 Otherwise we'd be flooded with retards. 13:48:21 :P 13:48:26 how long do pastes stay online at paste.lisp.org btw? 13:48:34 I don't think they ever expire 13:48:41 permalink. 13:48:42 ^_^ 13:49:10 Your mistakes will be preserved until you get rich and famous, so people can mock you for them later :P 13:49:39 awesome ;) 13:57:17 lol 13:57:18 :P 13:59:22 -!- ecraven [n=nex@140.78.42.103] has quit ["bbl"] 14:11:16 elderK: Scheme is really nice, but having 13 different implementations that are incompatible due to lacking standards is very frustrating. 14:12:11 Judofyr [n=Judofyr@c349BBF51.dhcp.bluecom.no] has joined #scheme 14:14:07 yes, yes it is. 14:14:34 r5rs is the standard, but to be practical for other uses, they have to extend it - thus the incompatible implementations, right? 14:14:53 things like FFIs. Although, binary IO could probably be done in Scheme, right? 14:15:07 well, maybe not. I don't see how r5rs allows you to seek in a port. 14:22:02 -!- Adamant [n=Adamant@unaffiliated/adamant] has quit [] 14:32:13 texodus [n=andrew@rrcs-24-103-78-113.nyc.biz.rr.com] has joined #scheme 14:44:30 dlt__ [n=dlt@201.80.181.75] has joined #scheme 14:46:02 -!- eno__ is now known as eno 14:46:58 I wonder what kind of machines people used back in the 80s, for scheme development. 14:47:11 I wonder if they had reasonable resolutions for their displays, 14:47:17 or if they did it all in textmode-ish. 14:55:25 -!- reprore_ [n=reprore@ntkngw372060.kngw.nt.ftth.ppp.infoweb.ne.jp] has quit [Remote closed the connection] 14:56:03 bweaver [n=user@75.148.111.133] has joined #scheme 14:56:59 Adamant [n=Adamant@130.254.103.13] has joined #scheme 15:02:35 -!- jonrafkind [n=jon@c-98-202-86-149.hsd1.ut.comcast.net] has quit [Connection timed out] 15:03:58 -!- dlt_ [n=dlt@201.57.58.146] has quit [Read error: 110 (Connection timed out)] 15:09:37 Mostly 80x24, but I did use it on what I think was an Apollo 3500 (bitmapped, 1024x768). 15:10:32 Daemmerung: I figure in editors that did not wrap at the 79th column? 15:16:24 reprore [n=reprore@ntkngw372060.kngw.nt.ftth.ppp.infoweb.ne.jp] has joined #scheme 15:16:54 -!- Adamant [n=Adamant@unaffiliated/adamant] has quit [Remote closed the connection] 15:19:11 Hey guys, has anyone here any opinion on the "Schemer" series of books? (The (little|reasoned|seasoned) schemer) 15:19:25 elderK: I'm loving them 15:19:29 I'm working through them right now 15:19:45 :) I'm considering buying them, 15:19:47 repror___ [n=reprore@ntkngw372060.kngw.nt.ftth.ppp.infoweb.ne.jp] has joined #scheme 15:19:48 -!- reprore [n=reprore@ntkngw372060.kngw.nt.ftth.ppp.infoweb.ne.jp] has quit [Read error: 104 (Connection reset by peer)] 15:19:59 Khisanth [n=Khisanth@pool-141-157-248-228.ny325.east.verizon.net] has joined #scheme 15:20:02 I have not seen reasoned 15:20:10 I have little and seasoned 15:20:15 Well, how are little/seasoned? What do they cover? 15:20:33 So far, I've been learning from SICP, The Scheme Programming Language, Use and implementation of Scheme. 15:20:34 -!- jeremiah [n=jeremiah@31.Red-213-98-123.staticIP.rima-tde.net] has quit [Read error: 110 (Connection timed out)] 15:20:38 :) and by reading SRFIs and the liek 15:21:15 I'm liking little so far, I'm about half way through it 15:21:27 :) Any chance they have them in .pdf ? 15:21:33 I wish 15:21:38 then I could read them on the kindle 15:21:54 ecraven [n=nex@140.78.42.103] has joined #scheme 15:22:04 jeremiah [n=jeremiah@31.Red-213-98-123.staticIP.rima-tde.net] has joined #scheme 15:22:26 athos [n=philipp@92.250.250.68] has joined #scheme 15:22:49 wb ecraven! 15:22:50 Reasoned is very much unlike the other two. It is its own thing. 15:23:10 A Kindle edition would be nice, I agree. 15:23:13 yeah, it's very different 15:23:23 hey elderK 15:24:51 -!- mreggen [n=mreggen@cm-84.215.50.79.getinternet.no] has quit [Read error: 104 (Connection reset by peer)] 15:26:10 elderK: the editors then were pretty much like the editors now. We had vi, and emacs, and EDT on VMS, and whatever the scratchpad on Domain/Aegis was called; and every department seemed to have its own editor for writing BLISS or whatever. The big difference was that the bitmapped displays, or else the terminal connections, were amazingly slow. Visible page refreshes. If you've ever used 'vi' across a low-baud link then you know the 15:26:10 experience. 15:26:40 Aye 15:26:48 At work I used vi over 9600baud 15:26:51 maybe less 15:26:57 I just remember using unix man was painful 15:27:00 hehe, that's what ED is for! 15:27:00 same with vi... 15:27:03 Think 300/1200 baud. 15:27:10 :D Ed is the standard editor! 15:27:10 :P 15:28:56 AtnNn [n=welcome@modemcable087.62-56-74.mc.videotron.ca] has joined #scheme 15:33:51 saccade_ [n=saccade@dhcp-18-188-70-132.dyn.mit.edu] has joined #scheme 15:39:00 I wonder how someone does portable binary io in scheme. 15:39:29 ejs1 [n=eugen@77.222.151.102] has joined #scheme 15:40:26 You do it in a post-R5RS scheme, iow R6RS, or any one of the implementation specific ways 15:41:57 R6RS is pretty much based on the norm 15:42:30 also perhaps a bit too much specified, but everything you need is there :) 15:45:15 Nichibutsu [n=myfabse@wikipedia/Track-n-Field] has joined #scheme 15:48:57 -!- ejs [n=eugen@nat.ironport.com] has quit [Read error: 110 (Connection timed out)] 15:54:14 elderK1 [n=zk@219-89-246-26.adsl.xtra.co.nz] has joined #scheme 15:56:10 rcassidy [n=rcassidy@129.10.229.202] has joined #scheme 16:00:15 McManiaC [n=nils@stud247045.studentenheim.uni-tuebingen.de] has joined #scheme 16:07:29 Nshag [i=user@Mix-Orleans-106-4-7.w193-248.abo.wanadoo.fr] has joined #scheme 16:10:06 -!- mmc [n=mima@esprx02x.nokia.com] has quit [Remote closed the connection] 16:10:25 -!- elderK [n=zk@219-89-246-1.adsl.xtra.co.nz] has quit [Read error: 110 (Connection timed out)] 16:12:45 -!- tessier_ [n=treed@kernel-panic/sex-machines] has left #scheme 16:14:35 -!- ejs1 [n=eugen@77.222.151.102] has quit ["This computer has gone to sleep"] 17:45:15 ccl-logbot [n=ccl-logb@master.clozure.com] has joined #scheme 17:45:15 17:45:15 -!- names: ccl-logbot reprore_ barney melgray hadronzoo rdd gustavold RageOfThou jonrafkind jlongster Nshag McManiaC Nichibutsu AtnNn athos jeremiah bweaver dlt__ Judofyr cracki aquanaut Edico hark jewel rtra elias` deat vy elmex orgy` Riastradh hkBst dysinger hotblack23 mejja yosafbridge eno Kusanagi kniu tjafk2 hornbeck npe Mr_Awesome davidad tabe jao benny` rudybot offby1 bsmntbombdood sladegen certainty mmt laz0r p1dzkl rotty metasyntax tonyg nasloc__ 17:45:15 -!- names: Adrinael gnomon z0d lde pchrist Jarvellis jld arphid cipher CaptainMorgan guenther__ a-s specbot minion lisppaste dfeuer leppie morphir kazzmir kspaans underspecified_ underspecified pantsd synx ffx` Cale emma pfo REPLeffect incubot mookid poucet C-Keen klutometis weinholt qebab mbishop_ proq glogic subversus csmrFX_ eli r0bby tarbo aardvarc sjamaan mornfall bpalmer Daemmerung inhortte dlouhy dima_z elf inimino Deformative ski Quadrescence 17:45:15 -!- names: tizoc pitui ineiros mmmulani danking ada2358 sphex ray bkudria Elly levi foof ttmrichter tltstc felipe fean sanguinev clog rodge XTL Debolaz Poeir amazon10x stepnem Qaexl halfcore saccade zbigniew duncanm ski_ ski__ peddie Fade pbusser2 Caesium wastrel Leonidas 17:47:04 mreggen [n=mreggen@cm-84.215.50.79.getinternet.no] has joined #scheme 17:49:47 Anybody here use drscheme in Linux? How do you cope with keybindings conflicting with OS keybindings? 17:50:29 gustavold: Install emacs XD 17:50:43 -!- hadronzoo [n=hadronzo@ppp-70-247-169-125.dsl.rcsntx.swbell.net] has quit [Read error: 60 (Operation timed out)] 17:51:10 hadronzoo [n=hadronzo@ppp-70-251-241-204.dsl.rcsntx.swbell.net] has joined #scheme 17:55:48 -!- reprore_ [n=reprore@ntkngw372060.kngw.nt.ftth.ppp.infoweb.ne.jp] has quit [Remote closed the connection] 17:58:25 -!- hadronzoo [n=hadronzo@ppp-70-251-241-204.dsl.rcsntx.swbell.net] has quit [Read error: 60 (Operation timed out)] 18:00:11 gustavold what desktop do you use? 18:00:50 csmrFX_: ubuntu gutsy 18:00:58 jwh335 [n=will@ws26-21.wireless.dynamic.msstate.edu] has joined #scheme 18:02:38 Hm, in openbox you can disable desktop shortcuts for particular apps, I wonder if thats possible for you. 18:03:23 Gutsy uses metacity by default, though it can use openbox, afaik afaik. 18:07:03 amoe [n=amoe@cpc1-brig3-0-0-cust512.brig.cable.ntl.com] has joined #scheme 18:12:08 -!- jwh335 [n=will@ws26-21.wireless.dynamic.msstate.edu] has quit ["Leaving."] 18:13:05 gustavold: What are the "OS keybindings"? I'm not aware of such things on linux. 18:13:06 gustavold: using a different window manager also helps. imo the text editor should come before the OS keybindings 18:13:34 eli: I think he means the window/desktop manager keybindings 18:13:39 You could also just change the drscheme keybindings... 18:13:45 proq: If it's the WM bindings, then I agree with you. 18:14:16 I find recent linux setup obnoxious in the kind of keys they allow themselves to grab. 18:15:18 sjamaan: Ignoring the flaming aspect, switching to Emacs won't help. Emacs tends to be much more key-hungry than any WM. 18:15:38 I find xfce to be pretty sensible. Though GTK couldn't handle the "Super" key for a while, but they put most of their shortcuts on Ctrl+Alt+something, and everything's configurable. 18:16:02 eli: I was of course just kidding 18:16:09 Personally I favor the Super key for window manager stuff. It does have a window on it after all. 18:16:13 It makes sense to change one of the modkeys 18:16:15 xfce + sawfish + my own key setup. 18:16:45 If Emacs uses many keys, *my* Emacs uses more keys that are commonly grabbed. 18:16:55 eli: I think that would be because some people use emacs and nothing else 18:16:55 Like M-S- 18:17:37 eli: sawfish? Isn't that a window manager parallel with xfce? 18:17:39 sjamaan: I know, I was just saying that Emacs has more problems on that side. (And I make it even worse.) 18:18:04 proq: some people want you to use emacs and nothing else 8> 18:18:20 synx: I use sawfish with xfce. I intensly hate Metacity or whatever gnome/xfce/whatever defaults to. 18:18:55 I thought that xfce didn't do anything that sawfish did. I guess... you don't use xfwm then? 18:19:25 And as much as I dislike the part-scheme-part-elisp language, once you get that kind of freedom, it's impossible to go back to the limited world. 18:20:01 No, I don't even know what xfwm is. (I can only assume the obvious from the name.) 18:20:21 xfce's window manager handles screen switching intelligently, and generally stays out of my way. I don't really care about much else. 18:20:51 stumpwm only needs one keybinding and that can be emulated if an app uses it 18:22:40 eli, proq: I meant "WM keybindings" :) 18:22:41 drscheme doesn't help much who wants to change the default keybindings... I'm now just not using them =/ 18:22:51 dwm, dwm, dwm 18:23:02 stumpwm, stumpwm, stumpwm 18:23:08 It's all lispy-good 18:23:13 synx: My sawfish setup handles screen switching in a way that no other WM I know does. My session always has three desktops, each with four viewports, and one of them running a vnc viewer with the same setup, nested. (And allmost everything is populated.) 18:23:17 *sjamaan* pitches in 18:23:18 wmii! 18:23:24 With Chicken wmii scripts! 18:24:18 Jarvellis: Something like stumpwm is a joke when I need to get real work done. 18:24:26 zbigniew: Have you tried out the new dwm-inspired Scheme WM that was posted to the Chicken ML? (can't recall its name) 18:24:48 conswm 18:24:49 eli: well, it works well for me 18:24:54 yes, conswm 18:25:00 I was not aware it is dwm-derived 18:25:17 It was cited as an inspiration in the announcement mail 18:26:00 well, everyone and their mom cites dwm as an inspiration 18:26:07 xfwm doesn't even handle the screens, just the screen switching. All it does is expose the top window first. I like that. 18:26:14 heh 18:26:16 i, for example, am inspired by the C-based configuration files 18:26:22 The xfce pager handles the screens... I'm not sure what your distinction between 'desktop' and 'viewport' is though. 18:27:33 I tried fluxbox for a while, but fluxbox draws the bottom window first when switching screens. And thanks to lame memory paging that can take almost a minute at times. 18:28:03 hey.. I can't make any sense of this whole library "phases" thing in R6RS. are there any other documentation on that? 18:28:29 sjaaman: But I am on OS X, and rarely break out the Linux box, so my actual WM on Linux (sawfish) has been untouched since 2001--if I bother to switch, it would likely be to dwm 18:28:56 *sjamaan* nods 18:29:26 where did you hear about R6RS library phases, sphex? 18:29:55 synx: R6RS :p 18:30:09 synx: http://tmp.barzilay.org/x.png -- see the structure on the bottom right. 18:30:38 incubot: chekov, set phases to stun 18:30:41 Chekov, set sarcasm detector to stun. 18:31:22 I think I might have said that. 18:31:39 Looks like 12 screens to me eli, 2 columns and 4 rows. How do two 'viewports' on two different 'desktops' differ? 18:31:49 Different icons? 18:31:51 synx: err.. they use "level". I checked some other schemes' own documentation and got confused even more. 18:32:27 synx: viewports are part of a virtual bigger screen. 18:32:43 sphex: where in r6rs are levels? I can't see them. 18:33:00 eli: Ah, so windows can be half in one viewport half in another. 18:33:00 synx: here: http://www.r6rs.org/final/html/r6rs/r6rs-Z-H-10.html#node_sec_7.2 18:33:18 thanks 18:33:27 saccade_ [n=saccade@BRAIN-AND-COG-THREE-TWELVE.MIT.EDU] has joined #scheme 18:34:18 And apparently I spelled the name wrong both times. Good job zbiggy 18:34:23 If I think they're what I think they are... 18:35:41 sphex: Say in your module you put (define foo 3). Then you put (define-syntax bar (lambda (form) ...)) but in bar you refer to foo. Has foo been defined when you are creating the syntax bar? 18:36:08 synx: Yes. It can be useful sometimes. And even without this feature, dealing with "3 desktops of 2x2 screens" is much easier than a dealing with "12 desktops". 18:36:15 Wait, I was right! Damn, I hate the Internet sometimes. 18:36:19 It matters for navigations between them. 18:37:08 I can see as it would be useful eli. I just go with 5 (desktop+viewport)s myself. 18:38:36 MichaelRaskin_ [n=raskin@gwh-1-177-mytn23k1.ln.rinet.ru] has joined #scheme 18:38:37 eh, technically they call them "workspaces" oh well. 18:39:26 synx: right.. yeah, ok. I guess I can see this is somehow related to.. confining what macros can do.. and probably how separate compilation should work.. 18:39:55 but it's pretty hard to understand the details.. I mean.. there's got to be a better description than that? 18:40:21 jao` [n=jao@obfw.oblong.net] has joined #scheme 18:41:43 sphex: It's just that foo has not been defined. First it goes through the module and defines all the syntaxes, then /after/ that it actually defines the variables to their values. (define foo 3) happens in the run-time phase, or um... phase 2 I think. But (define-syntax bar ...) happens in the syntax phase, or phase 1. 18:42:18 1 desktop + GNU screen + emacs + tabbed browsing here. 1 more desktop (e.g. extra monitor) might be useful at most, anything more is overkill 18:43:11 -!- jao [n=jao@cpe-75-84-114-170.socal.res.rr.com] has quit [Read error: 110 (Connection timed out)] 18:44:14 Do you use expose a lot, zbigniew? 18:44:34 "Exposé", I mean 18:44:52 Rarely if ever. 18:46:05 When I still used OS X I mostly arranged 4 xterms in a square, using apple+` to switch between them, and alt+tab to switch to emacs or a browser 18:46:42 I noticed that Exposé supports keyboard navigation too, though! 18:46:43 synx: ok. the thing is, I'm working on a toy implementation, and can compile expanded scheme for a small SECD-like machine, and my expander is starting to look good. but for now all the macro and library handling are all hooks and I'd like it to be R6RS-compliant, but I don't understand the details.. and don't have much experience with the module systems of other schemes either.. :/ 18:47:52 sphex: Okay that's fine? Just think of phases like multiple passes over the code. 18:49:41 Though the syntax phase passes over it repeatedly until all syntaxes have been expanded... eh. 18:49:57 sjamaan: that is how I do it, except with 2 Terminals running screen side-by-side, using screen's horizonal split when desired 18:50:48 zbigniew: I realised that I wasn't really "using" OS X, so figured I should just install BSD 18:51:06 (upgrading OS X is expensive...) 18:51:38 sjamaan: understandable. 18:51:59 Do you use "real" OS X programs? 18:53:28 -!- AtnNn [n=welcome@modemcable087.62-56-74.mc.videotron.ca] has quit [Read error: 104 (Connection reset by peer)] 18:55:41 guess I'm just gonna have to read that part over and over again :/ 18:55:51 sjamaan: Certainly. But PM me if you want more info, let's not drag this too far OT. 18:56:35 AtnNn [n=welcome@modemcable087.62-56-74.mc.videotron.ca] has joined #scheme 19:00:22 Arelius_ [n=Indy@netblock-68-183-230-134.dslextreme.com] has joined #scheme 19:00:32 geckosenator [n=sean@71.237.94.78] has joined #scheme 19:05:19 Judofyr_ [n=Judofyr@c349BBF51.dhcp.bluecom.no] has joined #scheme 19:09:28 -!- rtra [n=user@unaffiliated/rtra] has quit ["ERC Version 5.2 (IRC client for Emacs)"] 19:12:21 rtra [n=rtra@unaffiliated/rtra] has joined #scheme 19:14:05 cracki_ [n=cracki@sglty.kawo2.RWTH-Aachen.DE] has joined #scheme 19:15:38 -!- athos [n=philipp@92.250.250.68] has quit [bartol.freenode.net irc.freenode.net] 19:15:38 -!- laz0r [n=lazor@affenbande.org] has quit [bartol.freenode.net irc.freenode.net] 19:15:38 -!- mmt [n=mmt@TEP.MIT.EDU] has quit [bartol.freenode.net irc.freenode.net] 19:15:38 -!- p1dzkl [i=p1dzkl@81.167.54.222.static.lyse.net] has quit [bartol.freenode.net irc.freenode.net] 19:15:38 -!- rotty [n=rotty@nncmain.nicenamecrew.com] has quit [bartol.freenode.net irc.freenode.net] 19:15:38 -!- AtnNn [n=welcome@modemcable087.62-56-74.mc.videotron.ca] has quit [bartol.freenode.net irc.freenode.net] 19:15:38 -!- Nichibutsu [n=myfabse@wikipedia/Track-n-Field] has quit [bartol.freenode.net irc.freenode.net] 19:15:38 -!- tabe [n=tabe@210.188.204.133] has quit [bartol.freenode.net irc.freenode.net] 19:15:38 -!- gnomon [n=gnomon@CPE001d60dffa5c-CM000f9f776f96.cpe.net.cable.rogers.com] has quit [bartol.freenode.net irc.freenode.net] 19:15:38 -!- pchrist [n=spirit@gentoo/developer/pchrist] has quit [bartol.freenode.net irc.freenode.net] 19:15:38 -!- C-Keen [i=ckeen@pestilenz.org] has quit [bartol.freenode.net irc.freenode.net] 19:15:38 -!- poucet [n=vincenz@li23-146.members.linode.com] has quit [bartol.freenode.net irc.freenode.net] 19:15:38 -!- klutometis [i=klutomet@pdpc/supporter/active/klutometis] has quit [bartol.freenode.net irc.freenode.net] 19:15:39 -!- synx [i=synx@gateway/gpg-tor/key-0xA71B0C6A] has quit [bartol.freenode.net irc.freenode.net] 19:15:39 -!- REPLeffect [n=REPLeffe@69.54.115.254] has quit [bartol.freenode.net irc.freenode.net] 19:15:39 -!- deat [n=deat@fac34-8-88-172-174-215.fbx.proxad.net] has quit [bartol.freenode.net irc.freenode.net] 19:15:39 -!- Jarvellis [n=jarv@dsl-217-155-101-22.zen.co.uk] has quit [bartol.freenode.net irc.freenode.net] 19:15:39 -!- ffx` [n=ffx@60-241-74-240.static.tpgi.com.au] has quit [bartol.freenode.net irc.freenode.net] 19:15:39 -!- emma [n=emma@unaffiliated/emma] has quit [bartol.freenode.net irc.freenode.net] 19:15:39 -!- subversus [i=elliot@loveturtle.net] has quit [bartol.freenode.net irc.freenode.net] 19:15:39 -!- eli [n=eli@winooski.ccs.neu.edu] has quit [bartol.freenode.net irc.freenode.net] 19:15:39 -!- csmrFX_ [i=csmr@paha.arkkitehti.e21.fi] has quit [bartol.freenode.net irc.freenode.net] 19:16:17 AtnNn [n=welcome@modemcable087.62-56-74.mc.videotron.ca] has joined #scheme 19:16:17 Nichibutsu [n=myfabse@wikipedia/Track-n-Field] has joined #scheme 19:16:17 athos [n=philipp@92.250.250.68] has joined #scheme 19:16:17 deat [n=deat@fac34-8-88-172-174-215.fbx.proxad.net] has joined #scheme 19:16:17 tabe [n=tabe@210.188.204.133] has joined #scheme 19:16:17 mmt [n=mmt@TEP.MIT.EDU] has joined #scheme 19:16:17 laz0r [n=lazor@affenbande.org] has joined #scheme 19:16:17 p1dzkl [i=p1dzkl@81.167.54.222.static.lyse.net] has joined #scheme 19:16:17 rotty [n=rotty@nncmain.nicenamecrew.com] has joined #scheme 19:16:17 gnomon [n=gnomon@CPE001d60dffa5c-CM000f9f776f96.cpe.net.cable.rogers.com] has joined #scheme 19:16:17 pchrist [n=spirit@gentoo/developer/pchrist] has joined #scheme 19:16:17 Jarvellis [n=jarv@dsl-217-155-101-22.zen.co.uk] has joined #scheme 19:16:17 synx [i=synx@gateway/gpg-tor/key-0xA71B0C6A] has joined #scheme 19:16:17 ffx` [n=ffx@60-241-74-240.static.tpgi.com.au] has joined #scheme 19:16:17 emma [n=emma@unaffiliated/emma] has joined #scheme 19:16:17 REPLeffect [n=REPLeffe@69.54.115.254] has joined #scheme 19:16:17 poucet [n=vincenz@li23-146.members.linode.com] has joined #scheme 19:16:17 C-Keen [i=ckeen@pestilenz.org] has joined #scheme 19:16:17 klutometis [i=klutomet@pdpc/supporter/active/klutometis] has joined #scheme 19:16:17 eli [n=eli@winooski.ccs.neu.edu] has joined #scheme 19:16:17 csmrFX_ [i=csmr@paha.arkkitehti.e21.fi] has joined #scheme 19:16:17 subversus [i=elliot@loveturtle.net] has joined #scheme 19:17:50 -!- peddie [n=matthew@PEDDIE.MIT.EDU] has quit [Remote closed the connection] 19:17:56 peddie [n=matthew@PEDDIE.MIT.EDU] has joined #scheme 19:23:08 -!- Judofyr [n=Judofyr@c349BBF51.dhcp.bluecom.no] has quit [Read error: 110 (Connection timed out)] 19:25:28 rmns [n=ramunas@78-61-90-37.static.zebra.lt] has joined #scheme 19:25:52 -!- npe [i=npe@naist-wavenet126-102.naist.jp] has quit [] 19:31:57 -!- cracki [n=cracki@sglty.kawo2.RWTH-Aachen.DE] has quit [Connection timed out] 19:33:15 -!- rtra [n=rtra@unaffiliated/rtra] has left #scheme 19:33:36 araujo [n=araujo@gentoo/developer/araujo] has joined #scheme 19:34:10 rtra [n=user@unaffiliated/rtra] has joined #scheme 19:41:24 -!- Nichibutsu [n=myfabse@wikipedia/Track-n-Field] has quit [] 19:45:34 incubot: Do you believe in the Users? 19:45:38 (otoh I'd be led to believe that single process numeric code and stuff of that sort would be pretty easy to get working faster than erlang, just based on claims I have heard about the quality of gambit's compiler) 19:48:16 incubot: Who fights for the Users? 19:48:19 ... for strawberry fights among things 19:49:31 -!- benny` [n=benny@i577A008F.versanet.de] has quit [Read error: 113 (No route to host)] 19:53:43 Mr-Cat [n=Mr-Cat@bahirkin1507.static.corbina.ru] has joined #scheme 19:56:17 -!- geckosenator [n=sean@71.237.94.78] has quit [Read error: 110 (Connection timed out)] 19:56:53 incubot: no, tron does 19:56:56 It does emit pretty decent code. 19:57:35 ambient [n=ambi@julma.lnet.fi] has joined #scheme 19:58:21 What's general good practice when returning several values, say, r, g, b of a color - use (values ...) or (list ...)? 19:58:44 -!- jlongster [n=user@75.148.111.133] has left #scheme 19:59:45 Why are you returning? 20:00:32 Why? Because I've got a function, that should return 3 components of a color 20:00:41 You can't leave that continuation waiting, now can you? 20:01:33 sjaaman: Leave that continuation doing what? Sorry, I didn't get the point 20:01:41 waiting 20:01:45 Mr-Cat, perhaps a different question: how do you expect that the calling functions will use the returned data? 20:01:59 Mr-Cat: I tend to return the value as just one color... (a << 24) + (r << 16) + (g << 8) + b 20:02:07 Mr-Cat: that was a joke aimed at mejja 20:02:10 s/color/integer 20:02:36 gnomon: pass all the three values to a function simultaneously 20:02:52 Mr-Cat: this is assuming 8-bits per channel, of course 20:02:55 proq: I need separate components 20:03:22 they *are* separate 20:03:30 Mr-Cat: A list, or some compound object can be more convenient to work with, but only if other procedures also accept that as input 20:03:46 proq: I need them be explicitly separate 20:04:00 sjaaman: No, that function accepts them separately 20:04:05 Mr-Cat, if you want to keep the values separate from each other, and if you can't imagine a situation when anyone would want just one of the three values, use VALUES to return them rather than packing them into a list that will only get unpacked at the other end. 20:04:15 I agree with gnomon 20:04:38 Ok... i see, that the point is the possibility of separate use 20:04:58 is there any French here? 20:06:12 a-s, un peu, oui; mais seulement un tout petit peu. 20:06:23 Khisanth [n=Khisanth@pool-141-157-243-212.ny325.east.verizon.net] has joined #scheme 20:07:10 Mr-Cat, the other point is avoiding the overhead of list creation. Why bother creating an entire list when the values exist only to be bound at the calling site? There's no need to blow out your cache by calling the CAR and CDR functions when all you want to do is name some values. 20:08:14 benny [n=benny@i577A06E2.versanet.de] has joined #scheme 20:10:11 geckosenator [n=sean@71.237.94.78] has joined #scheme 20:10:27 Fare [n=Fare@ita4fw1.itasoftware.com] has joined #scheme 20:12:56 I'm having trouble with a macro 20:13:02 (define-syntax test (syntax-rules () ((_ exp) (let ((x 1)) exp)))) 20:13:40 I need to do someting like (test x) 20:13:42 and get 1 20:13:48 you can't access x from exp, unless you pass the name to the macro also 20:14:01 (otherwise it's breaking hygiene) 20:14:11 since it evaluates x before it gets passed? 20:14:24 Evaluates isn't the right word 20:14:41 It's in a different lexical scope 20:14:41 how do I pass the name to the macro also? 20:14:57 (define-syntax test (syntax-rules () ((_ name exp) (let ((name 1)) exp)))) 20:15:11 -!- tonyg [n=tonyg@host226.lshift.net] has quit ["Leaving"] 20:15:17 well that's no fun 20:15:28 I *think* you can also put the x between the empty parens you have now 20:15:46 That would work like the => and the else in a cond clause 20:15:50 why is there a pattern-matching language at the meta-level but not the base-level? 20:15:51 I treid that 20:16:01 (define-syntax test (syntax-rules (x) ((_ exp) (let ((x 1)) exp)))) 20:16:07 Adamant [n=Adamant@c-76-29-188-22.hsd1.ga.comcast.net] has joined #scheme 20:16:09 if I wanted a two-level programming language, I'd be using C++ templates 20:16:11 no luck 20:16:43 oh, right 20:16:58 The things in that expr can only be used in the pattern, not in the expansion 20:16:58 geckosenator, oleg k has good articles on how to do what you want with syntax-rules 20:17:10 sjamaan: yeah 20:17:17 Fare: link? 20:17:36 geckosenator: You might be able to do some hoop-jumping to make that work though, depending on how flexible you want the macro to be :/ 20:17:40 this is why I like syntax-case :) 20:18:02 leppie: it can handle it? 20:18:31 lowlycoder [n=x@unaffiliated/lowlycoder] has joined #scheme 20:18:50 yes 20:19:00 ok I have to learn about syntax-case now 20:19:58 geckosenator, search for oleg kyselyov, macros, hygiene, syntax-rules, etc. 20:20:13 bughunter2 [n=j@ip4da4427e.direct-adsl.nl] has joined #scheme 20:20:20 -!- lowlycoder [n=x@unaffiliated/lowlycoder] has quit [Client Quit] 20:20:59 geckosenator: You could use er macros if you're in Chicken, since that will be part of chicken core in 4 20:21:04 presto10 [n=user@cs181131.pp.htv.fi] has joined #scheme 20:21:11 (they're lowlevel, unlike syntax-case, though) 20:21:18 sjamaan: er macros? 20:21:24 dudrenov [n=user@67.101.217.41] has joined #scheme 20:21:24 explicit renaming 20:21:26 lisppaste: url 20:21:26 To use the lisppaste bot, visit http://paste.lisp.org/new/scheme and enter your paste. 20:22:26 leppie pasted "syntax-case" at http://paste.lisp.org/display/77791 20:23:39 leppie annotated #77791 "untitled" at http://paste.lisp.org/display/77791#1 20:24:43 aleix [n=aleix@46.Red-83-61-3.dynamicIP.rima-tde.net] has joined #scheme 20:24:58 -!- aleix [n=aleix@46.Red-83-61-3.dynamicIP.rima-tde.net] has quit [Client Quit] 20:25:44 rudybot: eval (define-syntax test (syntax-rules () ((_ name exp) (let ((name 1)) exp)))) 20:25:46 proq: your sandbox is ready 20:25:51 rudybot: eval (test x) 20:25:51 proq: error: eval:1:0: test: bad syntax in: (test x) 20:26:00 (test x x) 20:26:32 oh 20:26:42 (test x (+ x 1)) to be sure :) 20:26:59 ecraven [n=nex@140.78.42.103] has joined #scheme 20:29:31 -!- dlt__ [n=dlt@201.80.181.75] has quit [Read error: 110 (Connection timed out)] 20:30:07 -!- ecraven [n=nex@140.78.42.103] has quit [Client Quit] 20:32:46 presto10` [n=user@cs181131.pp.htv.fi] has joined #scheme 20:37:58 where is the animation foo in PLT? 20:38:06 I'd like to teach my gf using it 20:38:30 arcfide [n=arcfide@adsl-99-137-200-228.dsl.bltnin.sbcglobal.net] has joined #scheme 20:40:48 annodomini [n=lambda@130.189.179.215] has joined #scheme 20:47:08 leppie: I don't have datum->syntax 20:47:57 -!- presto10 [n=user@cs181131.pp.htv.fi] has quit [Read error: 110 (Connection timed out)] 20:49:18 -!- barney [n=bernhard@p549A0B33.dip0.t-ipconnect.de] has quit [Remote closed the connection] 20:50:02 -!- MichaelRaskin_ [n=raskin@gwh-1-177-mytn23k1.ln.rinet.ru] has quit [Remote closed the connection] 20:51:16 geckosenator, why not just use syntax-case? 20:51:33 I tried 20:51:39 leppie's example does 20:51:49 but it also uses datum->syntax 20:52:27 (and provides it!) 20:53:08 really I don't see hwere 20:57:50 elderK [n=zk@219-89-246-26.adsl.xtra.co.nz] has joined #scheme 20:57:58 Hey guys, 20:58:04 I was just fiddling with binary IO in Scheme. 20:58:10 wb elderK 20:58:26 -!- gustavold [n=gustavol@taubate.lcpd.ime.usp.br] has left #scheme 20:58:26 And well, is there any SRFI that has bitwise logic? Like, bitshifting? 20:58:34 without having to divide/use quotient? 20:58:37 :D an dhey, sjamaan! 20:58:38 -!- rmns [n=ramunas@78-61-90-37.static.zebra.lt] has left #scheme 20:58:51 :P I was writing a little program to extract all the stuff out of .bmp file for a little excersize. 20:59:05 elderK: Most Scheme's have something around that will do this, but they do not all agree. Usually they are pretty comparable though. 20:59:35 I mean, yeah, I can shift 0x21000000 right 32bits, if I divide it by 65536 :P 20:59:42 -!- hotblack23 [n=jh@p5B055614.dip.t-dialin.net] has quit [Read error: 110 (Connection timed out)] 20:59:43 MichaelRaskin_ [n=raskin@gwh-1-177-mytn23k1.ln.rinet.ru] has joined #scheme 20:59:57 elderK: Chez uses ASH. 21:00:11 you mean 16 bits 21:00:18 Also, the other issue I had, was that when I load a file into memory - at least in chicken, I must load into a blob or a u8vector. If I want to pull a u16 or u32 from that u8 vector, I've had to piece them together myself. 21:00:23 Ash? :) 21:00:29 and I do, Fare. 21:00:30 :) 21:00:41 Thanks fo rcatching me there. 21:00:44 elderK: Arithmatic Shift; the other is FXSRL. 21:01:13 :D yus, it has fxsh* 21:01:23 Alrighty. 21:01:31 what does the fx imply there? 21:01:55 elderK: Did you check the documentation of your Scheme to see what the procedure do? Some are bitwise, others are different. 21:01:59 Normally it means fixnum. 21:02:14 I cant actually find these in the Chicken manual. 21:07:42 :) Also, if someone would tell me how to enter numbers in Scheme, in hexidecimal, Id be much appreciative :) 21:07:47 *elderK* looks innocent, flutters eyelashes 21:07:48 :P 21:08:25 elderK: Yeah, right...read R5RS. :-) *cough*#x10*cough* 21:08:43 :P 21:11:09 heheeh 21:11:10 :d 21:11:14 :D Thank you Arcfide :D 21:11:41 bughunter2: You can create shared bindings :) 21:11:46 :D 21:12:04 Which means you can have a vector of u(8|16|32), all sharing the same memory. 21:12:10 yay 21:12:15 sort of like unions, i figure? 21:12:28 (excuse my shameless blasphemy) 21:12:31 naw, more like safe typecasted pointers. 21:12:42 heh 21:14:14 ^_^ Guile seems cool too. 21:14:14 :D 21:15:08 arcfide: One thing I was wondering about earlier today is, how many of the dynamic features in Scheme, are still usable when the application is compiled down? 21:15:31 i wondered that too :) 21:15:43 I figure the Scheme runtime still allows for an aweful large amount of things. 21:15:51 that all the macros would be expanded at compiletime? 21:16:22 elderK: Scheme can use everything at runtime, and everything at compiletime, generally. 21:16:44 o_O Really? 21:16:57 doesn't that mean it has to add a lot of code to the compiled program? 21:17:02 No. 21:17:03 to be able to do 'everything' 21:17:10 Just because it is possible to use it doesn't mean you have to use it. 21:17:28 but imagine you do use it, would that mean a (lot) larger executable? 21:17:29 What about, say, the situation where ... we get the user to enter in some string - we then turn that string into a symbol and use it in the code later, with eval. The symbol he entered is really a keyword for a macro, which then has to be expanded? 21:17:37 The Chez Scheme runtime, which includes a debugger, macro system, and such, is only about 750K. 21:17:47 Woah, thats not bad 21:17:47 not bad 21:17:58 I figure that's shipped as a dso too? 21:18:18 elderK: It's an image boot file that you use in your software. 21:22:51 -!- AtnNn [n=welcome@modemcable087.62-56-74.mc.videotron.ca] has quit ["!"] 21:24:07 elderK: You should also keep in mind, however, that it's not always so simple. In your case, you can't just simply use eval to use a macro. 21:26:01 Did anyone here use cairo checken egg? I've got a question about how to initialize matrices. 21:26:26 -!- Fare [n=Fare@ita4fw1.itasoftware.com] has quit ["Leaving"] 21:30:34 Hm...elderK, actually, it is probably better that you think of macros as only existing at compile/expansion time. 21:31:57 :) 21:32:06 well in any case I suck ad writing macros 21:32:26 elderK: In point of fact, when running your code, the code will be stripped of all macros during expansion phase, and only the runtime code will be left. However, it is possible to evaluate new code in which there is a new expansion phase, IIUC. Also, during expansion phase, it is possible to execute arbitrary code, in which case, that expand phase is actually a runtime phase in itself with another phase above it. 21:32:31 I figured it would be a good idea to avoid expansion and well ,the expensive seeming things at runtime. 21:32:42 IIUC? 21:34:14 Ok then. Is it possible in interpreter mode in chicken to define locations, use pointers and so on? Seems that not :( 21:34:26 During the expansio nof macros, it is possible to execute arbitrary code - this slightly confuses me - unless you can define new macros at runtime ? 21:35:19 http://en.wiktionary.org/wiki/IIUC elderK 21:38:08 The point is that cairo egg does not have functions returning pointers matrices. All of them get a pointer to a structure and mutate that structure. So I should allocate the structure of the certain type and pass a pointer to it to a function :( 21:38:23 s/pointers matrices/pointers to matrices 21:39:26 :) cheeks hkBst 21:41:51 Daemmeru` [n=goetter@1133sae.mazama.net] has joined #scheme 21:41:51 -!- Daemmerung [n=goetter@1133sae.mazama.net] has quit [Read error: 104 (Connection reset by peer)] 21:44:53 But seems, that I cannot do that in interpreter without modifying cairo egg or creating my own one 21:52:37 not matrices of pointers? 21:54:33 Huh? 21:57:31 geckosenator: No. Originally cairo represents an affine-transform-matrix as a simple C structure (so, in C you can easily create an instance). And then all the matrix-related functions just take the pointer to that structure and mutate it. In chicken seems that you cannot just create an instance of a structure and cannot use pointer to it when in repl or not compiling the module, so, that's why I didn't find a way to use matrices in with c 21:57:31 airo egg still. 21:58:43 Mr-Cat: Define a small foreign interface in one shared module, compile it and load it. Then you can use anything you want from the REPL, including direct calls to (wrapped) C functions. 21:59:21 zbignew: yeah, seems, I'll have to 22:00:33 Unless you're using something like libffi, that issue is not specific to Chicken. 22:00:49 What is libffi? 22:01:38 Of course there is the lazy-ffi egg as well, but it's the wrong path to go down. Load all your C functions in one file, compile it with easyffi, export everything, and then you have a REPL testbed. Simple. 22:01:52 zbigniew: In fact, the best decision IMHO is to patch the cairo egg itself - to render it usable without any additional modules 22:02:51 I see, I did not realize you were talking about the cairo egg. That egg is 5 years old and undocumented. 22:03:48 zbigniew: yeah, but the documentation is unnecessary, the egg is rather thin cairo wrapper 22:04:06 The matrices seem to be the only issue 22:04:10 for me 22:05:20 why are your matrices in C? 22:05:24 why not just store them in scheme? 22:06:05 lowlycoder [n=x@unaffiliated/lowlycoder] has joined #scheme 22:07:50 Mr-Cat: please feel free to patch the cairo egg. Although I am not sure exactly what functionality is missing, if you are missing some, please add it 22:08:01 -!- lowlycoder [n=x@unaffiliated/lowlycoder] has quit [Client Quit] 22:08:06 lowlycoder [n=x@unaffiliated/lowlycoder] has joined #scheme 22:08:11 geckosenator: Because I'm talking about how to create matrices, used internally by cairo. I was going to pass them cairo functions, because I don't want to rotate,scale,etc. geometrical figures myself. 22:08:20 ok 22:08:55 can't you run opengl on top of cairo? 22:09:10 breily [n=breily@137.54.31.121] has joined #scheme 22:12:10 -!- kniu [n=kniu@DA-YU.RES.CMU.EDU] has quit ["Leaving"] 22:14:10 zbigniew: `Although I am not sure exactly what functionality is missing' - seems to me, that it's impossible to initialize a transformaion matrix when not compiling the module. At least I don't know, how to create an instance of C structure and then use a pointer to it, say, in repl. Or is it possible? 22:14:11 -!- annodomini [n=lambda@wikipedia/lambda] has quit [] 22:14:46 I have read the source now and you are right--the implementation is bizarre. 22:16:15 opengl is excellent at rotating and scaling geometrical figures. 22:17:04 geckosenator: I don't think that this is necessary even if possible. 22:17:48 synx: Opengl will also do, but it is more complex, than cairo. 22:18:27 -!- bpalmer [n=user@unaffiliated/bpalmer] has left #scheme 22:19:09 -!- presto10` [n=user@cs181131.pp.htv.fi] has quit [Remote closed the connection] 22:19:10 What I essentially have is a bunch of primitives (i.e. squares) with a matrix attached to each - and I just want to render them and save to a png. 22:19:50 -!- orgy` [n=ratm_@pD9FFC124.dip.t-dialin.net] has quit ["Gone."] 22:19:50 may be more complex, but it might be easier than trying to figure out how to allocate C structure matrices. 22:20:44 synx: Well, maybe, but that's not a time-limited task - that's just my own small project. 22:21:47 Truthfully I don't know how to render an OpenGL scene to a png file. 22:22:17 Also cairo provides a cairo_matrix_init function, so you don't have to access the members at all, only know how large the structure is overall. 22:24:34 -!- breily [n=breily@137.54.31.121] has quit [Read error: 104 (Connection reset by peer)] 22:25:07 breily [n=breily@137.54.31.121] has joined #scheme 22:25:14 Mr-Cat: ok, I think the egg could do with some rewriting, but in the interim, here's one possible solution: 22:25:47 -!- elderK [n=zk@219-89-246-26.adsl.xtra.co.nz] has quit [Read error: 110 (Connection timed out)] 22:25:52 synx: Yeah, cairo_matrix_init is what I was trying to use 22:26:05 ... use define-foreign-record to create accessors and constructors for a cairo-matrix struct 22:26:25 (add that to the egg) 22:26:43 constructor, singular, and destructor, I mean 22:27:06 -!- breily [n=breily@137.54.31.121] has quit [Read error: 131 (Connection reset by peer)] 22:27:39 Then you've have procedures e.g. make-cairo-matrix and free-cairo-matrix which you can use, from the REPL, to allocate and deallocate space for a matrix that can be passed to the existing procedures 22:28:07 breily [n=breily@137.54.31.121] has joined #scheme 22:28:22 -!- Judofyr_ [n=Judofyr@c349BBF51.dhcp.bluecom.no] has quit [Remote closed the connection] 22:28:42 -!- breily [n=breily@137.54.31.121] has quit [Read error: 54 (Connection reset by peer)] 22:28:55 breily [n=breily@137.54.31.121] has joined #scheme 22:29:09 -!- breily [n=breily@137.54.31.121] has quit [Remote closed the connection] 22:29:36 zbigniew: Ok thanks. I'll try that (maybe tomorrow - it is almost 3 am here now :) ) 22:29:46 In the REPL, you'll see this as a bare pointer, so be careful as there is no safety check 22:29:50 Well, I mean 2:30 am 22:30:55 zbigniew: Well, bare pointers are not so bad :) But iirc in imlib2 egg they-re wrapped into records 22:31:37 -!- Adamant [n=Adamant@unaffiliated/adamant] has quit [] 22:35:22 Mr-Cat: once you use define-foreign-record, you can delete the define-foreign-type definition for cairo_matrix_t; it will be generated automatically. 22:35:37 Ok 22:36:42 I would do this for you, but I cannot test the result. 22:38:16 Adamant [n=Adamant@c-76-29-188-22.hsd1.ga.comcast.net] has joined #scheme 22:38:46 -!- Quadrescence [n=quad@unaffiliated/quadrescence] has quit [Remote closed the connection] 22:40:36 zbigniew: Well, that'll be interesting for me, and I think, I'll be able to do it myself :) 22:41:09 Anyway: I'll ask for help here If I have difficulties :) 22:43:28 Btw, you mentioned that define-foreign-record also defines the pointer type? 22:45:39 It will do a define-foreign-type 22:46:14 And what will be the pointer type name? 22:48:29 sooo.. when is R7RS coming out? 22:50:06 Hehe 22:50:24 in 2019-2020 I think :) 22:50:28 -!- rtra [n=user@unaffiliated/rtra] has quit ["ERC Version 5.2 (IRC client for Emacs)"] 22:50:41 just curious, what OS are most of you using? 22:50:58 Mr-Cat: (define-foreign-record (cairo_matrix_t "cairo_matrix_t") ...) would declare a foreign-type called cairo_matrix_t, pointing to the c type "cairo_matrix_t" 22:51:21 zbigniew:ah, thanks 22:51:45 the naming is perhaps not ideal, but you don't have to change any of the other code then 22:52:30 don't forget to specify a (constructor: ...) and (destructor: ...) 22:53:14 yeah, I'm reading about define-foreign-record now... that does not seem to be difficult 22:53:28 bughunter2: in order of most used: Mac OS X, FreeBSD and WinXP 22:53:40 cool :) 22:53:57 so, thanks a lot, zbigniew 22:54:02 you're welcome 22:54:24 Arelius_: you use FreeBSD as a desktop OS too? 22:54:39 I was only listing desktops 22:54:46 hehe :) 22:54:48 FreeBSD makes a great desktop OS 22:54:59 proq: agreed. 22:55:03 what makes it great to you guys? 22:56:39 stable fast functional... *shrugs* it's an OS it's job is mostly to stay out of the way. 22:56:55 yeah 22:57:18 what is your favorite window manager, Arelius_? 22:58:14 Meh, I've been using stumpwm 22:58:36 Not particularly settled on a wm yet though. 22:58:40 ah 22:59:41 I want compositing, which isn't something tiling wm's really want to give me 23:00:07 heh 23:00:26 lately i've been trying various WMs/DEs on and off 23:00:30 kind of stuck to xfce 23:01:20 neat 23:02:11 Someone just released a port of dwm to scheme, been thinking about hacking that to do some tiling 23:02:59 fun :) 23:07:47 conswm doesn't do tiling? 23:08:32 zbigniew: it might 23:08:41 Don't have it running in chicken 4 yet 23:08:46 which is what I use on the BSD box 23:09:06 and I really ment hacking it to do compositing 23:17:04 -!- stepnem [n=xchat@topol.nat.praha12.net] has quit [Operation timed out] 23:17:44 -!- athos [n=philipp@92.250.250.68] has quit [Remote closed the connection] 23:17:44 stepnem [n=xchat@topol.nat.praha12.net] has joined #scheme 23:19:15 bombshelter13_ [n=bombshel@209-161-225-159.dsl.look.ca] has joined #scheme 23:19:57 -!- bweaver [n=user@75.148.111.133] has quit [Read error: 113 (No route to host)] 23:20:00 -!- jewel [n=jewel@dsl-242-188-120.telkomadsl.co.za] has quit [Read error: 113 (No route to host)] 23:24:53 -!- lowlycoder [n=x@unaffiliated/lowlycoder] has quit ["leaving"] 23:30:15 -!- saccade_ [n=saccade@BRAIN-AND-COG-THREE-TWELVE.MIT.EDU] has quit ["This computer has gone to sleep"] 23:31:07 -!- Khisanth [n=Khisanth@pool-141-157-243-212.ny325.east.verizon.net] has quit [Read error: 101 (Network is unreachable)] 23:34:26 -!- ambient [n=ambi@julma.lnet.fi] has quit [Read error: 110 (Connection timed out)] 23:34:44 ambient [n=ambi@julma.lnet.fi] has joined #scheme 23:47:23 -!- Mr-Cat [n=Mr-Cat@bahirkin1507.static.corbina.ru] has quit [Remote closed the connection] 23:47:26 rtra [n=user@unaffiliated/rtra] has joined #scheme 23:48:54 elderK [n=zk@122-57-255-204.jetstream.xtra.co.nz] has joined #scheme 23:49:27 Sanctuary, at last! 23:49:36 *elderK* runs into the room, dives onto sofa, sighs in relief 23:52:11 annodomini [n=lambda@c-75-69-96-104.hsd1.nh.comcast.net] has joined #scheme 23:52:12 -!- hkBst [n=hkBst@gentoo/developer/hkbst] has quit [Read error: 104 (Connection reset by peer)] 23:53:58 -!- Edico [n=Edico@unaffiliated/edico] has quit ["Leaving"] 23:57:39 kniu [n=kniu@128.237.231.101] has joined #scheme