00:00:30 Fare: i just looked at the code quickly. i think csv.scm might do more 00:01:09 http://www.neilvandyke.org/csv-scm/csv.html 00:03:37 -!- dmoerner_ [n=dmr@ppp-71-139-45-71.dsl.snfc21.pacbell.net] has quit ["leaving"] 00:03:48 probably -- just be sure to not do less -- and also, you might want to move any deep parsing (e.g. of numbers) to a layer about CSV parsing itself 00:03:58 see the docs I point to in my package 00:04:12 dmoerner_ [n=dmr@ppp-71-139-45-71.dsl.snfc21.pacbell.net] has joined #scheme 00:04:17 CSV only specifies serializing lists of strings 00:04:29 you should be wary of forcing any interpretation on those strings 00:04:35 i don't 00:04:38 ok 00:06:14 -!- geckosenator [n=sean@71.237.94.78] has quit [Read error: 110 (Connection timed out)] 00:09:49 -!- Guest80686 [n=m@dslb-088-066-226-164.pools.arcor-ip.net] has quit ["This computer has gone to sleep"] 00:10:08 -!- athos [n=philipp@92.250.204.223] has quit ["leaving"] 00:12:33 so um... syntax-rules... I have (_ id type) and I want to get the string "prefix_id" passed to a function, with id substituted instead of literally as 'id' 00:12:59 plt people will cringe if they see the non-contracts: http://www.neilvandyke.org/temporary/contracts-brutalized.png 00:13:12 so (define-thingy a) would result in (foo bar etc "prefix_a" etc) 00:14:40 synx: you can't do that with syntax-rules. you need syntax-case 00:14:40 allyn [n=allynbau@dhcp-0-109-212-67.cf-res.cfu.net] has joined #scheme 00:14:40 also, if you can't do it with syntax-rules, it's a good idea to rethink whether you need to do it that way :) 00:15:24 oleg K will show you that you CAN do it with syntax-rules 00:15:33 eh, just that this C library prefixes its names, and I want to define the FFI just by the names not the prefix 00:16:04 while still dlsymming the right names with prefixes applied. 00:16:13 synx: ok for THAT you need syntax-case 00:16:29 *synx* whimpers 00:22:55 eno_ [n=eno@adsl-70-137-164-228.dsl.snfc21.sbcglobal.net] has joined #scheme 00:23:23 -!- hotblack23 [n=jh@p5B0562A9.dip.t-dialin.net] has quit [Read error: 60 (Operation timed out)] 00:26:17 -!- Edico [n=Edico@unaffiliated/edico] has quit ["Leaving"] 00:27:08 -!- ayrnieu [n=julianfo@c-76-30-82-6.hsd1.tx.comcast.net] has quit ["Reconnecting"] 00:27:18 ayrnieu [n=julianfo@c-76-30-82-6.hsd1.tx.comcast.net] has joined #scheme 00:29:04 sstrickl [n=sstrickl@c-66-31-28-74.hsd1.ma.comcast.net] has joined #scheme 00:29:14 -!- drdo` [n=psykon@167.111.54.77.rev.vodafone.pt] has quit [Remote closed the connection] 00:33:06 MatrixFrog [n=TJ@208.179.109.115] has joined #scheme 00:33:41 hm... 00:34:00 Modius_ [n=Modius@adsl-69-149-118-63.dsl.austtx.swbell.net] has joined #scheme 00:34:25 #'(_ id type) ... still don't know how to turn that into #'(etc prefix_id etc etc) 00:34:34 It might be just beyond me. 00:35:09 It's like ## in cpp, but... that's cpp. 00:35:35 -!- eno [n=eno@nslu2-linux/eno] has quit [Read error: 110 (Connection timed out)] 00:35:44 do it first in syntax-rules, as much as can be done there. then do the easy conversion of that to syntax-case. then there will be only one bit of the syntax-case form that you need to change 00:36:30 if you're doing it in plt, it involves syntax->datum and then datum->syntax 00:36:51 Oh I have to do that? 00:37:07 hmm 00:37:28 So how to get '(1 2 3) to '(1 prefix_2 3) ? :3 00:37:41 what's prefix_2 ? 00:37:57 It's 'prefix_2 00:38:19 Could be "prefix_2" but oddly the FFI seems to accept symbols just as well. 00:38:26 you need to synthetize symbols using syntax-case 00:38:35 synx: you have to match the form first, and then inspect the syntax objects programmatically. then you can get a symbol or string from the syntax object, prepend your prefix, and reassemble the syntax 00:38:42 -!- Modius__ [n=Modius@99.179.100.204] has quit [Read error: 60 (Operation timed out)] 00:39:11 syntax-rules can do pretty much anything but munging symbols 00:40:00 I think I can see how to do it hm... 00:42:04 stepnem [n=chatzill@topol.nat.praha12.net] has joined #scheme 00:45:58 jonrafkind [n=jon@c-98-202-86-149.hsd1.ut.comcast.net] has joined #scheme 00:46:24 underspecified [n=eric@softbank220043052007.bbtec.net] has joined #scheme 00:48:06 -!- Fare [n=Fare@c-98-216-111-110.hsd1.ma.comcast.net] has quit ["Leaving"] 00:54:04 -!- rdd` [n=rdd@c83-250-154-52.bredband.comhem.se] has quit [Read error: 104 (Connection reset by peer)] 00:54:19 rdd` [n=rdd@c83-250-154-52.bredband.comhem.se] has joined #scheme 00:57:44 -!- dmoerner_ [n=dmr@ppp-71-139-45-71.dsl.snfc21.pacbell.net] has quit [Read error: 104 (Connection reset by peer)] 00:57:44 -!- dmoerner [n=dmr@ppp-71-139-45-71.dsl.snfc21.pacbell.net] has quit [Connection reset by peer] 00:57:58 dmoerner [n=dmr@ppp-71-139-45-71.dsl.snfc21.pacbell.net] has joined #scheme 00:58:17 dmoerner_ [n=dmr@ppp-71-139-45-71.dsl.snfc21.pacbell.net] has joined #scheme 00:58:58 saccade [n=saccade@65-78-24-47.c3-0.smr-ubr1.sbo-smr.ma.cable.rcn.com] has joined #scheme 00:59:30 -!- dmoerner [n=dmr@ppp-71-139-45-71.dsl.snfc21.pacbell.net] has quit [Client Quit] 00:59:34 -!- dmoerner_ [n=dmr@ppp-71-139-45-71.dsl.snfc21.pacbell.net] has quit [Client Quit] 01:00:42 dmoerner [n=dmr@ppp-71-139-45-71.dsl.snfc21.pacbell.net] has joined #scheme 01:02:19 offby1` [n=user@q-static-138-125.avvanta.com] has joined #scheme 01:04:50 rudybot_ [n=luser@q-static-138-125.avvanta.com] has joined #scheme 01:05:51 -!- offby1 [n=user@q-static-138-125.avvanta.com] has quit [Read error: 60 (Operation timed out)] 01:06:20 -!- dmoerner [n=dmr@ppp-71-139-45-71.dsl.snfc21.pacbell.net] has quit ["Leaving"] 01:15:36 okay I think I got it! 01:16:17 https://synx.us.to/code/syntax-prefix.scm 01:16:36 I've never used syntax-case before, or really syntax much at all, so let me know if I'm doing it wrong there... 01:18:33 -!- rudybot [n=luser@q-static-138-125.avvanta.com] has quit [Read error: 113 (No route to host)] 01:19:14 -!- saccade [n=saccade@65-78-24-47.c3-0.smr-ubr1.sbo-smr.ma.cable.rcn.com] has quit [Read error: 54 (Connection reset by peer)] 01:20:38 I have a file, data.scm, that contains (module data scheme (define x 10) ...), in another file util-functions.scm that contains (module util-functions scheme (require "data.scm") (display x) ...). When I compile it with MrEd I get this error: "util-functions.scm:5:9: compile: unbound identifier in module in: x" 01:21:31 Why are the definitions from data.scm not being brought into util-functions.scm? 01:22:10 saccade [n=saccade@65-78-24-47.c3-0.smr-ubr1.sbo-smr.ma.cable.rcn.com] has joined #scheme 01:23:39 dmoerner [n=dmr@ppp-71-139-45-71.dsl.snfc21.pacbell.net] has joined #scheme 01:24:47 danking: (provide x) 01:25:45 eli: Do I have to (provide ) every definition I made in data.scm? 01:26:12 -!- MatrixFrog [n=TJ@208.179.109.115] has left #scheme 01:26:20 Either that, or (provide (all-defined-out)), or (provide (except-out (all-defined-out) foo bar)) 01:28:11 -!- Rhetosaur [n=heartles@203.97.179.3] has left #scheme 01:28:29 eli: do you happen do know how to create a styled-paragraph in a .scrbl file? 01:28:51 What do you mean by "styled"? 01:29:02 nevermind. that is a scribble term 01:29:21 In that case it's the #:style argument, no? 01:32:32 -!- 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"] 01:33:37 -!- stepnem [n=chatzill@topol.nat.praha12.net] has quit [No route to host] 01:37:36 eli: i am not using a procedure form to create paragraphs. it's just doing it tex-like, using blank lines to delimit 01:38:31 make-styled-paragraph and styled-paragraph are not bound 01:39:28 neilv: Search for them in the docs, and it'll tell you where they're coming from. (Also in a title attribute so you should see it when you hover the mouse over the identifier.) 01:40:16 ayrnieu_ [n=julianfo@c-76-30-82-6.hsd1.tx.comcast.net] has joined #scheme 01:40:22 ah, so i have to import another library. thanks 01:41:01 -!- ilitirit [n=john@watchdog.msi.co.jp] has quit ["Leaving"] 01:41:46 -!- elias` [n=me@unaffiliated/elias/x-342423] has quit [Read error: 145 (Connection timed out)] 01:43:12 neilv: Don't forget that these @thing{...}s are just sexprs -- so you can define your own function or macros and use them. 01:43:19 slava [n=slava@li13-154.members.linode.com] has joined #scheme 01:46:26 so scheme48 bignums don't work if sizeof(long) != sizeof(int) huh? 01:46:51 orgy_ [n=ratm_@pD9FFBAE9.dip.t-dialin.net] has joined #scheme 01:48:17 borism [n=boris@195-50-200-218-dsl.krw.estpak.ee] has joined #scheme 01:48:38 -!- slava [n=slava@li13-154.members.linode.com] has left #scheme 01:49:12 -!- X-Scale [i=email@2001:470:1f08:b3d:0:0:0:2] has left #scheme 01:49:40 -!- Modius_ [n=Modius@adsl-69-149-118-63.dsl.austtx.swbell.net] has quit [Read error: 104 (Connection reset by peer)] 01:50:07 Modius_ [n=Modius@adsl-69-149-118-63.dsl.austtx.swbell.net] has joined #scheme 01:51:41 @(make-styled-paragraph (list (make-element "version" '("Foo"))) "versionbox") 01:52:27 that works, although it abuses the formatter for semantically inappropriate purposes 01:53:46 borism__ [n=boris@195-50-199-28-dsl.krw.estpak.ee] has joined #scheme 01:53:48 -!- ayrnieu [n=julianfo@c-76-30-82-6.hsd1.tx.comcast.net] has quit [Read error: 110 (Connection timed out)] 01:55:18 -!- dmoerner [n=dmr@ppp-71-139-45-71.dsl.snfc21.pacbell.net] has quit [Read error: 60 (Operation timed out)] 01:55:33 -!- borism_ [n=boris@195-50-200-37-dsl.krw.estpak.ee] has quit [Read error: 145 (Connection timed out)] 01:56:14 ayrnieu [n=julianfo@c-76-30-82-6.hsd1.tx.comcast.net] has joined #scheme 01:59:15 borism_ [n=boris@195-50-201-163-dsl.krw.estpak.ee] has joined #scheme 01:59:18 tripwyre [n=sathya@117.193.161.233] has joined #scheme 01:59:54 is there any standard function like delete-duplicates that could also be used for counting the amount of duplicates of each? 02:00:00 Def [n=joe@71.238.45.45] has joined #scheme 02:01:07 (1 2 1 3 4 1 5 6 6) -> ((1 . 3) (2 . 1) (3 . 1) (4 . 1) (5 . 1) (6 . 2)) or something like that? 02:01:07 -!- borism [n=boris@195-50-200-218-dsl.krw.estpak.ee] has quit [Read error: 145 (Connection timed out)] 02:01:51 be simple enough to write Arelius. 02:02:00 gentlepeople: i am trying to do a basic task: pass a "function" to a function. 02:02:16 I was thinking about sorting and then merging, any more efficient way to do it? 02:02:47 i've defined the function at global scope and am simply invoking it in another function, just to start output, but it's not working: http://galois.digitalsignallabs.com/image/button.scm 02:03:28 -!- orgy` [n=ratm_@pD9FFDBB7.dip.t-dialin.net] has quit [Read error: 101 (Network is unreachable)] 02:03:29 my-test-function is the function, but i'm getting an error at line 41 (i think) 02:04:10 what am i doing wrong? 02:05:34 Could be alot of things 02:05:37 what sort of error? 02:06:33 -!- borism__ [n=boris@195-50-199-28-dsl.krw.estpak.ee] has quit [Read error: 145 (Connection timed out)] 02:06:50 i pipe the button.scm file into gimp with the -b option via cat button.scm | xargs -0 gimp -d -f -s -c -b 02:06:58 and all i get is batch command: experienced an execution error. 02:07:22 Not sure I can be of much help either, I don't have gimp installed 02:07:42 I recommend trying to cut it down to the minimal set of code that causes the error 02:08:05 -!- Deformati [n=joe@71.238.45.45] has quit [Read error: 110 (Connection timed out)] 02:08:30 can you give me a very simple example of passing a "function" to a function? is this the way to do it? (ok, it's global and not passed, but this shoudl work, right?) 02:08:39 no 02:08:45 I can 02:08:56 but (func) calls the func and returns the return 02:09:00 so... 02:09:18 yes? 02:09:21 borism [n=boris@195-50-199-28-dsl.krw.estpak.ee] has joined #scheme 02:09:36 neilv: What are you trying to do, exactly? 02:09:53 (define (my-func passed-func) (passed-func)) (myfunc othr) 02:10:22 and how is "othr" defined? 02:10:27 eli: trying to put a couple web links in the right margin of the html-rendered page 02:11:02 neilv: There should be some footnote-like thing that puts the text on the RHS. 02:11:03 witha define? (define (othr) (+ 1 2)) 02:11:11 rudybot_: eval (define (my_func f x y) (f x y)) (my_func + x y) 02:11:12 Arelius: your sandbox is ready 02:11:12 Arelius: error: reference to undefined identifier: x 02:11:21 yates: that works 02:11:33 rudybot_: eval (define (my_func f x y) (f x y)) (my_func + 1 2) 02:11:33 Arelius: ; Value: 3 02:11:44 -!- ayrnieu_ [n=julianfo@c-76-30-82-6.hsd1.tx.comcast.net] has quit [Read error: 110 (Connection timed out)] 02:12:02 eli: i could really use full-text search within the current manual 02:12:07 joelmccracken_ [n=joelmccr@pool-72-95-203-34.pitbpa.east.verizon.net] has joined #scheme 02:12:24 Arelius: ok, thanks - let me re-examine 02:12:50 neilv: Well... That would be much more difficult to do in JS. 02:12:57 aha, "margin-note" 02:13:05 neilv: But you could look through the docs and find an example, then grep for the source. 02:13:30 -!- orgy_ [n=ratm_@pD9FFBAE9.dip.t-dialin.net] has quit [Remote closed the connection] 02:14:07 it would be hard to do, but very helpful. doc writers won't think to index all the terms that students/users might search by 02:14:23 neilv: I know. 02:14:54 -!- borism_ [n=boris@195-50-201-163-dsl.krw.estpak.ee] has quit [Read error: 145 (Connection timed out)] 02:15:09 you could even do it in just javascript, without a server. break up the full-text indexes by the first character or two... :) 02:16:54 mejja [n=user@c-4bb5e555.023-82-73746f38.cust.bredbandsbolaget.se] has joined #scheme 02:17:34 -!- JoelMcCracken [n=joelmccr@pool-72-95-196-136.pitbpa.east.verizon.net] has quit [Read error: 110 (Connection timed out)] 02:18:44 neilv: That would require going to ajax land, to load the indexes, plus, it will make the searc much more complex. 02:18:51 -!- ayrnieu [n=julianfo@c-76-30-82-6.hsd1.tx.comcast.net] has quit ["Reconnecting"] 02:19:01 ayrnieu [n=julianfo@c-76-30-82-6.hsd1.tx.comcast.net] has joined #scheme 02:20:38 is guile a reasonable scheme implementation to learn with? 02:20:47 No. 02:21:10 gauche? 02:21:11 yates: just use plt and be done with it 02:21:46 mejja: what's wrong with guile? 02:22:55 troter [n=troter@nurikabe.timedia.co.jp] has joined #scheme 02:25:43 plt has 100x the work being put into it, compared to guile 02:26:13 and 100x the mail 02:26:21 *foof* can't keep up with the mailing list 02:28:31 i can't either 02:29:02 plt people are recently sensitive to the email list problem, and i think it is improving already 02:29:13 DrScheme? 02:29:23 yates: drscheme is part of plt 02:29:28 mark it as spam and be done with it 02:29:57 yates: yes, my son? 02:30:09 -!- rudybot_ is now known as rudybot 02:30:17 -!- offby1` is now known as offby1 02:30:52 what's wrong with guile ? is there a problem with the implementation or do you just mean a text-based no-frills implementation is not very suitable for a beginner? 02:31:12 rudybot_: were we speaking? 02:31:13 This is a family channel... 02:31:37 yates: this is one of those "hear me now and believe me later" things 02:31:54 nothing wrong with text-based no-frills .. guile gets hated on for other reasons which can be grouped as "general shoddiness" 02:32:20 -!- Adamant [n=Adamant@unaffiliated/adamant] has quit [] 02:32:55 Adamant [n=Adamant@c-71-226-66-93.hsd1.ga.comcast.net] has joined #scheme 02:36:53 -!- joelmccracken_ [n=joelmccr@pool-72-95-203-34.pitbpa.east.verizon.net] has quit ["This computer has gone to sleep"] 02:38:52 aspect: ok 02:39:12 aspect: the gui of drscheme is a bit gaudy, but i guess i can live with it 02:40:03 I find the gui a total pain, but you can use it from the command line as well 02:40:08 how? 02:40:11 mzscheme 02:40:22 drscheme is more powerful than it looks 02:40:41 like a very smart people who looks like a dork 02:40:48 ah! 02:40:50 i'm sure many scheme programmers can relate 02:41:37 neilv: i believe it is very useful, but sometimes it's the little things... 02:42:00 like not accepting (x)emacs key sequences... 02:42:02 yates: i use emacs with quack most of the time, and fire up drscheme when i need fancier features 02:42:06 rudybot: give neilv "dunce cap" 02:42:07 mejja: your sandbox is ready 02:42:07 neilv: mejja has given you a value, say "rudybot: eval (GRAB)" to get it (case sensitive) 02:42:21 rudybot: eval (GRAB) 02:42:22 neilv: your sandbox is ready 02:42:22 neilv: ; Value: "dunce cap" 02:42:56 yates: Two things you can try -- there's a preference somewhere to disable the menu keybindings, which leaves you with an Emacs-like default 02:42:58 rudybot: your mom likes me in a way that dare not be spoken 02:42:58 neilv: eh? Try "rudybot: help". 02:43:10 rudybot: you are a gift that keeps on giving. 02:43:11 sladegen: eh? Try "rudybot: help". 02:43:19 yates: But depending on the level of Emacs-dependency you have, it is likely to not be enough. 02:43:45 yates: In that case, you can just write in Emacs and debug in DrScheme -- when you click "Run", it will offer to revert the file. 02:44:13 yates: And finally, there's something called "drsync" (I think) that someone wrote that will make DrScheme automatically revert the file. 02:44:28 is there a "drscheme" ide for (x)emacs? 02:44:32 most all new schemers should start in drscheme, even if they know emacs. 02:44:36 (package?) 02:45:16 yates: No; but what would you expect such a package to do? 02:45:19 neilv: if I'd started in drscheme, I think I'd have had to kill someone 02:46:36 rubybot: quack 02:46:50 rudybot: quack 02:46:50 yates: eh? Try "rudybot: help". 02:49:23 -!- Adamant [n=Adamant@unaffiliated/adamant] has quit [No route to host] 02:51:25 yates: I am not a toy, etc. (Well, OK, I am). 02:55:21 rudybot: apropos "what's your sign?" 02:55:21 yates: your sandbox is ready 02:55:21 yates: no matches found 02:55:31 meanburrito920_ [n=John@adsl-99-165-16-35.dsl.lsan03.sbcglobal.net] has joined #scheme 02:56:06 yates: don't try to get fresh. 02:56:18 -!- benny [n=benny@i577A1356.versanet.de] has quit [Read error: 54 (Connection reset by peer)] 02:56:59 offby1 - a mechanical girlfriend - hmmm... 02:58:25 -!- Cale [n=Cale@CPE001c10c70239-CM000e5cdd834a.cpe.net.cable.rogers.com] has quit [Read error: 60 (Operation timed out)] 02:58:48 -!- tripwyre [n=sathya@117.193.161.233] has quit [] 02:59:06 *elf* ponders mechanoid girlfriends. 02:59:16 *elf* has enough problems with the bugs in his flesh-and-blood one. 02:59:22 so ill pass. 02:59:35 i hope you don't literally mean that... 02:59:41 *snicker* 02:59:43 yeah, she's been dead six weeks. 02:59:55 *elf* goes for the poor taste marathon. 03:00:12 (shes actually into entymology and arachnology, which i most decidedly am not into.) 03:00:31 dont forget to vote, peeps. polls close soon. 03:01:03 elf: did you mean to write "entomology"? 03:01:14 or "etymology"? 03:01:47 entomology. 03:01:49 im sorry. 03:01:53 forgiven 03:01:56 im tired and a bit fried. 03:02:05 went to the orchid show today, overloaded myself in a big way. 03:02:18 i ended up being an informal docent for a large and varied group. 03:02:32 try preparing your wife for an algebra exam.. 03:02:49 been there, done that, have the claw mark scars to prove it. 03:02:56 heh 03:03:07 mine are still bloody fresh 03:03:17 i thought we were going to divorce this morning... 03:03:28 algebra like arithmetic with letters, or algebra like playing ring around the rosy with a large group in verdant fields? 03:03:36 former 03:03:39 ouch. 03:03:42 my deepest apologies. 03:03:54 very few relationships can stand the test of maths. 03:04:03 arcfide [n=arcfide@adsl-99-137-203-229.dsl.bltnin.sbcglobal.net] has joined #scheme 03:04:08 how many times can you repeat the point-slope form before you pop a blood vessel? 03:04:08 hi arcfide :) 03:04:33 yates: i found that graph paper notebooks are the creation of the almighty. 03:04:36 Gaaah! Trying to make your own RDF vocabulary is like trying to walk through a desert naked with no camel. 03:04:40 elf, hello. 03:04:44 elf: How is life? 03:04:57 arcfide: not great. still alive, though. yourself? 03:05:01 elf: we have bought reams of quad paper - it's good stuff 03:05:02 rdf vocab? 03:05:07 Doing pretty well, though I have to be careful. :-) 03:05:12 elf: Yes, for my project. 03:05:14 careful about what? 03:05:26 elf: Oh, living too high on the hog for my position in life. :-) 03:05:34 arcfide: :( 03:05:40 :-) 03:05:59 yates: mmmm... and she cant count sideways and then count up? 03:06:13 arcfide: is it better to go through the desert naked with a camel? 03:06:42 elf: she can plot points, sure. 03:06:45 elf: I am writing the RDF vocabularies to describe repositories of Scheme libraries. It's for my quasi-technical but mostly socially oriented project to attack the Mythos of non-existant libraries for most Scheme implementations. 03:07:08 yates: i was referring to finding the slope. rise vs run, or whatever the current terminology is. 03:07:09 elf: Yes, you can eat the camel, pet the camel, use the camel for shelter, and ride the camel. 03:07:20 arcfide: you cant ride the camel in missouri, its illegal. 03:07:21 :) 03:07:31 elf: I didn't know Missouri had any deserts. 03:07:33 arcfide: i see. good luck with that. 03:07:38 elf: YEah. 03:07:41 arcfide: it doesnt, but it does have llamas. 03:07:44 elf: We'll see. 03:07:53 elf: Llamas be real fun. :-D 03:07:57 all scheme implementations have some kind of libs. 03:08:39 elf: what really pops a vein is when we spend a half-hour going over something and then five minutes later it's totally gone - poof! (like the relationship between the slopes of perp and par. lines) 03:08:48 twin sons of different llamas? 03:09:17 yates: hrm, have you tried drawing a line and making her find the relevant information, with some prompting as to the steps (but without the info)? 03:09:20 elf: Yes, and there are usually lots of libraries to be found, and more to be shared if there were easy ways to search for them. 03:09:32 arcfide: the CPAN concept? 03:09:35 yes. yes, YES YEEES DAMMMIT!!! 03:09:42 elf: Neh, CPAN concepts fail in Schemeland. 03:09:44 The one-l lama, he's a priest. 03:09:53 the two l llama, hes a beast. 03:10:06 It's working name is Descot: Decentralized Scheme Code Tracker. 03:10:11 (i forget the last 2 lines of that poem, though) 03:10:40 arcfide: hrm, so youre of the opinion that the problem is availability, not compatibility? 03:11:11 elf: compatibility is something I intend to work on after availability is "solved" to my satisfaction. 03:12:24 elf: that's like Campaign 2. I had to break the project up because it is too big to fit into a single semester's course. 03:12:36 once upon a time (1/t) pretty little poly nomial... 03:13:06 Anyways, Case Sensitivity seems to be the same hot potatoe it always has been. 03:13:13 case sensitivity is ridiculous. 03:13:18 the whole stupid debate. 03:13:41 *elf* decrees that all variables, procedures, and macros must be ascii. 03:14:08 *arcfide* decrees freedom from charset and encoding lockdown! 03:14:17 Do what you want! 03:14:31 It's the "Free Case" movement! 03:14:36 then if you only use ascii, you can have case sensitivity, or you can have no case sensitivity, and it doesnt matter, cause you dont need ginormous lookup tables for either case. 03:15:01 I have a friend who is attempting to write the "bomb" of all Unicode libraries for Scheme. 03:15:16 He has spent a month or so trying to make normalization fast. 03:15:30 *yates* bids farewell to all 03:15:30 Supposedly he managed to do so. 03:15:34 -!- yates [n=yates@cpe-071-070-224-093.nc.res.rr.com] has quit ["Started wasting time elsewhere"] 03:16:00 But anyways, I think I am going to go goof. 03:16:16 oke, enjoy poofing :) 03:16:28 refusenik [n=refuseni@pool-71-246-121-39.nycmny.east.verizon.net] has joined #scheme 03:17:26 fR33 C4s3 m0\/em3nT! 03:17:37 *elf* kills sladegen on general principle. 03:17:51 -!- refusenik [n=refuseni@pool-71-246-121-39.nycmny.east.verizon.net] has quit [Client Quit] 03:19:12 -!- AtnNn [n=welcome@modemcable087.62-56-74.mc.videotron.ca] has quit [Read error: 110 (Connection timed out)] 03:19:23 arcfide: "He has spent a month or so trying to make normalization fast" 03:19:36 What's up with the american midwest obsession with performance? 03:19:37 *sladegen* hides behind his .\ama. 03:22:20 *Daemmerung* feels the need for speed 03:22:47 amca_ [n=amca@CPE-121-208-81-104.qld.bigpond.net.au] has joined #scheme 03:22:54 -!- amca_ [n=amca@CPE-121-208-81-104.qld.bigpond.net.au] has quit [Read error: 54 (Connection reset by peer)] 03:23:55 -!- raikov [n=igr@203.181.243.11] has quit [Read error: 110 (Connection timed out)] 03:28:28 benny [n=benny@i577A0BBD.versanet.de] has joined #scheme 03:31:21 jcowan [n=jcowan@cpe-74-68-154-18.nyc.res.rr.com] has joined #scheme 03:31:57 *jcowan* unvanishes. 03:35:10 *elf* unvarnishes. 03:40:20 AtnNn [n=welcome@modemcable087.62-56-74.mc.videotron.ca] has joined #scheme 03:42:52 *rudybot* withers 03:46:07 eli: what's the best forum for suggesting changes to the scribble html rendering page layout? 03:57:36 neilv: plt-dev 03:58:45 thanks 04:03:54 -!- mejja [n=user@c-4bb5e555.023-82-73746f38.cust.bredbandsbolaget.se] has quit [Remote closed the connection] 04:10:13 hm... i could embed banner ad links in this html documentation that people install 04:10:54 -!- Lemonator [n=kniu@CMU-311358.WV.CC.CMU.EDU] has quit ["Leaving"] 04:12:01 Cale [n=Cale@CPE001c10c70239-CM000e5cdd834a.cpe.net.cable.rogers.com] has joined #scheme 04:18:25 yhara [n=yhara@7.193.12.221.megaegg.ne.jp] has joined #scheme 04:31:27 reprore [n=reprore@ntkngw304058.kngw.nt.ftth.ppp.infoweb.ne.jp] has joined #scheme 04:31:46 -!- gweiqi [n=greg@69.120.126.163] has quit ["Leaving."] 04:33:51 impressions! 04:34:41 -!- kryptiskt [n=no@cust-IP-10.data.tre.se] has quit [Read error: 110 (Connection timed out)] 04:40:59 "Why don't you call me sometime when you have no class?" 04:41:07 How's that? 04:41:42 -!- metasynt1x is now known as metasyntax 04:42:03 now generating plt documentation: http://www.neilvandyke.org/csv-scheme/ 05:01:30 -!- eno_ is now known as eno 05:02:17 -!- CaptainMorgan [n=CaptainM@c-75-68-42-94.hsd1.nh.comcast.net] has quit [Read error: 110 (Connection timed out)] 05:03:14 CaptainMorgan [n=CaptainM@c-75-68-42-94.hsd1.nh.comcast.net] has joined #scheme 05:03:27 GreyLensman [n=ray@c-76-108-236-161.hsd1.fl.comcast.net] has joined #scheme 05:04:12 -!- yhara [n=yhara@7.193.12.221.megaegg.ne.jp] has quit [Read error: 113 (No route to host)] 05:06:19 tessier_1 [n=treed@mail.copilotconsulting.com] has joined #scheme 05:07:17 -!- tessier_1 is now known as tessier___ 05:10:34 tjafk1 [n=timj@e176197175.adsl.alicedsl.de] has joined #scheme 05:12:42 erfoo [i=1844acd4@gateway/web/ajax/mibbit.com/x-d5a3510a6520b3af] has joined #scheme 05:14:00 yhara [n=yhara@raichu.netlab.jp] has joined #scheme 05:14:11 I'm not trying to be some dumbass but why does list element access need linearly traverse the list from the start one-by-one? 05:14:19 . Couldn't a list be stored in blocks so that it would be much more efficient 05:15:50 lowlycoder [n=x@unaffiliated/lowlycoder] has joined #scheme 05:16:36 probably. 05:16:43 But then it'd take up more memory. 05:16:51 Ultimately you wind up with a vector. 05:17:14 vectors don't take much memory but they do need _contiguous_ memory 05:17:25 sure 05:17:33 at least, I assume they do, to be fast 05:17:54 the problem is I only ever choose a vector based on optimization concerns. Conceptually I don't need them or even want them around. 05:18:09 hash tables are also handy 05:18:19 if you're frequently searching for an item based on a key 05:18:38 yes but they are for a different purpose and when I want a hash table I don't want a ordered list, conceptually speaking. 05:19:11 choosing between a vector and a list is purely based on optimization of the underlying machine 05:19:36 I would assume that, most of the time, when you use an ordered list, you plan on traversing all the elements ... in which case you don't mind the linear access time. 05:20:07 sure 05:21:26 raikov [n=igr@203.181.243.11] has joined #scheme 05:25:58 It seems as though Erlang record types are a really messy hack to get what would be a Scheme tagged association list. 05:27:04 -!- tjafk [n=timj@e176192070.adsl.alicedsl.de] has quit [Read error: 110 (Connection timed out)] 05:28:10 reprore__ [n=reprore@ntkngw304058.kngw.nt.ftth.ppp.infoweb.ne.jp] has joined #scheme 05:28:29 -!- reprore [n=reprore@ntkngw304058.kngw.nt.ftth.ppp.infoweb.ne.jp] has quit [Read error: 113 (No route to host)] 05:28:40 -!- jcowan [n=jcowan@cpe-74-68-154-18.nyc.res.rr.com] has quit ["Bailing out"] 05:30:30 -!- bzzbzz [n=franco@modemcable027.191-81-70.mc.videotron.ca] has quit ["leaving"] 05:32:38 Adamant [n=Adamant@c-71-226-66-93.hsd1.ga.comcast.net] has joined #scheme 05:34:11 -!- Adamant [n=Adamant@unaffiliated/adamant] has quit [Client Quit] 05:34:30 mejja: I don't know about the obsession, but he appears to have good reasons for his emphasis on Unicode speed when it comes to handling character data. 05:37:48 -!- kilimanjaro [n=kilimanj@70.116.95.163] has quit ["Leaving"] 05:41:03 Eekdacat [i=Eekdacat@cpe-74-70-17-167.nycap.res.rr.com] has joined #scheme 05:42:51 if i have a list of y, an f(), and need to return the y that satisfies the max of f(y) 05:43:15 ...then you have a homework problem 05:43:25 -!- ttmrichter [n=ttmricht@221.235.63.13] has quit ["Ex-Chat"] 05:43:34 (apply max (map (f y) y)) returns the max of f(y) 05:43:48 but how would i make it just send back that y 05:43:57 Huh? 05:44:12 That Y? Which Y? 05:44:17 Why Y? 05:44:23 say f is (+ 1 y), and the list is (1 2 3 4) 05:44:43 the apply should return 4 because it's the y that satisfies the f(y) with the maximum value 05:44:50 instead it returns 5 05:45:46 There are lot's of ways to do this. 05:46:35 to make it more readable, (apply max (map (foo y) for all y in list l)) 05:46:51 This isn't homework? 05:48:07 no, this is me not being able to get inline 05:48:11 ttmrichter [n=ttmricht@221.235.63.13] has joined #scheme 05:49:17 (apply max (map (lambda (x) (+ 1 x)) `(1 2 3 4))) 05:50:25 Eekdacat: It's returning 5 because you're giving it the list (2 3 4 5) 05:51:09 i see that 05:51:50 but it needs to return 4 because that's what would satisfy the maximum of that statement 05:52:13 you gonna have to associate the computed values then 05:52:46 so change you (lambda (x) (cons x (+ q 1x))) 05:52:48 in the actual program it does that 05:53:03 oops 05:53:07 so change you (lambda (x) (cons x (+ 1 x))) 05:53:32 lisppaste: url 05:53:32 To use the lisppaste bot, visit http://paste.lisp.org/new/scheme and enter your paste. 05:54:23 AtnNn_ [n=welcome@modemcable087.62-56-74.mc.videotron.ca] has joined #scheme 05:54:32 arcfide pasted "MAX-OF" at http://paste.lisp.org/display/76009 05:54:39 actually: (lambda (x) (cons (+ 1 x) x)) is better 05:55:06 -!- AtnNn [n=welcome@modemcable087.62-56-74.mc.videotron.ca] has quit [Read error: 104 (Connection reset by peer)] 05:55:07 Eekdacat: You can use foof-loop as in the above example. 05:55:10 then simply do an assoc on the result, and get the cdr 05:55:14 s/foof-loop/foof loop/ 05:56:54 there's no need to build an alist to remember which y has f(y) 05:57:03 patmaddox [n=pergesu@ip68-4-201-9.oc.oc.cox.net] has joined #scheme 05:57:07 (apply max cadr `((1 2) (2 3) (3 4) (4 1))) 05:57:30 or something 05:57:32 singi [n=singi@85.8.10.149] has joined #scheme 05:57:36 that wont help you get the original value 05:57:59 i have it make the alist 05:58:27 so now i need max to return 3 for that list because its value is 4 05:59:53 rudybot: eval (let ((l (map (lambda (x) (cons (+ x 1) x)) '(1 2 3 4)))) (cdr (assoc (apply max (map car l)) l))) 05:59:54 leppie: your sandbox is ready 05:59:54 leppie: ; Value: 4 06:00:19 rudybot: eval (let ((l (map (lambda (x) (cons (/ 1 x) x)) '(1 2 3 4)))) (cdr (assoc (apply max (map car l)) l))) 06:00:19 leppie: ; Value: 1 06:01:51 Eekdacat: You can do it without the overhead of intermediate structures using the method I gave above. 06:02:25 athos [n=philipp@92.250.204.223] has joined #scheme 06:02:28 yes, I shall add mine is a naive way, you as the problem-solver should improve on that 06:03:06 And if you really wanted to do it like this, a FOLD might help minimize the overhead. 06:03:18 a loop macro is a terrible thing to show a student 06:03:34 neilv: He said this wasn't homework. ;-) 06:03:45 while mine is still o(n), but loops the list 3 times, you can just loop the list once 06:03:45 uh-huh 06:03:55 And it's not any worse than showing them MAP. 06:04:04 sure it is 06:04:19 MAP is just as much of an abstraction as a LOOP macro. 06:04:30 no 06:04:32 map is simple 06:04:39 but map is not the way to solve this 06:04:40 lol arcfide, you being funny :) 06:05:09 the way to solve it is with a recursive procedure (or named-let) 06:05:33 or with a foreach and mutation, shivers... :p 06:05:59 mutation is not the way to solve it 06:06:02 or fold 06:06:19 yes, neilv, notice the smiley face, was not serious 06:06:33 neilv: Which is exactly what I did. 06:07:31 also can random be used to generate negative numbers 06:07:34 loop macros obscure what's happening. terrible for a student 06:08:01 neilv: I would argue that in this case they make it plenty easy to see what you're really trying to do. 06:08:08 Rather than drop you into a mess of named-lets. 06:08:47 -!- meanburrito920_ [n=John@adsl-99-165-16-35.dsl.lsan03.sbcglobal.net] has quit [Remote closed the connection] 06:09:06 you can argue that, but it's not true 06:09:08 :) 06:10:16 arcfide annotated #76009 "Using FOLD-LEFT" at http://paste.lisp.org/display/76009#1 06:10:20 (random n) goes from 0 to n-1 right 06:11:03 arcfide: a named let is core to a student understanding recursion 06:11:17 i chose to ignore it when i started, big mistake 06:11:36 anyways, off to work, boring work :( 06:12:28 leppie: I am assuming Eekdacat already knows how named-lets work. 06:13:01 arcfide annotated #76009 "Fine!" at http://paste.lisp.org/display/76009#2 06:13:04 mmhmm 06:13:38 i didn't know arcfide started using []s in his Scheme code 06:13:52 duncanm: IU has that effect on people. Or maybe it is Chez. 06:14:30 Though I still like my case insensitivity! 06:14:38 But I've gotstago now. 06:15:15 -!- arcfide [n=arcfide@adsl-99-137-203-229.dsl.bltnin.sbcglobal.net] has quit ["Sleep"] 06:15:36 random: expects argument of type ; given -5 06:17:52 is there anything builtin to check the difference of 2 numbers 06:17:58 -!- lowlycoder [n=x@unaffiliated/lowlycoder] has quit ["leaving"] 06:17:58 regardless of sign 06:18:05 Eekdacat: -? 06:19:02 i know it's just if (xor (< a 0) (< b 0) (- a b) (+ a b) 06:21:04 Eekdacat: isn't it just (abs (- (abs a) (abs b))) 06:21:16 -!- athos [n=philipp@92.250.204.223] has quit [Remote closed the connection] 06:21:59 -!- neilv [n=user@dsl092-071-030.bos1.dsl.speakeasy.net] has quit ["Leaving"] 06:22:01 yeah you're right 06:22:57 I think you missed an abs 06:23:24 oh? 06:25:20 or included two too many 06:25:35 yeah 06:25:37 -15 and 5 06:25:42 comes out to be 10 not 20 06:25:53 Eekdacat: it should be 10 06:25:57 oh ignore me. it's not the same function at all. 06:26:03 regardless of sign, right? 06:26:15 yeh 06:26:22 so it's 10 06:26:29 no 06:26:31 it's 20 06:26:51 > (abs (- 15 -5)) 06:26:52 20 06:26:57 then how is that regardless of sign 06:26:57 better 06:27:06 i don't get what you want 06:27:26 meanburrito920_ [n=John@adsl-99-165-16-35.dsl.lsan03.sbcglobal.net] has joined #scheme 06:28:29 What do you want this operation for, Eekdacat? 06:28:39 hey Riastradh, how goes it? 06:28:43 extended random 06:28:45 Hi. 06:28:49 Eekdacat, huh? 06:28:58 generates random number between x and y 06:29:18 as opposed to 0 and y-1 06:29:43 So you want (+ X (RANDOM (ABS (- X Y))))? 06:29:58 (Throw in some fenceposts if you wish.) 06:30:36 +1 06:30:44 in the random 06:30:56 but yeah that's what i just did 06:31:26 Riastradh: been doing much hacking lately? 06:31:34 No. 06:33:00 -!- GreyLensman [n=ray@c-76-108-236-161.hsd1.fl.comcast.net] has left #scheme 06:36:41 -!- allyn [n=allynbau@dhcp-0-109-212-67.cf-res.cfu.net] has quit [Client Quit] 06:43:53 -!- AtnNn_ [n=welcome@modemcable087.62-56-74.mc.videotron.ca] has quit [Read error: 104 (Connection reset by peer)] 06:44:02 AtnNn [n=welcome@modemcable087.62-56-74.mc.videotron.ca] has joined #scheme 06:48:31 eno_ [n=eno@adsl-70-137-141-69.dsl.snfc21.sbcglobal.net] has joined #scheme 06:49:22 -!- reprore__ [n=reprore@ntkngw304058.kngw.nt.ftth.ppp.infoweb.ne.jp] has quit [Remote closed the connection] 07:00:13 -!- eno [n=eno@nslu2-linux/eno] has quit [Read error: 110 (Connection timed out)] 07:03:41 hadronzoo [n=hadronzo@adsl-70-250-178-94.dsl.rcsntx.swbell.net] has joined #scheme 07:05:16 -!- rotty [n=rotty@83-215-154-5.hage.dyn.salzburg-online.at] has quit [lindbohm.freenode.net irc.freenode.net] 07:05:16 -!- huangjs [n=user@watchdog.msi.co.jp] has quit [lindbohm.freenode.net irc.freenode.net] 07:05:16 -!- mr_uggla_ [i=mzsillan@melkinpaasi.cs.helsinki.fi] has quit [lindbohm.freenode.net irc.freenode.net] 07:05:16 -!- sad0ur [n=sad0ur@psi.cz] has quit [lindbohm.freenode.net irc.freenode.net] 07:05:16 -!- rmrfchik [n=paul@relay2.jet.msk.su] has quit [lindbohm.freenode.net irc.freenode.net] 07:05:16 -!- Fade [i=fade@outrider.deepsky.com] has quit [lindbohm.freenode.net irc.freenode.net] 07:06:05 rotty [n=rotty@83-215-154-5.hage.dyn.salzburg-online.at] has joined #scheme 07:06:05 huangjs [n=user@watchdog.msi.co.jp] has joined #scheme 07:06:05 mr_uggla_ [i=mzsillan@melkinpaasi.cs.helsinki.fi] has joined #scheme 07:06:05 sad0ur [n=sad0ur@psi.cz] has joined #scheme 07:06:05 rmrfchik [n=paul@relay2.jet.msk.su] has joined #scheme 07:06:05 Fade [i=fade@outrider.deepsky.com] has joined #scheme 07:06:49 -!- raikov [n=igr@203.181.243.11] has quit [Remote closed the connection] 07:07:53 ray_ [i=ray@the.ug] has joined #scheme 07:10:15 Modius [n=Modius@99.179.103.194] has joined #scheme 07:10:38 jeremiah [n=jeremiah@31.Red-213-98-123.staticIP.rima-tde.net] has joined #scheme 07:12:50 -!- ray_ [i=ray@the.ug] has quit ["Changing server"] 07:12:53 ray_ [i=ray@the.ug] has joined #scheme 07:13:22 -!- ray [i=ray@unaffiliated/ray] has quit [Nick collision from services.] 07:13:29 -!- ray_ is now known as ray 07:17:18 so, now i have a nice assoc list 07:17:33 how do i take the max value and return that key 07:26:48 so ((1 2) (2 3) (3 4) (4 1)) should return 3 because it has the largest value, which is 4 07:26:55 -!- Modius_ [n=Modius@adsl-69-149-118-63.dsl.austtx.swbell.net] has quit [Connection timed out] 07:28:48 #scheme is always so popular with the homework crowd, esp on the night before the hw's due 07:29:38 we've been over this 07:31:33 tripwyre [n=sathya@117.193.164.47] has joined #scheme 07:33:38 assoc list of (k v), determining k such that v is maximum in the list 07:34:43 Eekdacat: you don't need to use an assoc list 07:34:55 oh 07:35:30 well apply max on the values returns the max value 07:35:46 you can write a recursive function (or use named let) 07:35:53 Eekdacat: then don't use max 07:38:04 "assoc list of (k v), determining k such that v is maximum in the list" sounds a lot like problem #3 on this weeks assignment. I'm not saying it is. It just sounds like professor speak. 07:38:59 wow, you guys go to the same school, how fun! ;-P 07:39:02 what assignment 07:39:14 oh, so you *have* to use an assoc list 07:39:52 originally my problem was having an f() and a y, and would have to be choosing the y from l such that f(y) is maximized 07:41:39 i just worded it very properly because people around here often seem to have problems interpreting anything else 07:44:07 proper wording helps 07:44:32 -!- annodomini [n=lambda@wikipedia/lambda] has quit [] 07:46:50 well, if you don't need to use assoc, then just do it with a recursive function 07:47:14 -!- meanburrito920_ [n=John@adsl-99-165-16-35.dsl.lsan03.sbcglobal.net] has quit [Read error: 110 (Connection timed out)] 07:49:35 -!- peter_12 [n=peter_12@S010600119506b129.gv.shawcable.net] has quit [] 07:52:12 -!- erfoo [i=1844acd4@gateway/web/ajax/mibbit.com/x-d5a3510a6520b3af] has quit ["http://www.mibbit.com ajax IRC Client"] 07:54:56 (define (max-assoc l) (cond ((null? (cdr l)) (car l)) ((> (cadr (car l)) (cadr (cadr l))) (max-assoc (cons (car l) (cddr l))) (else (max-assoc (cdr l)))))) returns void every time 07:56:10 -!- tessier___ [n=treed@mail.copilotconsulting.com] has quit ["leaving"] 07:56:33 slava [n=slava@li13-154.members.linode.com] has joined #scheme 07:56:35 Riastradh: you there? 07:56:41 Eekdacat: think about writing a max-assoc-helper that has one more parameter that holds the current max value 07:56:54 oh there we go 07:57:25 yeah fixed it, don't know what was really wrong 07:57:28 parentheses 07:57:32 Riastradh: in bignum_unsigned_logbitp(), a value of type 'bignum_digit_type' is returned from a function as an 'int' 07:58:31 also, an int is shifted to the left by potentially more than sizeof(int)*8 bits 07:59:00 Riastradh: I've found similar problems in scheme48 bignum.c before 07:59:15 Riastradh: there are also issues on systems where sizeof(long) == 4 and sizeof(void*) == 8 08:01:37 ecraven [n=nex@140.78.42.103] has joined #scheme 08:03:56 Fulax [n=cyprien@pdpc/supporter/student/cnicolas] has joined #scheme 08:10:05 cadr: expects argument of type ; given 1 08:10:18 i know what it means, but elements of an association list are clearly cadrable 08:12:52 oh wait 08:16:50 johnnowak [n=johnnowa@207-38-171-48.c3-0.wsd-ubr1.qens-wsd.ny.cable.rcn.com] has joined #scheme 08:19:22 -!- Fulax [n=cyprien@pdpc/supporter/student/cnicolas] has quit ["Out of Memory: Killed process [9823] xchat."] 08:19:37 mike [n=m@dslb-088-066-253-204.pools.arcor-ip.net] has joined #scheme 08:19:45 -!- mike [n=m@dslb-088-066-253-204.pools.arcor-ip.net] has quit [Remote closed the connection] 08:27:49 -!- slava [n=slava@li13-154.members.linode.com] has left #scheme 08:34:12 lowlycoder [n=x@unaffiliated/lowlycoder] has joined #scheme 08:37:57 -!- Eekdacat [i=Eekdacat@cpe-74-70-17-167.nycap.res.rr.com] has left #scheme 08:37:59 hotblack23 [n=jh@p5B057C78.dip.t-dialin.net] has joined #scheme 08:44:07 ejs [n=eugen@77.222.151.102] has joined #scheme 08:46:05 -!- tripwyre [n=sathya@117.193.164.47] has quit [] 08:53:11 ejs1 [n=eugen@nat.ironport.com] has joined #scheme 08:55:44 -!- lowlycoder [n=x@unaffiliated/lowlycoder] has quit ["Lost terminal"] 08:59:00 orgy` [n=ratm_@pD9FFBAE9.dip.t-dialin.net] has joined #scheme 09:01:45 -!- ejs [n=eugen@77.222.151.102] has quit [Connection timed out] 09:03:55 jewel [n=jewel@dsl-242-147-152.telkomadsl.co.za] has joined #scheme 09:07:17 stepnem [n=chatzill@topol.nat.praha12.net] has joined #scheme 09:11:08 attila_lendvai [n=ati@catv-89-132-189-132.catv.broadband.hu] has joined #scheme 09:19:53 -!- johnnowak [n=johnnowa@207-38-171-48.c3-0.wsd-ubr1.qens-wsd.ny.cable.rcn.com] has quit [] 09:23:58 -!- ecraven [n=nex@140.78.42.103] has quit ["ggoleblb"] 09:33:14 tessier [n=treed@mail.copilotconsulting.com] has joined #scheme 09:36:40 -!- tessier [n=treed@mail.copilotconsulting.com] has quit [Client Quit] 09:36:43 saccade [n=saccade@65-78-24-47.c3-0.smr-ubr1.sbo-smr.ma.cable.rcn.com] has joined #scheme 09:37:47 tessier [n=treed@mail.copilotconsulting.com] has joined #scheme 09:40:50 light [n=ghost@unaffiliated/light] has joined #scheme 09:43:07 ecraven [n=nex@140.78.42.103] has joined #scheme 09:44:53 -!- 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"] 09:53:44 -!- Modius [n=Modius@99.179.103.194] has quit [Read error: 104 (Connection reset by peer)] 09:54:15 Modius [n=Modius@99.179.103.194] has joined #scheme 09:57:52 mmc [n=mima@gw1.teleca.fi] has joined #scheme 10:02:08 -!- elmex [i=elmex@ist.m8geil.de] has quit [Remote closed the connection] 10:03:32 -!- jao [n=jao@250.Red-79-155-245.dynamicIP.rima-tde.net] has quit [Read error: 110 (Connection timed out)] 10:05:53 elmex [i=elmex@ist.m8geil.de] has joined #scheme 10:17:30 Rhetosaur [n=heartles@118-92-142-162.dsl.dyn.ihug.co.nz] has joined #scheme 10:22:23 -!- Rhetosaur [n=heartles@118-92-142-162.dsl.dyn.ihug.co.nz] has left #scheme 10:26:36 -!- Arelius [n=Indy@netblock-68-183-230-134.dslextreme.com] has quit [] 10:29:32 -!- AtnNn [n=welcome@modemcable087.62-56-74.mc.videotron.ca] has quit ["!"] 10:44:44 kuribas [i=kristof@d54C43D32.access.telenet.be] has joined #scheme 10:54:55 reprore [n=reprore@ntkngw304058.kngw.nt.ftth.ppp.infoweb.ne.jp] has joined #scheme 10:58:03 jao [n=jao@74.Red-80-24-4.staticIP.rima-tde.net] has joined #scheme 10:58:29 yates [n=yates@cpe-071-070-224-093.nc.res.rr.com] has joined #scheme 10:58:49 what is static scope? 10:59:03 lexical scope. 10:59:18 that's the name - what is it? 10:59:44 Yes. 10:59:47 i'm reading the wikipedia definition but it's not sinking in 11:00:13 http://en.wikipedia.org/wiki/Scope_(programming)#Static_versus_dynamic_scoping 11:00:24 what is a "top-level environment"? 11:00:34 "Lexical scope" = "static scope". 11:01:48 nataraj [n=natarajs@122.174.74.244] has joined #scheme 11:02:01 how does sqaure braces evaluate? 11:02:01 is it essentially that linking of a variable to a memory location happens at compile-time, as opposed to dynamic scoping in which it happens at run-time? 11:02:17 (let ([n c]) 11:02:18 -!- nataraj [n=natarajs@122.174.74.244] has quit [Read error: 104 (Connection reset by peer)] 11:02:24 yates: No, lexical scope means that a variable is not accessible outside the scope where it is defined. 11:02:35 nataraj [n=natarajs@122.174.74.244] has joined #scheme 11:02:58 Dynamic scope means that the variable name outside the scope refers to the same variable. 11:03:08 (let ([n c]) 11:05:38 -!- yhara [n=yhara@raichu.netlab.jp] has quit [Read error: 113 (No route to host)] 11:06:04 -!- reprore [n=reprore@ntkngw304058.kngw.nt.ftth.ppp.infoweb.ne.jp] has quit [Remote closed the connection] 11:06:11 ok, i think i've got it - the wikipedia article example is good 11:07:08 kuribas: fyi, i think i was right - in dynamic scoping the resolution of a variable to a memory location cannot happen at compile time 11:07:48 kuribas: ...but that's not to say that in lexical scoping it does necessarily - re: dynamic variables (on the stack). 11:07:55 #'(let ([n c]) 11:08:05 what could be this? 11:08:59 the whole idea of "scope" seems fundamentally different in dynamic "scoping"... 11:09:39 yates: in dynamic scope there is no static resolution, so you must keep a stack that maps identifier names to values; and you cannot "compile away" names in the code. 11:09:59 yates: but in lexical scope, you can always do that. 11:10:35 yates: and what you refer to as "dynamic variable" is probably coming from languages that allow both kinds of scopes to exist -- like CL and Perl. 11:11:07 -!- jonrafkind [n=jon@c-98-202-86-149.hsd1.ut.comcast.net] has quit [Read error: 60 (Operation timed out)] 11:11:40 reprore [n=reprore@ntkngw304058.kngw.nt.ftth.ppp.infoweb.ne.jp] has joined #scheme 11:11:41 nataraj: You're probably looking at a macro. 11:11:56 Yes, you can compile names to locations in dynamic scope also. 11:12:55 eli: the "dynamic variable" i was referring to was from C - basically variables whose _lifetime_ are limited, and this is usually done mechanically by creating them on the call stack. 11:13:24 kuribas: No, you can't -- not the dynamic names. There is no way to know at compile time how control will flow. 11:13:26 higepon241 [n=taro@FL1-122-135-74-92.tky.mesh.ad.jp] has joined #scheme 11:13:58 eli: so their actual location is unknown at compile time, but you at least know the stack offset at compile time, e.g. 11:13:59 -!- higepon241 [n=taro@FL1-122-135-74-92.tky.mesh.ad.jp] has quit [Remote closed the connection] 11:14:01 ok 11:14:05 yates: In that case, these things are something completely different, at least if it's what I think it is. 11:14:30 eli: How is a name different from a location? Do you mean by using eval? 11:15:17 kuribas: I'm talking about the names -- you must have some way to lookup the name in the code dynamically; the locations can of course be compiled to some static table, but that won't help much anyway... 11:16:44 eli,kuribas: i apologize. the variables i'm referring to are formally (in the language) called _automatic_ variables 11:17:20 eli: I don't see why. If you have just the location, you can put the new value in that location at the start of a local definition, and restore it in the end. 11:17:53 eli: I don't see where names come in the picture. 11:18:01 Unless I am missing something. 11:18:13 yates: in that case (IIRC), those are just plain temporary variables -- they're lexically scoped, but since C doesn't have closures, then they can be created and removed automatically on the stack. 11:18:42 kuribas: How do you compile this: (define (foo) x) ? 11:18:51 i guess i'm getting confused because there is a "static" keyword, and i was thinking non-static == dynamic 11:19:28 -!- kazzmir_ [n=kazzmir@c-98-202-86-149.hsd1.ut.comcast.net] has quit [Read error: 110 (Connection timed out)] 11:19:31 yates: In C, "static" variables are globals, except that you can put them in a function, so they're not visible outside. 11:19:44 eli: now you expose more of my ignorance... what is "closure" in this context? (i know what it means in set theory and set operations) 11:19:56 eli: yes, that's right 11:20:29 by the way, is the "Steele" that's on the first page of r5rs the same one from the Harbison and Steele text? 11:20:30 yates: Basically any use of a function as a value; something like: (define (blah) (let ([x 1]) (lambda () x))) 11:21:01 yates: So you cannot just allocate `x' on the stack when `blah' is called and remove it when it returns -- the scope is still accessible. 11:21:17 yates: In C, this never happens, so you can allways put them on the satcl. 11:21:31 s/satcl/stack/ (don't know how that happened...) 11:21:38 ha! 11:22:08 eli: but i wouldn't call automatic variables "global" - isn't the term "global" used to refer to scope? 11:22:14 eli: Return the value at memory location x? 11:22:15 (And BTW, yes, it's the same Steele. He's all over the place.) 11:22:33 interesting 11:22:42 yates: no -- I was talking about "static" variables. 11:23:10 kuribas: so the compiled code needs to have the name `x', right? 11:23:33 eli: do you mean variables declared with the "static" keyword? 11:23:40 yates: yes. 11:24:34 well, i'm not sure about the formality of it, but usually in talking with other programmers in C, a "global" is a variable with "global scope" - not so with static variables 11:24:39 eli: No, just the memory location of x 11:24:55 it's more about "lifetime" than "scope" 11:25:16 maybe C's braindead in its terminology that way... 11:26:31 -!- light [n=ghost@unaffiliated/light] has quit ["zz"] 11:26:52 ha! Steele *invented* scheme? Wow! 11:27:07 hkBst [n=hkBst@gentoo/developer/hkbst] has joined #scheme 11:27:08 yates: Static variables in C are just global variables, but only visible in the block where they are defined. 11:27:28 yates: They have "global lifetime and local scope". 11:27:31 i guess it depends on what you mean by "global" 11:28:11 kuribas: That's the same -- you're just translating "x" to a memory location; and even that translation must be present if you want to load code dynamically. 11:29:01 i cannot find the term "global" in the indices of either K&R or Harbison and Steele 11:29:20 so it may just be a colloquial usage thing 11:29:54 eli: Yes, that's true. 11:30:45 i've always (for 20 years or so) used it to mean "global scope". I know the fortran programmers on the old DEC PDP machines at GTE Government Systems used to refer to the "global common" area - a cluster-f&*^ of variables globally accessible in scope. 11:31:53 my ex-wife once yelled out in a room full of such programmers, "Who crashed the global common?!" 11:32:36 elias` [n=me@unaffiliated/elias/x-342423] has joined #scheme 11:32:38 yates: In scheme all variables have unlimited lifetime, but when you evaluate a local definition, for example using LET, a fresh variable is created, unlike static variables in C. 11:32:58 kuribas: That's why I say that you can't really compile them away -- not in the same efficient way of lexical scope, where the names (or any alternative representation of them) can be removed. 11:33:32 eli: Yes, I see. 11:33:55 You always need a table for loading dynamic code. 11:34:09 Yeah, a PITA. 11:34:53 :) 11:35:49 *kuribas* never uses dynamic variables. 11:36:03 Except in Emacs lisp, where you cannot get around them. 11:38:26 what is "BNF"? 11:38:31 boyce-normal form? 11:38:53 raikov [n=igr@81.153.145.122.ap.yournet.ne.jp] has joined #scheme 11:38:58 http://en.wikipedia.org/wiki/BackusNaur_Form 11:42:10 jonrafkind [n=jon@c-98-202-86-149.hsd1.ut.comcast.net] has joined #scheme 11:42:11 kazzmir [n=kazzmir@c-98-202-86-149.hsd1.ut.comcast.net] has joined #scheme 11:43:28 -!- kuribas [i=kristof@d54C43D32.access.telenet.be] has quit ["ERC Version 5.2 (IRC client for Emacs)"] 11:44:36 Fulax [n=cyprien@pdpc/supporter/student/cnicolas] has joined #scheme 11:44:37 -!- nataraj [n=natarajs@122.174.74.244] has quit [Read error: 104 (Connection reset by peer)] 11:44:56 nataraj [n=natarajs@122.174.74.244] has joined #scheme 11:45:04 eli: was that stuff about "(define (blah)"... a response to define what closure is? 11:46:08 -!- Fulax is now known as Fulax|Inria 11:47:15 yates: Yes -- a case where you can't have an "automatic" variable. 11:49:19 so in (define (blah) (let ([x 1]) (lambda () x))), x is actually global scope and can be accessed by other super-ordinate functions ? 11:50:09 yates: No, it has indefinite lifetime (it's basically kept as long as the closure is kept), but lexical scope -- no code can access it except for the closure. 11:50:28 -!- reprore [n=reprore@ntkngw304058.kngw.nt.ftth.ppp.infoweb.ne.jp] has quit [Remote closed the connection] 11:50:53 no variables in C have global scope 11:51:02 but variables can have external linkage and static duration 11:51:50 eli: i'm still getting confused - what is "the closure"? 11:55:48 ^self [i=foobar@117.102.12.141] has joined #scheme 11:56:28 alaricsp [n=alaricsp@host217-42-178-216.range217-42.btcentralplus.com] has joined #scheme 12:00:24 banisterfiend: i see your point - the terms "external linkage" and "static duration" are formally defined within C. but i disagree with your statement regarding global - it's synonymous. in fact, k&r state (p. 31) "Because external variables are globally accessible, ..." - isn't "globally accessible" and "global" the same thing? 12:03:22 yates: no, they are globally accessible sure, but only AFTER they've been brought into the source-files scope. The point is that the variables are not by default part of the source files scope - i.e they do not have 'global scope' 12:04:03 You can only access an external variable after you've used an 'extern' or a tentative definition 12:04:23 i.e an explicit action to bring it into scope (it's not part of the scope by default) 12:04:40 -!- nataraj [n=natarajs@122.174.74.244] has quit [Read error: 104 (Connection reset by peer)] 12:04:52 well, yes, that is true. 12:04:56 nataraj [n=natarajs@122.174.74.244] has joined #scheme 12:05:38 i think... 12:08:35 -!- raikov [n=igr@81.153.145.122.ap.yournet.ne.jp] has quit [Read error: 110 (Connection timed out)] 12:09:05 can someone please help me more with the term "closure" in the context of scheme? sorry for being so dense. 12:09:43 it's taht a funcation can be treated as a value? in a nutshell? 12:11:05 -!- nataraj [n=natarajs@122.174.74.244] has quit ["Leaving"] 12:12:50 s/taht a funcation/that a function/ 12:15:08 it's pretty much the same as the ordinary compsci meaning of 'closure' afaik 12:15:13 did you look up in wikipedia? 12:15:54 and is this term related to the term "first-class function"? 12:16:17 yes i guess so 12:16:31 but not all anonymous functions have to be closures afaik 12:16:36 but it just so happens that they are in scheme 12:16:37 -!- sstrickl [n=sstrickl@c-66-31-28-74.hsd1.ma.comcast.net] has quit ["rcirc on GNU Emacs 23.0.60.1"] 12:16:44 banisterfiend: i've never had a compsci class - i googled for "scheme closure" and am trying to get it 12:17:35 ah - "closure" google is more better... 12:19:26 the wikipedia article is good... digesting... 12:24:46 -!- eli [n=eli@winooski.ccs.neu.edu] has quit [Remote closed the connection] 12:24:55 -!- ^self [i=foobar@117.102.12.141] has quit ["ok, worked around it"] 12:25:06 eli [n=eli@winooski.ccs.neu.edu] has joined #scheme 12:32:36 -!- alaricsp [n=alaricsp@host217-42-178-216.range217-42.btcentralplus.com] has quit [] 12:33:26 i don't get it - closure seems to be just another term for a scoped language. 12:37:25 alaricsp [n=alaricsp@host217-42-178-216.range217-42.btcentralplus.com] has joined #scheme 12:38:20 yates: you should compare how Scheme handles free variables in local functions to how Elisp handles them. 12:39:07 yhara [n=yhara@7.193.12.221.megaegg.ne.jp] has joined #scheme 12:39:18 Nshag [i=user@Mix-Orleans-105-4-107.w193-250.abo.wanadoo.fr] has joined #scheme 12:40:36 is a continuation kinda like an exception in C++? 12:40:41 ignore that ^^^? 12:55:31 -!- metasyntax [n=taylor@pool-71-127-85-87.aubnin.fios.verizon.net] has quit [""Nichts mehr.""] 13:05:41 -!- CaptainMorgan [n=CaptainM@c-75-68-42-94.hsd1.nh.comcast.net] has quit [Remote closed the connection] 13:13:11 xwl [n=user@221.221.149.177] has joined #scheme 13:18:49 -!- pitui [n=pitui@c-76-98-192-104.hsd1.nj.comcast.net] has quit [Read error: 104 (Connection reset by peer)] 13:19:39 CaptainMorgan [n=CaptainM@c-75-68-42-94.hsd1.nh.comcast.net] has joined #scheme 13:33:37 pozic [n=pozic@unaffiliated/pozic] has joined #scheme 13:40:03 -!- ttmrichter [n=ttmricht@221.235.63.13] has quit [Connection timed out] 13:42:22 sstrickl [n=sstrickl@nomad.ccs.neu.edu] has joined #scheme 13:44:03 ttmrichter [n=ttmricht@58.49.245.251] has joined #scheme 13:50:09 foof` [n=user@dn157-046.naist.jp] has joined #scheme 13:51:08 xwl` [n=user@221.221.149.177] has joined #scheme 13:51:12 lolcow [n=lolcow@dsl-244-202-192.telkomadsl.co.za] has joined #scheme 13:51:32 -!- xwl [n=user@221.221.149.177] has quit [Remote closed the connection] 13:51:33 -!- leppie [n=lolcow@dsl-244-202-192.telkomadsl.co.za] has quit [Read error: 54 (Connection reset by peer)] 13:57:09 -!- yhara [n=yhara@7.193.12.221.megaegg.ne.jp] has quit [Read error: 113 (No route to host)] 14:00:36 ayrnieu_ [n=julianfo@c-76-30-82-6.hsd1.tx.comcast.net] has joined #scheme 14:07:20 annodomini [n=lambda@c-75-69-96-104.hsd1.nh.comcast.net] has joined #scheme 14:08:18 -!- Fulax|Inria [n=cyprien@pdpc/supporter/student/cnicolas] has quit [Read error: 104 (Connection reset by peer)] 14:08:20 -!- foof [n=user@dn157-046.naist.jp] has quit [Read error: 110 (Connection timed out)] 14:08:52 -!- annodomini [n=lambda@wikipedia/lambda] has quit [Client Quit] 14:12:03 -!- ayrnieu [n=julianfo@c-76-30-82-6.hsd1.tx.comcast.net] has quit [Read error: 110 (Connection timed out)] 14:20:01 -!- borism [n=boris@195-50-199-28-dsl.krw.estpak.ee] has quit [Read error: 145 (Connection timed out)] 14:23:00 yhara [n=yhara@7.193.12.221.megaegg.ne.jp] has joined #scheme 14:28:42 -!- xwl` [n=user@221.221.149.177] has quit [Remote closed the connection] 14:32:08 tripwyre [n=sathya@117.193.168.10] has joined #scheme 14:36:32 annodomini [n=lambda@64.30.3.122] has joined #scheme 14:40:46 Edico [n=Edico@unaffiliated/edico] has joined #scheme 14:41:41 hi 14:42:34 -!- annodomini [n=lambda@wikipedia/lambda] has quit [] 14:42:40 -!- Modius [n=Modius@99.179.103.194] has quit ["I'm big in Japan"] 14:47:54 prelim ballot results are posted. 14:53:35 -!- ecraven [n=nex@140.78.42.103] has quit ["bbl"] 14:57:00 Fulax [n=cyprien@pdpc/supporter/student/cnicolas] has joined #scheme 14:58:14 -!- Fulax is now known as Fulax|Inria 15:02:18 -!- rdd` [n=rdd@c83-250-154-52.bredband.comhem.se] has quit [Read error: 54 (Connection reset by peer)] 15:02:35 rdd` [n=rdd@c83-250-154-52.bredband.comhem.se] has joined #scheme 15:06:04 annodomini [n=lambda@130.189.179.215] has joined #scheme 15:11:32 neilv [n=user@dsl092-071-030.bos1.dsl.speakeasy.net] has joined #scheme 15:15:52 -!- Fulax|Inria [n=cyprien@pdpc/supporter/student/cnicolas] has quit [Connection timed out] 15:18:37 Modius [n=Modius@99.179.99.38] has joined #scheme 15:21:52 -!- yhara [n=yhara@7.193.12.221.megaegg.ne.jp] has quit [Read error: 113 (No route to host)] 15:29:09 Modius_ [n=Modius@adsl-68-92-148-215.dsl.austtx.swbell.net] has joined #scheme 15:32:34 Modius__ [n=Modius@adsl-68-91-193-35.dsl.austtx.swbell.net] has joined #scheme 15:40:10 -!- yates [n=yates@cpe-071-070-224-093.nc.res.rr.com] has quit ["Started wasting time elsewhere"] 15:44:17 langmartin [n=user@75.148.111.133] has joined #scheme 15:44:33 JoelMcCracken [n=joelmccr@fq-wireless-pittnet-204.wireless.pitt.edu] has joined #scheme 15:46:26 -!- Modius [n=Modius@99.179.99.38] has quit [Read error: 110 (Connection timed out)] 15:47:07 -!- Modius_ [n=Modius@adsl-68-92-148-215.dsl.austtx.swbell.net] has quit [Read error: 110 (Connection timed out)] 15:53:08 -!- ttmrichter [n=ttmricht@58.49.245.251] has quit ["Ex-Chat"] 16:09:08 bombshelter13 [n=bombshel@net1.senecac.on.ca] has joined #scheme 16:09:40 Cheshire [n=e@amcant.demon.co.uk] has joined #scheme 16:17:03 hemulen [n=hemulen@99-7-171-19.lightspeed.sntcca.sbcglobal.net] has joined #scheme 16:30:05 flazz [n=franco@qubes.org] has joined #scheme 16:34:32 athos [n=philipp@92.250.204.223] has joined #scheme 16:54:08 araujo: Rozas, an ex-MIT, was one of the very active people in MIT-Scheme. 16:54:17 ugh 16:54:33 rudybot: later tell arcfide: Rozas, an ex-MIT, was one of the very active people in MIT-Scheme. 16:54:33 minion: memo for arcfide:: eli told me to tell you: Rozas, an ex-MIT, was one of the very active people in MIT-Scheme. 16:54:34 Remembered. I'll tell arcfide: when he/she/it next speaks. 16:56:35 eli: ITYM 'tell arcfide'? 16:57:57 Elly: No -- it's the only syntax that I can remember, comes from sarahbot (who may have been forgiving on the "later", but that's the only thing that stuck) 16:57:58 -!- ithink [n=denise@EASTCAMPUS-FOUR-NINETY-THREE.MIT.EDU] has quit [Remote closed the connection] 16:58:20 both of the bots there appear to have noted a memo for 'arcfide:' 16:59:04 Elly: Ah, *that* part is a joke -- I added a message "implementation" to rudybot that simply delegates it to minion. 16:59:30 I did also the work that will allow it to remember messages itself, but offby1 liked it more this way. 17:00:36 Why am I not surprised... 17:02:01 -!- alaricsp [n=alaricsp@host217-42-178-216.range217-42.btcentralplus.com] has quit [] 17:08:40 -!- ejs1 [n=eugen@nat.ironport.com] has quit [Read error: 110 (Connection timed out)] 17:08:59 -!- jonrafkind [n=jon@c-98-202-86-149.hsd1.ut.comcast.net] has quit [Read error: 110 (Connection timed out)] 17:11:35 yates [n=yates@cpe-071-070-224-093.nc.res.rr.com] has joined #scheme 17:12:56 in this gimp/scheme code, http://galois.digitalsignallabs.com/image/button.scm 17:13:49 jonrafkind [n=jon@crystalis.cs.utah.edu] has joined #scheme 17:14:21 i'd like to pass a "control-geomerty-function" to the waterfall-shuttle-button routine that will define a caller-defined shape (rectangle, circle, etc.) 17:14:37 dmoerner [n=dmr@ppp-71-139-45-71.dsl.snfc21.pacbell.net] has joined #scheme 17:14:41 is this possible in scheme? 17:14:44 yes 17:14:53 it's a variable like any other inside the procedure 17:15:07 ecraven [n=nex@140.78.42.103] has joined #scheme 17:15:10 -!- jewel [n=jewel@dsl-242-147-152.telkomadsl.co.za] has quit [Read error: 113 (No route to host)] 17:15:16 neilv: am i doing it correctly 17:15:17 ? 17:15:28 yes 17:15:37 do i quote it when passing it to the routine? 17:15:42 no 17:15:54 again, r5rs would make it clear why this is so :) 17:15:57 but if i don't quote it, won't it be evaluated? 17:16:08 evaluated as function call time? 17:16:44 neilv: i did try to read r5rs - went through over half of it at least lightly 17:16:47 in your script, where you define "f"... "f" is just a variable 17:16:59 same thing with "control-geometry-function" 17:17:07 your script looks correct 17:17:30 this is an important regard in which scheme is different from other lisps you've tried 17:17:43 can i try it here with the channel interpreter? 17:17:55 oh 17:18:05 ejs [n=eugen@92-49-195-3.dynamic.peoplenet.ua] has joined #scheme 17:18:11 neilv: are you saying that it's not me, it's the scheme implementation? 17:18:53 -!- pozic [n=pozic@unaffiliated/pozic] has quit ["leaving"] 17:18:55 i'm saying that your calling of the passed procedure looks correct wrt scheme language. i don't know whether your program overall is correct 17:19:23 oh, well the program was running fine until i added this control-geometry-function 17:19:52 and if i change the definition of f to (define (f) (+ 2 3)) it runs successfully 17:20:00 xsrc/mrmain.cc:279: error: redeclaration of C++ built-in type 'wchar_t' 17:20:00 *** Error code 1 17:20:00 Stop. 17:20:00 make: stopped in /var/tmp/pkgsrc/local/plt-scheme/work/plt-4.1.4/src/mred/gc2 17:20:21 Something is really broken in this PLT scheme. 17:21:07 peter_12 [n=peter_12@S010600119506b129.gv.shawcable.net] has joined #scheme 17:21:34 which is why i was thinking control-geometry-function is being evaluated at function invocation instead of inside the function 17:21:53 yates:no 17:22:25 opOpacity is only defined inside the function 17:22:27 neilv: no? 17:22:29 -!- dmoerner [n=dmr@ppp-71-139-45-71.dsl.snfc21.pacbell.net] has quit [Connection reset by peer] 17:22:40 oh, i see 17:22:42 dmoerner [n=dmr@ppp-71-139-45-71.dsl.snfc21.pacbell.net] has joined #scheme 17:23:18 do your "f" like this: 17:23:24 (define (f opOpacity) (+ opOpacity 3)) 17:23:31 and then the call: 17:23:33 (control-geometry-function opOpacity) 17:24:00 but i can't 17:24:12 why not? 17:24:15 i mean, that "f" function was just a simple test 17:24:40 -!- hemulen [n=hemulen@99-7-171-19.lightspeed.sntcca.sbcglobal.net] has quit [] 17:24:54 the real function, my-test-function, uses variables that aren't even available until you get inside the waterfall-shuttle-button function 17:25:01 exactly 17:25:02 e.g., "image" 17:25:15 so see what i just did for "f", and do that for your real function 17:25:28 mathetically, it's a function of some arguments. try to treat it that way 17:25:43 oh, i see 17:25:51 mathematically 17:26:10 -!- jao [n=jao@74.Red-80-24-4.staticIP.rima-tde.net] has quit [Read error: 110 (Connection timed out)] 17:26:28 there are fancier things that you can do, but treating it as a pure function is best if that's practical 17:27:11 well, it's not the idea - this means that all control functions must use the same parameter list 17:27:17 s/idea/ideal/ 17:27:19 mejja [n=user@c-4bb5e555.023-82-73746f38.cust.bredbandsbolaget.se] has joined #scheme 17:27:21 but i can live with it 17:27:25 i have to go now. probably bbl today 17:27:31 ok, thanks neilv 17:28:05 if you work through htdp.org, you'll then have all the tools you need to find a good solution to this 17:28:26 oh, you mean take a couple of months? 17:28:29 :) 17:28:34 weeks 17:28:41 ah, yeah. 17:28:45 even give it a couple evenings 17:29:01 -!- JoelMcCracken [n=joelmccr@fq-wireless-pittnet-204.wireless.pitt.edu] has quit ["This computer has gone to sleep"] 17:30:07 can you just point me to the right chapter? 17:30:32 there is language semantics, and there is philosophy of how to use them. this is both 17:31:37 you should normally try to do things in a pure-functional way. the tradeoffs of when not to are judgement calls based on experience, and i don't think there's any book that tells you 17:31:45 mejja pasted "preliminary result" at http://paste.lisp.org/display/76028 17:32:35 hemulen [n=hemulen@99-7-171-19.lightspeed.sntcca.sbcglobal.net] has joined #scheme 17:32:50 ok 17:33:11 so htdp gives you the background in the purer way to do lots of things, and then you can realize when the purer way won't work 17:33:15 mejja where you get that data from? 17:33:19 -!- lolcow is now known as leppie 17:33:46 -!- mejja [n=user@c-4bb5e555.023-82-73746f38.cust.bredbandsbolaget.se] has quit ["*bork bork*"] 17:33:53 thats nice 17:34:14 mejja [n=user@c-4bb5e555.023-82-73746f38.cust.bredbandsbolaget.se] has joined #scheme 17:34:20 mejja where you get that data from? 17:34:25 -!- neilv [n=user@dsl092-071-030.bos1.dsl.speakeasy.net] has quit ["Leaving"] 17:34:53 http://www.r6rs.org/steering-committee/election/preliminary-ballots.scm 17:36:10 hmm, my vote in the list, does not seem to match my vote number 17:36:44 -!- yates [n=yates@cpe-071-070-224-093.nc.res.rr.com] has quit ["Started wasting time elsewhere"] 17:37:05 i dont get the output either... 17:37:12 jewel [n=jewel@dsl-242-147-152.telkomadsl.co.za] has joined #scheme 17:37:19 try this: http://www.r6rs.org/steering-committee/election/pr.scm 17:37:35 kryptiskt [n=irc@cust-IP-129.data.tre.se] has joined #scheme 17:38:38 -!- jonrafkind [n=jon@crystalis.cs.utah.edu] has quit [No route to host] 17:39:08 jonrafkind [n=jon@wireless29.wireless.utah.edu] has joined #scheme 17:40:46 hmmm why does clinger not have a final state? 17:41:28 maybe he is hard like chuck norries, and needs no stupid state :) 17:42:42 "In order to allow for a tie-breaker or any irregularities to be dealt with, the official result will not be officially announced until two weeks after the poll closes." 17:42:45 http://www.r6rs.org/steering-committee/election/announcement.html 17:43:48 funny to not see dybvig there, but I guess his lack of interaction with the general comminuty counted against him 17:44:32 Fulax [n=cyprien@85-171-65-14.rev.numericable.fr] has joined #scheme 17:45:58 would 1986-2009 not be sufficient for a copyright date? 17:47:41 so I (define-syntax a...) and then (define-syntax b...) but I cannot use the syntax of a to define the syntax of b? 17:47:55 as in a isn't considered a syntax, until the syntax checking phase is over? 17:48:21 why not? 17:49:32 I dunno. I tried using b when creating the form, and it said ...hold on I'll get the exact error. 17:50:39 you might just have to move define-syntax a to another module at most 17:51:23 "expand: unbound identifier in module (in the transformer environment, which does not include the macro definition that is visible to run-time expressions)" 17:51:35 -!- eno_ is now known as eno 17:51:41 So module imports happen earlier than syntax definitions? 17:51:52 or define a inside b 17:52:37 I don't think you can nest defines in plt... besides a is usable in more than just the scope of b. 17:52:40 sounds to me like you should be using with-syntax 17:52:50 ok 17:52:58 then another module should work 17:53:17 I just tried that, no luck. I must be doing something wrong... 17:53:18 or wait PLT has something for that I think 17:53:32 define-for-syntax i think 17:54:23 but thats for procs 17:54:31 -!- Fulax [n=cyprien@pdpc/supporter/student/cnicolas] has left #scheme 17:54:42 oh I see. 17:55:00 maybe I could do it with a procedure though. 17:55:12 you could use that to bind to the transformar 17:55:39 then define-syntax a, and use with-syntax or let-syntax in b binding to the transformer 17:56:25 right, something like that. 17:57:13 schmalbe [n=bernhard@p549A129E.dip0.t-ipconnect.de] has joined #scheme 17:59:06 JoelMcCracken [n=joelmccr@CMU-221270.WV.CC.CMU.EDU] has joined #scheme 17:59:18 but there is probably an easier way :) 17:59:21 as always 18:00:31 -!- JoelMcCracken [n=joelmccr@CMU-221270.WV.CC.CMU.EDU] has quit [Client Quit] 18:00:57 JoelMcCracken [n=joelmccr@CMU-221270.WV.CC.CMU.EDU] has joined #scheme 18:01:30 eli: how many active developers on the PLT core? 18:03:46 melito [n=melito@70.99.250.82] has joined #scheme 18:04:45 jlongster [n=user@75.148.111.133] has joined #scheme 18:04:47 or better, how many scheme's have 5 or more active developers on the core parts? (for anyone) 18:05:30 define "core parts" 18:05:39 yates [n=yates@cpe-071-070-224-093.nc.res.rr.com] has joined #scheme 18:05:59 is there a way to get mzscheme to use emacs key sequence bindings? 18:06:09 PLT and Chicken if you ask me. 18:06:16 e.g., "C-p" 18:06:19 the essential parts that need to be done maintained for the specification levels 18:06:46 mejja: are you responding to me? 18:06:56 perhaps more implementation specific stuff, but still related to compiler/optimizer/support/blah/foo/etc 18:07:00 leppie I think. 18:07:08 yates: rlwrap 18:07:36 yates: or run it inside emacs 18:07:36 zbigniew: what is rlwrap? 18:07:36 yates: or run it in an emacs inferior process 18:07:53 let me google that for you dot com et cetera 18:08:11 go ogle! 18:08:18 Heh 18:08:28 so in reality, scheme in a whole have perhaps 25-35 developers working on core functionality 18:09:06 No, because there are 10,000 implementations, and each has an integral number of developers 18:09:15 Or number of developer, rather. 18:09:23 and the integral is 1 18:09:32 Precisely, Robin. 18:09:39 so sad :( 18:09:55 you think java has more "core" developers? 18:10:28 well they need to support the whole runtime 18:10:39 *Cheshire* lightbuld 18:11:04 Make Scheme much more complicated ==> Biggere effort to implement ==> More community collaberating together 18:11:21 ok, let me a more general question then, how many schemes have more than 10 active contributers? 18:11:32 Cheshire: i have to agree with you there 18:11:37 agree with me?? 18:11:43 what did I say 18:11:57 make Scheme more complicated 18:12:05 and the rest that follows 18:12:10 followed 18:12:49 leppie: what more than 1000 lines of code application has more than 10 "core" active controbutors... not many. and even core developers come and go. 18:12:50 surely you're joking.. 18:13:01 no rhonda 18:13:34 rlwrap is good 18:14:03 um 18:14:13 add nc+ed and you can browse http in peace. 18:14:14 rlwrap is in the 'command line user interface' category 18:14:58 im not joking, but keep it the same, but tighten up on the semantics 18:15:23 Cheshire: true 18:15:41 hey can we do a pop quiz 18:15:55 does the grade count? 18:15:58 which languages have formal semantics specified in the language definition ? 18:16:17 basic 18:16:38 -!- hadronzoo [n=hadronzo@adsl-70-250-178-94.dsl.rcsntx.swbell.net] has quit [] 18:16:39 uhh.. I don't believe you 18:16:49 c++ 18:17:06 Scheme does .. but everyone knew this 18:17:11 and SML does too 18:17:17 but are there others? that's what I wonder 18:17:41 Cheshire: have you had a look at the .NET CLR spec? 18:17:43 haskell? the rest of ML fam like caml? 18:18:06 leppie, is it like the JVM spec? seen one seen them all 18:18:35 -!- hemulen [n=hemulen@99-7-171-19.lightspeed.sntcca.sbcglobal.net] has quit [] 18:18:42 not sure, but everything is defined, no ambiguity 18:18:55 you know exactly what everything does 18:19:12 no surprises 18:19:31 does it include "OOP"? 18:19:37 I firmly believe in the principle of least surprise 18:19:37 -!- JoelMcCracken [n=joelmccr@CMU-221270.WV.CC.CMU.EDU] has quit [Read error: 110 (Connection timed out)] 18:19:45 oh I thought of another one AMOP 18:19:53 yes it define a type system 18:20:08 CLOS/AMOP 18:22:46 prologs prolly gave formal specs, too /me beams prodly. how do /me scores? 18:23:26 prodly... /me fdls. 18:23:34 -!- dmoerner [n=dmr@ppp-71-139-45-71.dsl.snfc21.pacbell.net] has quit ["leaving"] 18:25:13 Q: Is the state of programming language specification dire? 18:28:05 A: Of course. Ever since it was decided that Van Wijngaarden grammars are too hard to implement. 18:28:24 errordeveloper [n=errordev@78-86-1-110.zone2.bethere.co.uk] has joined #scheme 18:28:47 Mr_Cat [i=4e6bea35@gateway/web/ajax/mibbit.com/x-5588c9404107a262] has joined #scheme 18:30:12 what kind of a name is that anyway... even google is of little help when one does not remember the spelling. 18:32:31 It's a Dutch surname 18:33:22 dmoerner [n=dmr@ppp-71-139-45-71.dsl.snfc21.pacbell.net] has joined #scheme 18:37:16 means he was from the wine garden (probably vineyards) 18:38:42 the afrikaans word for vineyard is wingerd 18:41:21 Correct :) 18:44:54 now, we know! he must have been seriously drunk proposing his idea. 18:45:21 saccade [n=saccade_@COMBINATOR.MIT.EDU] has joined #scheme 18:46:33 ayrnieu [n=julianfo@c-76-30-82-6.hsd1.tx.comcast.net] has joined #scheme 18:46:46 -!- bombshelter13 [n=bombshel@net1.senecac.on.ca] has quit [No route to host] 18:53:29 civodul [n=user@reverse-83.fdn.fr] has joined #scheme 18:54:15 hemulen [n=hemulen@208.80.65.98] has joined #scheme 18:57:31 -!- jonrafkind [n=jon@wireless29.wireless.utah.edu] has quit [Read error: 60 (Operation timed out)] 18:57:56 jonrafkind [n=jon@crystalis.cs.utah.edu] has joined #scheme 18:58:43 -!- ayrnieu_ [n=julianfo@c-76-30-82-6.hsd1.tx.comcast.net] has quit [Read error: 110 (Connection timed out)] 19:02:11 reprore [n=reprore@ntkngw304058.kngw.nt.ftth.ppp.infoweb.ne.jp] has joined #scheme 19:06:43 how do you concatenate two strings? 19:06:58 R5RS STRING-APPEND 19:06:58 http://www.schemers.org/Documents/Standards/R5RS/HTML/r5rs-Z-H-9.html#%_idx_524 19:07:00 -rudybot:#scheme- http://tinyurl.com/6a2kv6 19:07:15 you can search the index 19:07:23 (define a "123")(define b "abc")(cons a b) gives ("123" . "abc") and not ("123abc") 19:07:23 ok 19:07:43 yates: CONS creates a pair of two things by sticking them together 19:07:55 rudybot: eval (string-append "123" "abc") 19:07:56 Mr_Cat: your sandbox is ready 19:07:57 Mr_Cat: ; Value: "123abc" 19:08:02 jah [n=jah@240.138.72-86.rev.gaoland.net] has joined #scheme 19:08:10 You can get the first thing from the pair by using CAR and the second by using CDR 19:08:15 Strings work entirely different 19:08:28 rudybot: (car "foo") 19:08:29 sjamaan: eh? Try "rudybot: help". 19:08:33 rudybot: eval (car "foo") 19:08:34 sjamaan: your sandbox is ready 19:08:34 sjamaan: error: car: expects argument of type ; given "foo" 19:08:35 Mr_Cat: meow! 19:08:36 See? 19:09:11 yates: You may also look through srf-13 for different non-standard useful string functions 19:09:14 yes, i see 19:09:17 srfi-13, I mean 19:09:36 -!- geckosen1tor [n=sean@71.237.94.78] has quit [Read error: 104 (Connection reset by peer)] 19:10:00 ahh, the old scheme string library collection... 19:10:17 never heard of it 19:10:29 string-append works fine - perfect 19:10:58 -!- jah [n=jah@240.138.72-86.rev.gaoland.net] has quit [Client Quit] 19:11:28 yates, R5RS is the entire Scheme language 19:11:29 thank you all 19:12:05 yates, if you are just learning Scheme then you would probably read this whole document (maybe after some tutorials ..) -- and use it as a reference from then on 19:12:48 Cheshire: thanks. i have read parts of it 19:12:56 Keep the index bookmarked, it's very handy to find things that way 19:15:51 sjaamaan: done 19:17:33 i prefer to keep a directory of links in a subfolder under my project - bookmarks tend to get misplaced across time and projects 19:17:49 -!- mmc [n=mima@gw1.teleca.fi] has quit [Read error: 60 (Operation timed out)] 19:17:50 versioned too, of course 19:19:05 The standard is easy to find, it's on schemers.org 19:19:31 oh yes, i've found it. over and over, i've found it... 19:19:37 heh 19:31:47 -!- attila_lendvai [n=ati@catv-89-132-189-132.catv.broadband.hu] has quit ["..."] 19:37:49 -!- reprore [n=reprore@ntkngw304058.kngw.nt.ftth.ppp.infoweb.ne.jp] has quit [Remote closed the connection] 19:42:17 proq [n=user@unaffiliated/proqesi] has joined #scheme 19:43:15 j85wilson [n=j85wilso@cpe-75-187-46-126.columbus.res.rr.com] has joined #scheme 19:43:19 Book recommendation of the day: http://www.amazon.com/dp/014200135X/ 19:44:21 rcassidy [n=ryan@129.10.228.203] has joined #scheme 19:46:59 saccade_ [n=saccade@BRAIN-AND-COG-THREE-TWELVE.MIT.EDU] has joined #scheme 19:49:42 X-Scale [i=email@2001:470:1f08:b3d:0:0:0:2] has joined #scheme 19:50:45 -!- saccade_ [n=saccade@BRAIN-AND-COG-THREE-TWELVE.MIT.EDU] has quit [Client Quit] 19:53:52 haffe [n=haffe@mustang.lysator.liu.se] has joined #scheme 19:59:27 -!- haffe [n=haffe@mustang.lysator.liu.se] has left #scheme 20:02:46 blargh. Does anyone know of any (experimental or otherwise) alternative object formats (alternative to ELF or a.out)? 20:02:59 -!- melito [n=melito@70.99.250.82] has quit [Read error: 113 (No route to host)] 20:03:05 melito [n=melito@70.99.250.82] has joined #scheme 20:03:06 like PE? 20:03:11 people in various other channels where such a question is more appropriate were entirely unhelpful, so as a last ditch, I ask here. 20:03:17 *j85wilson* googles PE. 20:03:30 thats what windows uses 20:03:32 Mach-O? 20:03:51 Why do you ask, anyway? 20:03:51 THUMB 20:04:13 coff? 20:04:21 BIN! 20:04:24 :) 20:04:26 I've been contemplating that including some metadata in the object code might facilitate FFIs, and therefore language experimentation. 20:04:31 (and compiler experimentation) 20:04:37 AtnNn [n=welcome@modemcable087.62-56-74.mc.videotron.ca] has joined #scheme 20:04:54 How so, and why is the ELF not adequate? 20:04:58 -!- dmoerner [n=dmr@ppp-71-139-45-71.dsl.snfc21.pacbell.net] has quit ["Lost terminal"] 20:06:27 It seems that you can get by without examining C header files on every new system you encounter provided the C functions you are calling out to do not need structs, #defines, etc. 20:07:10 Let me take a step back. What does `FFI' mean to you? 20:07:32 Does it mean providing to Scheme, access to C libraries as C programmers would use them? 20:07:47 Code written in one language causes jumps to code written in another language. 20:08:03 s/written/originally written/ 20:08:28 Inhuman [n=somethin@S0106001d7e47087f.su.shawcable.net] has joined #scheme 20:08:34 So, first of all, you want this to be generic, not particular to C? 20:08:54 Once you've got that, you can in general write wrapping code that presents an API which fits your language's idiom(s). 20:09:00 yes, ideally. 20:09:22 But it seems that ELF is uniquely designed for C, and using it for any other language is somewhat of a wart. 20:09:46 Well, that's very Hard, with a capital H, and as a subproblem it requires talking between Scheme and C, so can we restrict this discussion to its instantiation for these circumstances? 20:10:31 indeed. 20:10:46 I find myself perpetually dissatisfied with the state of FFIs in scheme. 20:11:11 although I confess to being unfamiliar with the intimate details of nearly all of them. 20:11:14 rcassidy_ [n=ryan@129.10.228.203] has joined #scheme 20:12:04 Now, if you're talking about the ELF, then you're talking about ABIs, so you're talking about talking with C libraries using less information than C programmers or C programs have. 20:12:06 And how can different object formats solve the problem? 20:12:34 they can provide as much information as C programmers or C programs have. 20:12:47 that is my thought, however naive it might turn out to be. 20:13:04 So are you looking to extend C compilers to spit out object files that contain, say, cpp macros? 20:13:16 Probably in the end? 20:14:09 I'm not sure exactly what I want, unfortunately. But it seems as though the bottleneck to effective FFIs is the lack of information available in the object code. 20:14:11 So you're looking to restrict yourself to platforms where you have made this C compiler work. 20:14:21 The information is available in header files, though; why shun them? 20:14:31 C compilers are already pretty good at gleaning information from header files. 20:14:38 Or compilers for other languages which output the same sort of object files. 20:15:00 I don't like the need to use C header files because then we have become C specific. 20:15:23 So you want this to work only for libraries that are naturally rendered in any language in the class of languages you're choosing? 20:15:28 Every scheme implementation has to know how to parse C and how to be a CPP, or at least how to talk to the CPP 20:15:40 No. 20:15:49 It would have to know how to talk with a C compiler; that's all. 20:16:07 C compilers already parse C and expand cpp macros and determine data structure layouts and so on. 20:16:21 indeed. It still has to talk to a C compiler. 20:16:28 this seems to be a problem. 20:16:31 Why? 20:16:50 Where will you have (1) a Scheme compiler, (2) a collection of C libraries, and (3) no C compiler? 20:17:11 On plenty of systems that haven't installed the build-essentials package or equivalent 20:17:12 -!- rcassidy [n=ryan@129.10.228.203] has quit [Read error: 110 (Connection timed out)] 20:17:26 But you assume a Scheme compiler. 20:17:30 (or, a Scheme implementation, anyway) 20:17:42 True. Why should scheme have to know anything about C? 20:17:45 If a C programmer wanted to use those same C libraries, he'd be in the same boat. 20:17:50 Ok, let's assume it isn't a problem. 20:17:54 You wanted Scheme programmers to use C libraries, I thought! 20:18:04 Maybe that's not your assumption, though. 20:18:17 Then we should expect to see many different pieces of code using different languages, all interoperating with one another. 20:18:18 j85wilson: If you're not satisfied with scheme<->C interoperabilyty - why not switching to scheme<->.net or scheme<->java? 20:18:19 Maybe your assumption is that there is some ABI, not some API, that you want Scheme to talk with. 20:18:46 In that case, scheme now has to know how to talk to C, and python, and forth, and java, and everything. 20:19:03 In that case, it's not C libraries, exactly, that you'd be talking with; or, more to the point, the Scheme programmer would have to know the mapping between the API and the ABI. 20:19:05 We require a complete graph of languages-that-know-how-to-talk-to-other-languages. 20:19:17 I thought we agreed to restrict the discussion to Scheme and C. 20:19:27 So we did. 20:19:39 I think now that this masks a part of the problem. 20:19:57 A complete 2-graph is not particularly daunting to consider. 20:20:00 If you want to solve the problem with *more* than just Scheme and C, you will still need to solve the problem for just Scheme and C. 20:20:19 But we seem to have established that it is not in fact a problem for just Scheme and C. 20:20:30 (at least in the opinions of most) 20:20:33 Huh? 20:20:45 Talking to the C compiler fixes things. 20:20:52 If we can effectively do that, then we're set. 20:20:57 rihgt? 20:21:13 So do you agree that it's C APIs that you want to work with, not ABIs? 20:21:38 hmmm 20:21:53 I expect so? 20:21:59 jao [n=jao@250.Red-79-155-245.dynamicIP.rima-tde.net] has joined #scheme 20:22:07 working with the ABI would be rather painful I suspect. 20:22:19 The distinction is not obvious for `easy' libraries, and most Lisp FFIs that do not involve writing or generating C code deal with ABIs. 20:22:43 because, as you said above, you would effectively need to know the mapping API -> ABI. 20:22:56 Your initial suggestion concerning the ELF suggested to me that you want something at the level of ABIs. 20:23:14 It seems to be an important distinction, and one that I had not appreciated before. 20:23:49 Working with ABIs is not likely to be satisfactory, yes? 20:24:10 Perhaps my dissatisfaction stems from the fact that one cannot work with APIs if all one has is the object code? 20:24:21 and no C compiler or knowledge thereof? 20:24:31 Well, it is satisfactory to some. For example, PLT's FFI works at the ABI level. 20:24:40 -!- Qaexl [n=Akashakr@c-24-30-97-247.hsd1.ca.comcast.net] has quit [Read error: 60 (Operation timed out)] 20:25:17 Arelius [n=Indy@netblock-68-183-230-134.dslextreme.com] has joined #scheme 20:26:48 working with ABIs need not involve a C compiler or C headers? 20:26:58 Indeed it need not. 20:27:36 wingo-tp [n=wingo@209.Red-88-0-165.dynamicIP.rima-tde.net] has joined #scheme 20:27:48 But a library which uses, say, structs, will be somewhat difficult to work with. You will need to write code which packs scheme values into a stream of bits which matches the structure of the struct 20:28:06 That's what the ABI is about. 20:28:23 Qaexl [n=Akashakr@c-24-30-97-247.hsd1.ca.comcast.net] has joined #scheme 20:28:36 right. 20:29:57 So, I think that I want an API based FFI. 20:30:42 which then brings in the C compiler. 20:31:50 I think this will bring up the question of mapping APIs in one language into another language. Is there always a natural or even sensible way to do this? 20:31:55 No. 20:32:13 grah 20:33:24 -!- hotblack23 [n=jh@p5B057C78.dip.t-dialin.net] has quit [Read error: 104 (Connection reset by peer)] 20:33:56 sepult [n=buggarag@xdsl-87-78-159-228.netcologne.de] has joined #scheme 20:34:51 just how bad is it? Are there only pathological corner cases without a natural mapping, or does the problem spring up everywhere? 20:36:27 -!- errordeveloper [n=errordev@78-86-1-110.zone2.bethere.co.uk] has quit [Read error: 110 (Connection timed out)] 20:40:48 -!- rcassidy_ [n=ryan@129.10.228.203] has quit [] 20:42:44 I conjecture that if two languages support the same programming paradigm (in some sense), then there is a natural mapping between an API in language A which uses that paradigm exclusively and an API in language B which also uses that paradigm exclusively. 20:43:25 You'll have to be very careful about what constitutes `the same programming paradigm'. 20:43:29 indeed. 20:43:44 I'm not sure what a rigorous sense would be here. 20:45:02 in many cases this can be a case of the perfect being the enemy of the good -- sometimes it's fine to define a simple, understandable but not perfect wrapper, and the tools to allow the "client" language to change the mapping if they want to 20:45:17 But I expect (and this could be itself the conjecture) that there is a useful nontrivial sense in which the above statement is true. 20:45:49 wingo-tp: I think I agree. 20:46:06 But first, there has to be the possibility of a mapping that is intelligible at all. 20:47:12 For instance, if I have a C function foo that takes as its argument a value of complicatedly constructed type bar, I've got to figure out how to construct a bar at all. 20:47:24 How about if bar is char *? 20:47:39 That just restates the problem. 20:47:57 -!- Mr_Cat [i=4e6bea35@gateway/web/ajax/mibbit.com/x-5588c9404107a262] has quit ["http://www.mibbit.com ajax IRC Client"] 20:47:58 char * is an excellent source of pathological examples. 20:47:59 I still need to know what meaning the bits in bar have. 20:48:11 If alarm klaxons don't go off when I say `char *', then you haven't thought hard enough about C APIs. 20:49:14 *wingo-tp* likes the word "klaxon" 20:49:28 It is from Star Trek. 20:49:40 Should they be the same klaxons as for void *? 20:50:48 in spanish a klaxon is a car horn. 20:52:02 that was the meaning I was familiar with as well. 20:52:08 although not so much in Spanish as in English. 20:52:20 well, I best go pick up my wife now. 20:52:23 bbl. 20:52:31 Is there a place to post code? I'm not sure what I'm doing wrong here. 20:53:20 http://paste.lisp.org/new/scheme 20:54:22 Thanks. 20:55:28 Inhuman pasted "ascending ordered list" at http://paste.lisp.org/display/76040 20:56:12 Now I understand that this isn't necessarily the correct algorithm. The problem is my nested if statement... 20:57:12 I keep getting the error message: car: expects argument of type ; given (), and I am not sure why. I am passing it a list of 3 integers. 20:59:35 I think you may have you're main if backwards 20:59:50 it's (if ) 21:00:12 looks to me that if you pass in a pair/list it'll just return the pair/list 21:00:20 and only otherwise will it call the function 21:01:23 Though, I'm clearly missing something, cause that's not what my interpreter says 21:01:26 If there is only one item in the list, return that item, otherwise compare the first item of the list against the recursive call... which at it's base case should return a single value 21:01:40 err nvm 21:01:46 And what is that single value? 21:02:08 err... the last item in the list I suppose. 21:02:25 it'll be '() 21:02:35 errordeveloper [n=errordev@78-86-1-110.zone2.bethere.co.uk] has joined #scheme 21:02:48 Base case should stop it before it gets to '() 21:03:30 Inhuman: The next to last largest will be called a list with one element. 21:03:44 ...with a list... 21:04:32 rudybot: eval (atom? '(1 . ())) 21:04:33 Arelius: your sandbox is ready 21:04:33 Arelius: error: reference to undefined identifier: atom? 21:04:39 zbigniew: wanted to thank you for working your magic on ssax, man 21:04:43 seriously saved my ass 21:04:46 has someone an O(n) implementation of topological sort? 21:05:03 klutometis: You're welcome. 21:05:06 bah where is incubot. 21:05:22 rotty, no 21:05:48 Cheshire: how do you know ;-)? 21:06:02 I just realized a mistake I made. Thanks for your help folks. 21:06:02 *wingo-tp* impressed by clinger's precision 21:06:03 Arelius: thanks, man; i'll set up a new machine 21:06:17 =P 21:06:26 Not trying to be a hassle... 21:06:28 wingo-tp: He is one of the new kings. 21:06:40 but I miss incubot and his evalling prowless. 21:06:44 rotty, you can encode the problem of sorting a list into topological sort so it necessarily has larger or equaly time complexity, O(n) sorting is impossible 21:06:48 mejja: the sc you mean? 21:07:03 yes yes 21:07:07 *wingo-tp* hasn't gotten there yet in today's deluge of mail 21:07:20 preliminary result http://paste.lisp.org/display/76028 21:07:21 mejja: that's almost too bad, i think he'd be a better editor. but still good :) 21:07:56 Cheshire: to be exact, I mean O(|N| + |K|) 21:08:22 wow, surprising results, to me. 21:08:23 rotty, both are exact 21:08:33 (N being the set of nodes, and K being the sets of vertices) 21:08:45 klutometis pasted "O(E + V) topological" at http://paste.lisp.org/display/76042 21:08:56 rotty, you're probably aware that O(n) is different to O(n + k) though 21:08:59 rotty: it's a little messy, and there's extra shit; but it'll do you in constant time 21:09:15 klutometis: you type fast! 21:09:20 rotty, kinda like saying "people have 6 fingers, .. or to be exact 10" 21:09:26 zbigniew: heh 21:09:51 rotty: in particular, clrs keeps track of time, etc.; which shouldn't be necessary 21:10:01 *Cheshire* yuck :( 21:10:09 (for-each (cut visit-if-undiscovered <>) vertices) ~~> (for-each visit-if-undiscovered vertices) 21:10:22 Cheshire: I was just being sloppy. if you define 'n' to be the size of the input graph, what I said make sense 21:10:22 I hate that cut macro 21:10:31 Cheshire: thx; i wrote it in my youth 21:10:37 rotty, not sure why you are pretending you didn't make a mistake 21:10:56 cut is cute 21:10:57 it should be reducible to about 10 lines or so 21:13:09 klutometis: thanks. license? 21:14:40 rotty: hmm; whatever + attribution 21:19:01 BW^- [i=Miranda@151.80.140.186] has joined #scheme 21:19:12 where can i find a snippet of code written in PreScheme? 21:19:42 Cheshire: If I've a function "topological-sort" which takes a representation of the input graph (like, e.g. http://practical-scheme.net/gauche/man/gauche-refe_170.html#IDX3381), then there is an algorithm to do it in O(n), "n" being the size of the graph. I happily admit that I should have declared what I meant by "n". 21:20:02 BW^-, fetch the Scheme48 source, and look in the scheme/vm/ subdirectory. 21:21:20 riastradh: the code there does not seem to be written in prescheme to me? 21:21:29 Why does it not seem to be written in Pre-Scheme? 21:21:45 becaue pre-scheme has type declarations all over the place, no? 21:21:48 No. 21:21:50 wait, does pre-scheme have a GC? 21:21:52 No. 21:21:53 not? 21:22:01 hehe. huh. 21:22:12 so it does not have type declarations all over the place, and, it does not have a gc. right? 21:22:18 Correct. 21:22:29 what's more unique about it, 21:22:37 vs. gambit/chicken/bigloo for instance? 21:22:40 no call7cc, right? 21:23:07 how does pre-scheme manage to be without a GC? 21:23:18 kilimanjaro [n=kilimanj@70.116.95.163] has joined #scheme 21:23:30 Many objects do not have unlimited extent as they do in Scheme. 21:23:53 how do you mean 21:23:54 The program is required to limit the extent of such objects, or face memory exhaustion. 21:23:55 ? 21:24:27 There are procedures to deallocate the storage occupied by objects, and thereby limit their extents. 21:25:05 If programs do not deallocate the storage occupied by objects that are no longer referenced, they may exhaust the available memory. 21:25:32 This shows up very little in the Scheme48 virtual machine because most of the storage is managed by a garbage collector, implemented in Pre-Scheme. 21:26:08 aha. 21:26:34 does this there not being a GC impact how general scheme code may be written in pre-scheme in any way? 21:26:40 i didn't get your point really, extent of objects 21:28:05 If you allocate a block of bytes with the ALLOCATE-MEMORY procedure, or if you allocate storage for a record using a constructor defined by the DEFINE-RECORD-TYPE macro, the storage will persist until you deallocate it explicitly. 21:29:56 In Scheme, objects persist indefinitely, but the storage of unreferenced objects is reclaimed automatically by the garbage collector, so that programs need not worry about it. 21:30:55 Are you familiar with C? If you allocate storage with malloc(3), it is your responsibility to deallocate it with free(3). 21:31:03 i am 21:31:14 The situation is analogous in Pre-Scheme. 21:31:16 how does this affect pre-scheme? 21:31:30 if i do (define a (lambda (a b) (lambda () a))) 21:31:36 (define c 123456) 21:32:00 (define d (a c 0)) (define e (a c 0)) .. well watever... 21:32:07 then does pre-scheme do all memory-management for me or not? 21:32:13 Pre-Scheme does no memory management for you. 21:32:22 Pre-Scheme lacks full closures at run-time. The compiler will attempt to reduce as many at the top level as it can. 21:32:41 what if it can't reduce them away? 21:32:44 compiler throws errors? 21:32:46 Then it will signal an error. 21:32:53 hm ok. 21:33:01 does pre-scheme objects have reference counters internally did you say? 21:33:15 I said nothing about reference counts. 21:33:20 ok 21:33:22 do they? 21:33:23 Pre-Scheme does not provide anything related to reference counts. 21:33:27 ok 21:34:20 As I said, the situation in Pre-Scheme concerning memory management is analogous to that in the standard C library. 21:34:24 how can i know if a particular snipped of scheme code is compilable in prescheme? 21:34:51 Either you must predict, or you must test, the effect of running it through the Pre-Scheme compiler. 21:34:55 compile it with pre-scheme compiler? 21:35:40 ok 21:35:48 how much closure support is there? 21:36:23 Pretty much anything that can be reduced syntactically by beta reduction, without data flow analysis, will be. 21:37:15 ok 21:38:42 light [n=ghost@unaffiliated/light] has joined #scheme 21:41:27 are there any scheme environments in addition to stalin that do flow analysis? 21:43:30 Yes. 21:43:59 cool! which? 21:44:26 i mean, flow analysis in the sense, optimize code according to what data types will actually pass through it 21:44:36 type inference? 21:44:38 i suppose that's what we use to mean by flow analysis. 21:44:52 LIAR performs simple monovariant flow analysis, used primarily for closure conversion and constant folding. 21:45:08 url to LIAR? 21:45:19 It is the name of MIT Scheme's compiler. 21:45:25 aa 21:46:24 dark [n=ghost@unaffiliated/light] has joined #scheme 21:48:06 Chez also performs monovariant flow analysis, which I believe it uses for representation selection, or perhaps type check elimination, and automatic procedure integration (and also for closure conversion, I'm sure). 21:48:20 -!- light [n=ghost@unaffiliated/light] has quit [Read error: 60 (Operation timed out)] 21:48:31 -!- jlongster [n=user@75.148.111.133] has quit [Remote closed the connection] 21:49:12 jlongster [n=user@75.148.111.133] has joined #scheme 21:50:13 I have a scheme file originally edited in DrScheme (it has the #reader stuff on the first line). I'm executing with mred. How do I get mred to display the test results? 21:52:15 ok 21:52:28 apparently this does not impact execution speed too much, 21:52:32 or.. does it? 21:52:41 What do you mean, BW^-? 21:52:54 (i saw Chez on the shootout, and it was fast in comparison with the other environments, but not too much) 21:53:00 rovar [i=c7aca921@gateway/web/ajax/mibbit.com/x-c0634131a8761601] has joined #scheme 21:53:13 What are you comparing, precisely? 21:53:24 i hear someone was discussing PreScheme? 21:53:58 There was some discussion of Pre-Scheme recently, yes. 21:54:31 is it true that it does not allow lists, even homogenous lists? 21:54:49 No, but it doesn't provide them either. 21:54:53 -!- BW^- [i=Miranda@151.80.140.186] has left #scheme 21:55:05 right 21:55:23 which compiler specifically? or are you referring to the spec? 21:55:31 The compiler is the specification. 21:57:08 so which compiler did not provide them? 21:57:12 light [n=ghost@ppp121-45-206-208.lns10.adl2.internode.on.net] has joined #scheme 21:57:29 there is only one pre-scheme compiler 21:57:31 afaik 21:57:50 I have one, but it is not standard conforming. 21:57:51 There are two implementations of Pre-Scheme. One of them is a library in Scheme48 to run Pre-Scheme code as Scheme code, with a library for manual memory management and several other routines used in Pre-Scheme. 21:57:55 I call it "echo". 21:58:03 The other is the Pre-Scheme compiler, which compiles Pre-Scheme code into C code. 21:58:15 Neither one provides lists. 21:58:43 -!- singi [n=singi@85.8.10.149] has quit ["Lämnar"] 21:58:52 they aren't as easy to suppport without gc 21:59:26 I found the pre scheme in scheme48, this is also a prescheme->c compiler in chicken scheme. 21:59:41 what is the Pre-Scheme compiler? I haven't been able to locate that 21:59:45 It is a part of Scheme48. 21:59:52 Its source code is in the ps-compiler/ subdirectory of Scheme48's source tree. 22:01:41 dmoerner [n=dmr@ppp-71-139-45-71.dsl.snfc21.pacbell.net] has joined #scheme 22:02:16 I think the one in chicken is a port(?) of the scheme48 one 22:02:40 kniu [n=kniu@DA-YU.RES.CMU.EDU] has joined #scheme 22:03:56 Gosh, works well. 22:04:17 indeed. 22:04:24 -!- Arelius [n=Indy@netblock-68-183-230-134.dslextreme.com] has quit [] 22:04:34 puchacz [n=puchacz@87-194-5-99.bethere.co.uk] has joined #scheme 22:06:54 ayrnieu_ [n=julianfo@c-76-30-82-6.hsd1.tx.comcast.net] has joined #scheme 22:10:51 -!- ayrnieu [n=julianfo@c-76-30-82-6.hsd1.tx.comcast.net] has quit [Nick collision from services.] 22:10:52 -!- ayrnieu_ is now known as ayrnieu 22:11:22 -!- dark [n=ghost@unaffiliated/light] has quit [Read error: 110 (Connection timed out)] 22:14:26 dead chicken 22:14:47 shameful.. schem programmers relying on python 22:16:37 rovar: instance? 22:17:34 klutometis: I think he was talking about trac 22:17:43 aha 22:17:58 is there something equivalent in scheme? 22:18:18 dark [n=ghost@unaffiliated/light] has joined #scheme 22:22:02 i bet one could build one with icing rather easily 22:25:56 -!- peter_12 [n=peter_12@S010600119506b129.gv.shawcable.net] has quit [Read error: 110 (Connection timed out)] 22:26:08 continuations lend themselves nicely to web services, and scheme lends itself nicely to continuations 22:26:21 Adamant [n=Adamant@c-71-226-66-93.hsd1.ga.comcast.net] has joined #scheme 22:28:09 rovar: sounds great; i'll buy the domain, you come up with alpha 22:30:47 -!- light [n=ghost@unaffiliated/light] has quit [Read error: 110 (Connection timed out)] 22:31:13 -!- dark is now known as light 22:32:29 -!- sepult [n=buggarag@xdsl-87-78-159-228.netcologne.de] has quit ["leaving"] 22:35:13 -!- kniu [n=kniu@DA-YU.RES.CMU.EDU] has quit [Client Quit] 22:40:26 dark [n=ghost@unaffiliated/light] has joined #scheme 22:40:27 Writing fragile software in Scheme is just as easy as writing fragile software in Python. It takes effort to write robust software in either language. 22:41:17 -!- yates [n=yates@cpe-071-070-224-093.nc.res.rr.com] has left #scheme 22:41:56 So, are you prepared to put into your Scheme tracker at least the same effort that the developers of Trac put into Trac? 22:42:46 -!- ecraven [n=nex@140.78.42.103] has quit ["bbl"] 22:49:07 -!- langmartin [n=user@75.148.111.133] has quit [Read error: 113 (No route to host)] 22:49:37 -!- hemulen [n=hemulen@208.80.65.98] has quit [] 22:52:27 -!- wingo-tp [n=wingo@209.Red-88-0-165.dynamicIP.rima-tde.net] has quit ["Leaving"] 22:52:32 wingo-tp [n=wingo@209.Red-88-0-165.dynamicIP.rima-tde.net] has joined #scheme 22:52:42 rcassidy [n=ryan@129.10.228.118] has joined #scheme 22:53:17 -!- light [n=ghost@unaffiliated/light] has quit [Read error: 110 (Connection timed out)] 22:53:52 lowlycoder [n=x@unaffiliated/lowlycoder] has joined #scheme 22:55:42 -!- schmalbe [n=bernhard@p549A129E.dip0.t-ipconnect.de] has quit [Remote closed the connection] 22:55:48 Riastradh: not at all. I've got better things to do :) 23:03:35 rovar: what's more shameful, though: bitching about a non-existent system without the apposite libido to write it; or using a mature system written in an inferior language? 23:03:42 metasyntax [n=taylor@pool-71-127-85-87.aubnin.fios.verizon.net] has joined #scheme 23:08:14 i'm afraid my irc client doesn't transmit my sarcasm :) 23:09:31 in reality, I would call A shameful and B not at all. 23:11:06 Look at the bright side. If you use a lump of code written in a language distasteful to you, you'll never be tempted to hack on it. 23:11:42 hemulen [n=hemulen@99-7-171-19.lightspeed.sntcca.sbcglobal.net] has joined #scheme 23:11:47 My music server runs a great warty mass of Perl. This used to bother me, but now I see it as an advantage. 23:11:54 heh 23:17:21 -!- rovar [i=c7aca921@gateway/web/ajax/mibbit.com/x-c0634131a8761601] has quit ["http://www.mibbit.com ajax IRC Client"] 23:18:06 Dawgmatix [n=deep@207-237-30-94.c3-0.avec-ubr11.nyr-avec.ny.cable.rcn.com] has joined #scheme 23:18:08 -!- athos [n=philipp@92.250.204.223] has quit ["leaving"] 23:18:33 why doesn't anyone use the irony mark? http://en.wikipedia.org/wiki/Irony_mark 23:18:49 oh, it's not in unicode? oh, irssi + screen won't render it? 23:19:02 oh, good irony doesn't require explication? 23:19:02 -!- rcassidy [n=ryan@129.10.228.118] has quit [] 23:19:15 christ 23:19:31 -!- ejs [n=eugen@92-49-195-3.dynamic.peoplenet.ua] has quit [Read error: 110 (Connection timed out)] 23:19:49 I do believe that #scheme qualifies as an obscure literary or artistic publication. 23:19:54 -!- jewel [n=jewel@dsl-242-147-152.telkomadsl.co.za] has quit [Read error: 113 (No route to host)] 23:20:43 Daemmerung: incubot (when it's up) is a counter-example, i think; that fucker is full of obscure and artistic publications 23:20:52 micro-publications, that is; one-liners 23:21:15 raikov [n=igr@203.181.243.11] has joined #scheme 23:21:35 Why does incubot not currently honor us with its presence? Is it taking a spa weekend? 23:22:51 Daemmerung: electrician is replacing my knob and tube with something more modern 23:22:58 doesn't seem to compile in 32-bit 23:23:01 in short: working on it 23:26:21 -!- civodul [n=user@reverse-83.fdn.fr] has quit ["ERC Version 5.3 (IRC client for Emacs)"] 23:28:12 -!- puchacz [n=puchacz@87-194-5-99.bethere.co.uk] has quit [Remote closed the connection] 23:30:38 -!- kryptiskt [n=irc@cust-IP-129.data.tre.se] has left #scheme 23:33:45 hey in the plt FFI... dang this is tricky 23:34:18 In this library, they use a "destructor function" which is a pointer. But they cast -1 to that pointer type, to represent a special case. 23:34:22 kryptiskt [n=no@80.251.192.3] has joined #scheme 23:34:55 But I get the impression that when plt casts -1 to that pointer type, it produces a different pointer than when C does it. Perhaps only on 64 bit addressing. 23:35:30 Eh actually I should verify that before raising an issue about it. 23:38:22 -!- Def is now known as Deformative 23:40:13 -!- Cheshire [n=e@amcant.demon.co.uk] has quit ["Leaving"] 23:42:51 -!- Dawgmatix [n=deep@207-237-30-94.c3-0.avec-ubr11.nyr-avec.ny.cable.rcn.com] has quit [Read error: 54 (Connection reset by peer)] 23:43:28 Dawgmatix [n=deep@207-237-30-94.c3-0.avec-ubr11.nyr-avec.ny.cable.rcn.com] has joined #scheme 23:46:11 -!- wingo-tp [n=wingo@209.Red-88-0-165.dynamicIP.rima-tde.net] has quit [Read error: 113 (No route to host)] 23:46:33 hmm... 23:47:08 If I pass -1 as a _long, then it is equal to the pointer casted -1, but not if I pass it as an _int. Does _long work on 32 bit too? 23:47:10 -!- jlongster [n=user@75.148.111.133] has quit [Read error: 113 (No route to host)] 23:51:02 -!- sstrickl [n=sstrickl@nomad.ccs.neu.edu] has quit [Read error: 113 (No route to host)] 23:51:19 kniu [n=kniu@128.237.248.62] has joined #scheme 23:53:08 I'll just test ctype-sizeof to decide which. 23:53:18 If you're on a LP64 architecture, _int is not _long. 23:54:52 _long should be safe to use on 32-bit, too. (It is not correct on a LLP64, but Linux and Solaris and etc., which I imagine you're using, are all LP64.) 23:58:25 meanburrito920_ [n=John@adsl-76-236-77-228.dsl.lsan03.sbcglobal.net] has joined #scheme