00:01:34 -!- choas [n=lars@p5B0DF45C.dip.t-dialin.net] has quit ["leaving"] 00:02:16 -!- mreggen [n=mreggen@cm-84.215.28.167.getinternet.no] has quit [Operation timed out] 00:02:34 mreggen [n=mreggen@cm-84.215.28.167.getinternet.no] has joined #scheme 00:06:54 Yeah, there's a somewhat sensationalistic but pretty good industry bio on that whole phenomena. But when you read the book, it looks to me alot more like a people problemm (programmers, users) than a technology problem (tools, algorithms, languages). Most organizations just DIDN'T HAVE THEIR SH*T TOGETHER to encode expertise (rule/facts) into machines. AMEX and Cambell's soup did, and they are now *classic* success stories. The lack of uniformity in th 00:09:32 uniformity in th...? 00:09:45 Whoops, did it again. 00:10:10 -!- jmegner [n=jmegner@c-98-197-3-166.hsd1.tx.comcast.net] has quit ["Leaving"] 00:10:19 The lack of uniformity in the simplest information representations is SUPER SCARY. It would take likely hundreds of lines to *somewhat *reliably parse all the weird formats for $dollar numbers out there (just think of (negative) in Excell, for one weird examplel). How in the hell are we supposed to get from this total mess to something like AI where we might really put all this CPU power and disk space to use??? (Sorry, rant for the day) 00:10:24 Did that do the trick? 00:10:58 Seems it did. 00:11:01 Mr_Awesome [n=eric@c-98-212-136-80.hsd1.il.comcast.net] has joined #scheme 00:11:19 Got an easy solution to the dilemma ??? ;-) 00:11:45 -!- attila_lendvai [n=ati@adsl-89-132-1-243.monradsl.monornet.hu] has quit [Read error: 148 (No route to host)] 00:11:52 My solution is going to bed right now ;) 00:13:19 Wait! Duh, we drop XML and use Scheme s-expr's for the semantic web. Legislate very strict public information reporting requirements (via new s-expr semantic web) and we *might* just be on our way to *somewhere* of interest. 00:15:49 First thing we need is a "Scheme Web Lint" to automatically check for sound syntax and strictly penalize companies and other organizations who can't get their s-expr based representations into tip-top-shape. 00:16:31 With all the blathering idiots out there, these fines alone might well fund the rest of the project :-) *VERY* much just joking. 00:18:07 crink [n=crink@unaffiliated/crink] has joined #scheme 00:22:16 Arelius [n=Indy@208.87.217.194] has joined #scheme 00:24:25 ventonegro [n=alex@189.100.201.191] has joined #scheme 00:24:48 -!- ventonegro [n=alex@189.100.201.191] has quit [Client Quit] 00:24:55 Modius [n=Modius@cpe-70-123-130-159.austin.res.rr.com] has joined #scheme 00:28:01 Summermute: The bug was fixed, and a build is on the way -- so in about 2 hours you could reinstall a working version. 00:43:11 Wow! Awesome! I can watch fewer late night cartoon reruns :-) 00:45:32 Question on Scheme Language Design and recursion primitives.... 00:50:32 So we have (define (foo) (foo)); (let loop () (loop)); Lisp's labels which I was told yesterday is better called fix; (fix (foo (x) (bar (- x 1)) (foo (y) (- y 1)); and then there's SRFI 31, one of my favorites, the rec keyword for defining recursive terms not just definitions (rec s (cons 1 s)) gives an infinite list just for example. 00:52:22 -!- dmoerner [n=dmr@89-214.res.pomona.edu] has quit [Remote closed the connection] 00:52:41 So my question is convenience aside, does a language definition, a "core" as it were, need so many recursion oriented special forms? What would be a be single primtive, or may a required set of primitives (this must have been studied theoretically at some point). 00:54:36 predrg [n=pr@79-175-73-141.adsl-a-1.sezampro.yu] has joined #scheme 00:54:47 dmoerner [n=dmr@89-214.res.pomona.edu] has joined #scheme 00:55:07 -!- kilimanjaro [n=kilimanj@cpe-173-172-99-25.austin.res.rr.com] has quit ["Leaving"] 00:55:08 (define (foo) (foo)) seems a looser. it's an odd shorthand for (define foo (lambda () (foo))), where I must admit my ignorance whether or not foo is even in scope yet for the recursive call. 00:55:13 Foofie [n=innocent@86.80-203-225.nextgentel.com] has joined #scheme 00:55:45 Summermute: Y 00:56:12 Eeek, the dreaded Y combinator :-) 00:56:49 I was hoping for something a programmer might just type along casually to implement a loop or something prosaic. 00:59:56 If I'm not mistaken, named let is a direct analog for the first form for define: (let loop ((x 1)) (loop (+ x 1) => (begin (define (loop x) (loop (+ 1 x))) (loop 1)). Something like that, yes? 01:00:46 That would leave fix and rec if I'm keep count right. 01:01:53 -!- Fufie [n=innocent@86.80-203-225.nextgentel.com] has quit [Read error: 145 (Connection timed out)] 01:02:07 meh... how in the hell does the C compiler find stat... 01:02:08 It's not a macro. But it's not in libc. 01:02:36 (rec id expr) covers the simplified define syntax case. (define loop (rec xloop (lambda (x) (xloop (+ 1 x))))) 01:04:36 Even better, as a *term* instead of a (define), we can call it directly: (rec loop (lambda (x) (loop (+ 1 x))))(1). This will happily count up forever in an infinite loop :-) 01:05:38 (rec) also has uses for data structures and what not, not just names for recursive funcalls. 01:06:50 What we are *LACKING* though is mutual recursion, unless I'm missing some obvious syntactic combination that makes this trivial with the (rec) syntax. 01:08:09 (rec a (rec b (rec c ... covers a few common cases, but certainly not full mutual recursion. 01:13:53 -!- minion [n=minion@common-lisp.net] has quit [Remote closed the connection] 01:14:52 (rec a (lambda (x) (b (1+ x))) b (lambda (x) (a (1+ x)))) => (# #) 01:16:58 This is odd, but if (rec) returns a *term*, which we "like." Fix *declares* a set of mutually recursive functions. So maybe some syntactic use of (fix) or (rec) should simply ALWAYS return a term: either one recursive function or a list of recursive functions. 01:18:27 -!- npe [n=npe@94-224-251-223.access.telenet.be] has quit [] 01:19:50 So using fix, we'd have somethign like (fix ([a (x) (1+ (b x))] [b (y) (1+ (a y))]) (list a b)) 01:21:04 This gives us a list of two mutually recursive funs (that just count up) (# #) 01:22:11 So returning another term (list) we can fluff the syntax and just use (fix) or (rec) at our choosing to define ONE OR MORE self or mutually recursive functions. 01:22:43 Does that make sense to anyone else but me? One primtive named (rec) or (fix) ? 01:26:09 -!- predrg [n=pr@79-175-73-141.adsl-a-1.sezampro.yu] has quit [] 01:27:35 QinGW [n=wangqing@203.86.89.226] has joined #scheme 01:28:25 lisppaste [n=lisppast@common-lisp.net] has joined #scheme 01:28:50 OK. It's just me in Scheme fantasy land. I'm starting to see only big hairy bats on the Rorschach inkblot test :-) 01:29:20 samth [n=samth@c-76-24-220-74.hsd1.ma.comcast.net] has joined #scheme 01:30:01 minion [n=minion@common-lisp.net] has joined #scheme 01:30:08 specbot [n=specbot@common-lisp.net] has joined #scheme 01:31:11 letrec? 01:32:07 Summermute: you can't stop here, this is Donkey Kong Country 01:33:05 I have the "fixing letrec" paper open in a tab in my browser, so I'm boycotting letrec for the time being :-) 01:33:36 anybody going to write SOTG? (scheme on the go) 01:33:51 Ok, what's SOTG? 01:34:12 scheme on the go 01:34:38 Well, yes, I can read :-) What are it's "attributes," let's ask? 01:35:08 hint: new language from google. go aka golang aka issue9 01:36:47 The LTU blog has a pretty darn good set of comments pro/con/history/etc. on Google's new Go. I'm trying to remain open, but so far nothing really impresses me about it. 01:37:51 Oh, do you want a Scheme->Go compiler? 01:38:37 i think it's nice. and being more lightweight is better target (for skipping the hard parts of garbage collector and the like) than java, C#, or erlang for that matter, 01:38:55 From what I've seen the of "minimal but present" systematic qualities of Go, it wouldn't be say, like compiling Scheme to Java, or even C or something. 01:39:00 sure as a first step. 01:40:19 It does compile to good old .exe or runme* style files, thank goodness. If nothing else, maybe it will get us out of this 15+ year "virtual machine" funk (IMHO). 01:40:51 the vm is here to stay 01:41:05 go has a vm just the same 01:41:19 Oh, wait, really. What did I miss? 01:41:28 it has a gc 01:41:31 therefore, it has a vm 01:41:44 doing scheme implementation may be easy compared to other languages, but then it falls apart in the ecosystem/supporting the runtime department. 01:42:00 it doesn't have to have a vm that you can target, but that's not really any different 01:42:11 that's a semantics issue - a big runtime doesn't mean that user code/primops doesnt run on compiled on bare metal. 01:42:30 jvm operations run compiled on bare meta 01:42:40 x86 ops are translated into an internal language 01:43:11 -!- splork [n=ben@dsl092-075-228.bos1.dsl.speakeasy.net] has quit ["Computer has gone to sleep"] 01:43:36 It does seem to have quite a runtime. Already a giant library, some concurrency funkiness I have not yet explored, the aforementioned GC, and I'm kind a of curious what the compiler might or might not be doing about certain language constructs (like aliasing). 01:43:43 for example golang attempts to make (automatic) linking to other C code easy... as it is now it's every scheme implementation is on its own. 01:44:45 I don't have gray hair yet (too much anyway), but there were/are lots of very well defined and strictly followed calling conventions into the compile-to-bare-metal world!!!! 01:44:56 *offby1* hasn't yet figured out how to link two files together in go 01:45:20 offby1: gopack perhaps 01:47:08 anyway 01:47:29 davazp [n=user@156.Red-79-153-148.dynamicIP.rima-tde.net] has joined #scheme 01:47:34 Anyway, kind of a bore, I know, but if Mono got its act together 100% on Linux/Mac, compiling to something lower level like the CLR makes alot more sense than compiling to a higher level language like Go. (Substitute Neko, JVM, etc. for Mono to fit your tech-politics). 01:48:09 .oO("gopack", huh? hmm) 01:49:14 it's some ar thingy, using linker doesn't work? 01:49:53 Heck, anyone keep careful track of LLVM and C-- for that matter? Those would (well, could) be nearly ideal target languages if gussied up a bit for "dynamic" languages. 01:50:48 i guess 6/8l is supposed to be used to create standalone executable. 01:50:58 -!- Guest90330 is now known as klutometis 01:51:45 duckinator [n=nick@botters/staff/duckinator] has joined #scheme 01:53:23 The folks on LTU seem in more-or-less agreement that Google is already "encouraging" all new and recently started projects to switch to Go from Python!!!! Google's big enough, that that is eventually going to be a big Python resource going bye bye. 01:54:52 Also, I'd bet good money that anything out of the Python crew will be orders of magnitude slower than anything that comes out of a group that includes Rob Pike and other former Unix/Bell Labs luminaries. 01:54:54 *mejja* celebrates 01:55:36 -!- centipedefarmer [n=nothingH@173-25-176-111.client.mchsi.com] has quit [Read error: 110 (Connection timed out)] 01:55:43 Maybe now we'll also finally abandon this stupid myth that the computing world is all IO bound and that CPU cycles don't matter. 01:58:57 I mean, can we all together say "Ruby." I saw a cool benchmark a few years back where the world's pretty much slowest Smalltalk (Squeak, byte code run remember) just *creamed* Python on a gadzillion benchmarks. It feels like we've lived through a decade or more of complete computing idiocy :-) 02:00:14 splork [n=ben@dsl092-075-228.bos1.dsl.speakeasy.net] has joined #scheme 02:01:49 -!- splork [n=ben@dsl092-075-228.bos1.dsl.speakeasy.net] has quit [Client Quit] 02:01:49 mabes [n=mabes@bmabey.fttp.xmission.com] has joined #scheme 02:01:56 yeah, it all started in 1995. 02:04:57 sladegen: My goodness, but yes, I do think that was the *exact* year our collective computing IQ started going downhill rapidly. The only thing that probably "saved" us (if ignorance is salvation) is the *completely insane* hardware/protocol improvements we've been blessed with by the CPU, Disk and Networking folks - starting just about the same year! Hmmmmmm? 02:07:15 -!- masm [n=masm@bl7-192-142.dsl.telepac.pt] has quit ["Leaving."] 02:10:48 Interesting tidbit from a Google guy - Python's got the thread lock thing (which people have bitched about for as long as I can recall); so read "threading sucks." The fellow points out that the load on any given google service can go from near 0 to x10 to x100, and python (non)threads just don't cut it (all else being equal, which he does point out is not). 02:12:15 *sladegen* blames Clinton. 02:12:20 So here's the lesson: DON'T THINK ONE IS INVINCIBLE AND IGNORE STUPID DESIGN/IMPLEMENTATION ISSUES IN YOUR COMPILER/LANGUAGE/RUNTIME DESIGN. You clearly *WILL* eventually suffer someone who comes along and does it right. As it should be. 02:13:42 Where "suffer" means lose lots of users rapidly and eventually disappear/lose funding/drift off into irrelevance. 02:16:01 well, my impression is that unix haters' book was written mostly by microsofties. so it would be nice if go (written by Plan9 people) were to overtake the c/c++ world. one can dream... 02:22:00 -!- Axioplase_ is now known as Axioplase 02:25:44 -!- MichaelRaskin [n=MichaelR@195.91.224.225] has quit [Remote closed the connection] 02:26:15 MichaelRaskin [n=MichaelR@195.91.224.225] has joined #scheme 02:31:05 sladegen: No; it was mostly written by former Lisp machine users, as I understand it. A few of them later ended up at Microsoft. 02:31:28 the Irony! 02:32:39 Summermute: If doing things right technically was important at all, Python wouldn't ever have achieved the level of popularity it did. Clearly non-technical concerns have a greater effect. 02:33:23 Summermute: ping 02:36:51 -!- zanes [n=zane@c-76-119-235-9.hsd1.ma.comcast.net] has quit [] 02:39:38 TR2N [i=email@89-180-185-102.net.novis.pt] has joined #scheme 02:41:58 splork [n=ben@dsl092-075-228.bos1.dsl.speakeasy.net] has joined #scheme 02:48:35 zanes [n=zane@pool-129-44-182-54.bos.east.verizon.net] has joined #scheme 02:48:42 -!- zanes [n=zane@pool-129-44-182-54.bos.east.verizon.net] has quit [Remote closed the connection] 02:49:25 Summermute: some of it they will have trouble changing 02:49:42 like, they hired Guido to do Google App Engine 02:50:13 although I would be happy to see GAE creamed and replaced by Amazon's offerings 02:50:20 kilimanjaro [n=kilimanj@cpe-173-172-99-25.austin.res.rr.com] has joined #scheme 02:52:01 QinGW1 [n=wangqing@203.86.89.226] has joined #scheme 02:58:05 -!- QinGW [n=wangqing@203.86.89.226] has quit [Read error: 60 (Operation timed out)] 02:59:50 -!- davazp [n=user@156.Red-79-153-148.dynamicIP.rima-tde.net] has quit [Remote closed the connection] 03:05:41 xwl__ [n=user@esprx01x.nokia.com] has joined #scheme 03:07:03 -!- xwl_ [n=user@esprx01x.nokia.com] has quit [Remote closed the connection] 03:07:03 -!- xwl__ [n=user@esprx01x.nokia.com] has quit [Remote closed the connection] 03:07:16 xwl_ [n=user@esprx01x.nokia.com] has joined #scheme 03:07:16 xwl__ [n=user@esprx01x.nokia.com] has joined #scheme 03:19:11 -!- MichaelRaskin [n=MichaelR@195.91.224.225] has quit [Remote closed the connection] 03:19:41 MichaelRaskin [n=MichaelR@195.91.224.225] has joined #scheme 03:27:10 Who wants to laugh at a highly incomplete scheme interpreter written in ruby?! http://github.com/RockerMONO/scruby/ :D 03:27:50 fwiw that's almost letter-for-letter from a tutorial, but i wrote an irc bot that uses it .. http://github.com/RockerMONO/schemey/ 03:30:26 -!- Axioplase [n=Axioplas@fortigate.kb.ecei.tohoku.ac.jp] has quit [Read error: 60 (Operation timed out)] 03:32:07 Axioplase [n=Axioplas@130.34.188.206] has joined #scheme 03:34:09 -!- bgs100 [n=ian@unaffiliated/bgs100] has quit ["Leaving"] 03:35:34 -!- blackened` [n=blackene@ip-89-102-22-70.karneval.cz] has quit [] 03:35:54 bots written in scheme are dumb 03:36:38 chandler: Yes, that is a very good point I should never forget. 03:39:31 QinGW [n=wangqing@203.86.89.226] has joined #scheme 03:42:41 -!- metasyntax` [n=taylor@pool-71-127-125-129.aubnin.fios.verizon.net] has quit ["Nichts mehr."] 03:43:35 sepult [n=levgue@xdsl-87-78-130-207.netcologne.de] has joined #scheme 03:49:06 -!- reprore [n=reprore@ntkngw598092.kngw.nt.ftth.ppp.infoweb.ne.jp] has quit [Remote closed the connection] 03:50:10 -!- splork [n=ben@dsl092-075-228.bos1.dsl.speakeasy.net] has quit ["Computer has gone to sleep"] 03:52:59 tjaway [n=timj@e176215039.adsl.alicedsl.de] has joined #scheme 04:08:57 -!- QinGW1 [n=wangqing@203.86.89.226] has quit [Connection timed out] 04:09:56 -!- tjafk [n=timj@e176195188.adsl.alicedsl.de] has quit [Read error: 110 (Connection timed out)] 04:29:31 -!- Adamant [n=Adamant@unaffiliated/adamant] has quit [] 04:44:53 -!- samth [n=samth@c-76-24-220-74.hsd1.ma.comcast.net] has quit [Read error: 110 (Connection timed out)] 04:46:34 -!- MichaelRaskin [n=MichaelR@195.91.224.225] has quit [Remote closed the connection] 05:07:51 ski_ [n=md9slj@remote1.student.chalmers.se] has joined #scheme 05:13:10 -!- ASau [n=user@83.69.227.32] has quit ["off"] 05:13:20 -!- leppie [n=lolcow@196-210-146-247-tvwt-esr-2.dynamic.isadsl.co.za] has quit [Read error: 60 (Operation timed out)] 05:16:57 -!- frivol is now known as flippo 05:18:19 kniu [n=kniu@ELMUNDO.RES.CMU.EDU] has joined #scheme 05:18:54 -!- mabes [n=mabes@bmabey.fttp.xmission.com] has quit [Remote closed the connection] 05:20:00 mabes [n=mabes@bmabey.fttp.xmission.com] has joined #scheme 05:22:20 Modius_ [n=Modius@cpe-70-123-130-159.austin.res.rr.com] has joined #scheme 05:22:40 -!- mabes [n=mabes@bmabey.fttp.xmission.com] has quit [Remote closed the connection] 05:28:06 -!- Modius [n=Modius@cpe-70-123-130-159.austin.res.rr.com] has quit [Read error: 60 (Operation timed out)] 05:31:22 -!- beauty [i=3e164621@gateway/web/freenode/x-rghaxpboyzkkjngm] has quit ["Page closed"] 05:50:25 -!- gnomon [n=gnomon@CPE0022158a8221-CM000f9f776f96.cpe.net.cable.rogers.com] has quit [Remote closed the connection] 05:50:42 gnomon [n=gnomon@CPE0022158a8221-CM000f9f776f96.cpe.net.cable.rogers.com] has joined #scheme 06:04:26 -!- ski [n=slj@c-d413e055.1149-1-64736c10.cust.bredbandsbolaget.se] has quit [Read error: 54 (Connection reset by peer)] 06:06:38 ski [n=slj@c-d413e055.1149-1-64736c10.cust.bredbandsbolaget.se] has joined #scheme 06:12:02 -!- ski_ [n=md9slj@remote1.student.chalmers.se] has quit ["Lost terminal"] 06:15:45 blackened` [n=blackene@ip-89-102-22-70.karneval.cz] has joined #scheme 06:19:37 ski_ [n=md9slj@remote1.student.chalmers.se] has joined #scheme 06:21:16 leppie [n=lolcow@196-210-146-247-tvwt-esr-2.dynamic.isadsl.co.za] has joined #scheme 06:31:05 eli: btw, so far seems to have installed like a charm. 06:31:59 Summermute: Yes, the problem was very obviously solved. 06:35:21 -!- jonrafkind [n=jon@98.202.86.149] has quit [Read error: 110 (Connection timed out)] 06:35:28 -!- kilimanjaro [n=kilimanj@cpe-173-172-99-25.austin.res.rr.com] has quit ["Leaving"] 06:43:47 beauty [n=beauty@83.231.53.201] has joined #scheme 06:44:05 morning 06:51:36 -!- sad0ur [n=sad0ur@89.190.42.46] has quit [Read error: 60 (Operation timed out)] 06:59:01 ASau [n=user@host170-230-msk.microtest.ru] has joined #scheme 07:08:18 xwl_` [n=user@esprx01x.nokia.com] has joined #scheme 07:09:44 sullest [n=sullest@c-24-19-14-131.hsd1.wa.comcast.net] has joined #scheme 07:12:08 is there any quick and dirty way to get a sublist? 07:12:24 like '(1 2 3 4 5 6 7 8) 07:12:28 I want to get from 3 to 7 07:12:38 -!- annodomini [n=lambda@wikipedia/lambda] has quit [] 07:12:50 sublis ? 07:16:34 or a combination of take/drop 07:16:41 > (drop (take '(1 2 3 4 5 6 7) 7) 2) 07:16:41 (3 4 5 6 7) 07:17:14 sullest: some combination of drop and drop-right... see srfi/19 07:17:15 ........ 07:17:24 okay thanx 07:17:26 let me try it out 07:17:33 sullest: see srfi 1. I have no idea why I typed 19. 07:17:50 sure drop and take would work too. 07:17:53 darn it I am using PLT 07:20:17 zanes [n=zane@pool-129-44-182-54.bos.east.verizon.net] has joined #scheme 07:40:03 hi! is a sort-of letrec*, yes? All variables are bound at the start os execution, but values are assigned in order. Then, how to handle the case of (define define (lambda (x y) ...)) somewhere in the middle of top-level? 07:40:48 if that should actually bind `define', then it would be visible for the whole top-level, *including* that definition form 07:41:23 if that should bind `define' only for the rest of file, then "top-level body is a letrec*" breaks 07:48:57 gribozavr: it is kinda of a letrec*, except that definitions and expressions can be mixed, and the definitions expand completely first (or something along those lines). They have better wording in the R6RS. 07:56:30 i'm transforming a top-level body into a letrec*, expressions are transformed into bindings to symbols invisible to user. and i can't get how (define define ...) can fit into the picture. i've read r6rs and that's where i got letrec* idea from, but i could't find anything that could help answer my question 08:25:38 gribozavr: you cant redefine import identifiers 08:26:57 also DEFINE is syntax, so making it a procedure is just looking for trouble :) 08:27:24 so such a construct should be marked as error? not only in top-level, but anywhere? 08:27:56 senft [n=senft@78.52.127.76] has joined #scheme 08:29:22 yes, i know the user is asking for trouble, but an interpreter has react in some way ;) 08:30:02 in a REPL you can redefine it, but not in toplevel or library AFAIK 08:30:08 -!- senft [n=senft@78.52.127.76] has left #scheme 08:30:38 obviously this should not be an error: (let () (define define ...) ... ) 08:31:01 oh my, you are opening my eyes. so i can't treat repl like top-level?.. 08:31:11 well maybe, dunno, it should not be an error, but it might complain 08:31:49 REPL is like an implicit LET from what I can see (like the example above) 08:32:12 but then it splices too 08:32:17 like a BEGIN 08:32:52 so subsequent expressions still have access to previous defintions 08:33:39 this is only R6RS though 08:34:08 i see. would it be too bad if i just disallow binding `define' in top-level? but allow in more deeply nested expressions, where semantics and binding regions are clearly defined in r6rs 08:36:12 for previous verisons things are different 08:36:55 if you expanded code has been alpha renamed, there should be no issues 08:37:06 s/you/your/ 08:37:23 MichaelRaskin [n=MichaelR@213.171.48.239] has joined #scheme 08:38:17 it might be a good idea to read Waddell's thesis 08:45:11 TR2N` [i=email@89.180.140.6] has joined #scheme 08:52:14 ejs [n=eugen@77.222.151.102] has joined #scheme 08:54:08 thehcdreamer [n=thehcdre@94.198.78.26] has joined #scheme 08:54:28 -!- Axioplase is now known as Axioplase_ 08:54:28 -!- ejs [n=eugen@77.222.151.102] has quit [Read error: 54 (Connection reset by peer)] 08:54:43 -!- TR2N [i=email@89-180-185-102.net.novis.pt] has quit [Read error: 110 (Connection timed out)] 08:55:29 -!- crink [n=crink@unaffiliated/crink] has quit ["Leaving."] 08:58:39 schmir [n=schmir@217.86.167.205] has joined #scheme 09:03:15 ejs [n=eugen@63.251.108.100] has joined #scheme 09:06:21 -!- Modius_ [n=Modius@cpe-70-123-130-159.austin.res.rr.com] has quit [Read error: 54 (Connection reset by peer)] 09:06:45 Modius_ [n=Modius@cpe-70-123-130-159.austin.res.rr.com] has joined #scheme 09:07:00 -!- r0bby [n=wakawaka@guifications/user/r0bby] has quit [Read error: 60 (Operation timed out)] 09:07:10 -!- emma [n=emma@unaffiliated/emma] has quit [Read error: 60 (Operation timed out)] 09:07:14 emma [n=emma@unaffiliated/emma] has joined #scheme 09:08:00 r0bby [n=wakawaka@guifications/user/r0bby] has joined #scheme 09:11:23 infinite recursion: http://www.youtube.com/watch?v=L_rw_Rq8bhY 09:11:31 for which the base case is exhaustion, i guess 09:13:34 sysop_fb [n=bleh@72-11-239-10.static-ip.telepacific.net] has joined #scheme 09:14:55 -!- thehcdreamer [n=thehcdre@94.198.78.26] has quit [] 09:15:03 ;-) 09:21:20 Fufie [n=poff@Gatekeeper.vizrt.com] has joined #scheme 09:30:57 -!- sepult [n=levgue@xdsl-87-78-130-207.netcologne.de] has quit [Remote closed the connection] 09:32:53 -!- xwl_ [n=user@esprx01x.nokia.com] has left #scheme 09:32:53 -!- xwl_` [n=user@esprx01x.nokia.com] has quit ["ERC Version 5.3 (IRC client for Emacs)"] 09:33:09 xwl_ [n=user@esprx01x.nokia.com] has joined #scheme 09:36:36 -!- TR2N` is now known as TR2N 09:58:38 clog_ [n=nef@bespin.org] has joined #scheme 10:01:07 a-s [n=user@nat-240.ro.66.com] has joined #scheme 10:04:03 -!- clog [n=nef@bespin.org] has quit [Read error: 145 (Connection timed out)] 10:04:05 -!- clog_ is now known as clog 10:12:11 ejs1 [n=eugen@77.222.151.102] has joined #scheme 10:12:24 -!- ejs [n=eugen@63.251.108.100] has quit [Read error: 145 (Connection timed out)] 10:12:31 -!- ejs1 [n=eugen@77.222.151.102] has quit [Read error: 104 (Connection reset by peer)] 10:12:47 ejs1 [n=eugen@77.222.151.102] has joined #scheme 10:14:52 FatalistaSamoza [n=user@dslb-094-219-070-239.pools.arcor-ip.net] has joined #scheme 10:14:52 -!- ejs1 [n=eugen@77.222.151.102] has quit [Read error: 104 (Connection reset by peer)] 10:15:49 -!- FatalistaSamoza [n=user@dslb-094-219-070-239.pools.arcor-ip.net] has quit [Client Quit] 10:24:11 ejs1 [n=eugen@nat.ironport.com] has joined #scheme 10:37:56 -!- QinGW [n=wangqing@203.86.89.226] has quit [Read error: 110 (Connection timed out)] 10:52:01 attila_lendvai [n=ati@adsl-89-132-1-243.monradsl.monornet.hu] has joined #scheme 10:55:02 i don't get it 10:55:13 so javascript actually has dynamic or lexical scope? 10:55:30 and how does it handle "this" if lexical? :\ 10:57:57 -!- ASau [n=user@host170-230-msk.microtest.ru] has quit ["Running away."] 10:58:32 i'm not sure, all i know that it has closures. this may be magical otherwise due to prototype OO system. 11:02:17 beauty: "this" is one of the most unintuitive aspects of JS, actually :) 11:02:29 it's really hard to understand 11:02:44 If you use the dot notation like foo.bar(), the function is called with "this" set to the last part before the dot that precedes the procedure name 11:02:57 centipedefarmer [n=nothingH@173-25-176-111.client.mchsi.com] has joined #scheme 11:03:19 However, if you store the function in a variable (var x = foo.bar; x()), it loses that binding and is called with this set to the current object (or window; not 100% sure) 11:03:29 what if i use an anonymous function, what's then "this"? 11:03:35 argh 11:03:37 You can also explicitly call a HOF with an object context by using call or apply 11:03:56 i was trying to model the same thing in scheme but is driving me crazy 11:04:01 s/HOF/first-class function object/ maybe 11:04:05 because if i try to set "this" 11:04:10 Why on earth would you want to do the same in Scheme?! 11:04:16 no matter what it will refer to the enclosing scope 11:04:27 i like experimenting! 11:04:32 I see 11:04:59 I think you might be able to model this kind of behaviour using srfi-39 parameter objects 11:05:33 still i see message passing objects more suitable in scheme 11:05:56 If you like prototype object systems, you should take a look at prometheus 11:06:00 I think it's really cool 11:06:19 i like them, i use sheeple in CL sometimes 11:06:31 it's nice and small 11:06:44 works ok when you don't need the full CLOS thing 11:07:51 *beauty* google the prometheus thing 11:10:03 -!- jmcphers [n=jmcphers@218.185.108.156] has quit [Remote closed the connection] 11:12:11 Edico [n=Edico@unaffiliated/edico] has joined #scheme 11:12:59 -!- attila_lendvai is now known as alendvai 11:15:07 -!- mejja [n=user@c-49b6e555.023-82-73746f38.cust.bredbandsbolaget.se] has quit [Remote closed the connection] 11:16:31 -!- alendvai is now known as attila_lendvai 11:17:28 -!- attila_lendvai is now known as alendvai 11:17:59 -!- alendvai is now known as attila_lendvai 11:20:22 -!- ecraven [n=nex@octonex.swe.uni-linz.ac.at] has quit ["brb"] 11:20:22 -!- MichaelRaskin [n=MichaelR@213.171.48.239] has quit [Read error: 104 (Connection reset by peer)] 11:21:00 pookey [n=pookey@symfony/developer/pookey] has joined #scheme 11:23:47 hi all, does anyone have a copy of SICP in a single document? 11:24:55 MichaelRaskin [n=MichaelR@213.171.48.239] has joined #scheme 11:25:01 pookey: antoszka.pl/sicp.pdf 11:25:21 fantastic.. now.. does anyone have a USB cable hey can get to me so I can put it on my ebook reader? ;) 11:26:21 pookey: there's also a texinfo version: http://antoszka.pl/sicp.texi.bz2 11:26:47 PDF is perfect, thanks antoszka 11:26:55 np 11:30:13 masm [n=masm@bl9-113-245.dsl.telepac.pt] has joined #scheme 11:30:39 mario-goulart [n=user@67.205.85.241] has joined #scheme 11:35:08 clog_ [n=nef@bespin.org] has joined #scheme 11:40:49 jgracin [n=jgracin@93-138-228-90.adsl.net.t-com.hr] has joined #scheme 11:44:49 -!- Fufie [n=poff@Gatekeeper.vizrt.com] has quit ["Leaving"] 11:47:31 xwl [n=user@123.115.112.196] has joined #scheme 11:49:47 -!- clog [n=nef@bespin.org] has quit [Read error: 110 (Connection timed out)] 11:49:47 -!- clog_ is now known as clog 11:50:39 Fufie [n=poff@Gatekeeper.vizrt.com] has joined #scheme 12:08:28 -!- MichaelRaskin [n=MichaelR@213.171.48.239] has quit [Remote closed the connection] 12:08:36 ecraven [n=nex@octonex.swe.uni-linz.ac.at] has joined #scheme 12:09:42 MichaelRaskin [n=MichaelR@213.171.48.239] has joined #scheme 12:22:09 Jafet [n=Jafet@unaffiliated/jafet] has joined #scheme 12:22:41 -!- ada2358 [n=ada2358@login-linux.ccs.neu.edu] has quit [Remote closed the connection] 12:22:45 ada2358 [n=ada2358@login-linux.ccs.neu.edu] has joined #scheme 12:27:08 -!- CaptainMorgan [n=CaptainM@c-24-62-183-102.hsd1.ma.comcast.net] has quit [Read error: 110 (Connection timed out)] 12:30:25 -!- Arelius [n=Indy@208.87.217.194] has quit [] 12:32:38 -!- synx [i=synx@gateway/gpg-tor/key-0xA71B0C6A] has quit [Remote closed the connection] 12:33:52 synx [i=synx@gateway/gpg-tor/key-0xA71B0C6A] has joined #scheme 12:37:42 ada2358_ [n=ada2358@login-linux.ccs.neu.edu] has joined #scheme 12:39:55 -!- beauty [n=beauty@83.231.53.201] has quit [] 12:42:48 dzhus [n=sphinx@93-80-237-76.broadband.corbina.ru] has joined #scheme 12:47:03 kuribas [i=kristof@d54C4364C.access.telenet.be] has joined #scheme 12:47:56 -!- ada2358 [n=ada2358@login-linux.ccs.neu.edu] has quit [Read error: 110 (Connection timed out)] 12:52:07 -!- dzhus [n=sphinx@93-80-237-76.broadband.corbina.ru] has quit ["brb"] 12:52:59 dzhus [n=sphinx@93-80-237-76.broadband.corbina.ru] has joined #scheme 12:53:20 luz [n=davids@139.82.89.70] has joined #scheme 12:53:44 splork [n=ben@dsl092-075-228.bos1.dsl.speakeasy.net] has joined #scheme 12:54:09 -!- bzzbzz [n=franco@modemcable240.34-83-70.mc.videotron.ca] has quit ["leaving"] 12:59:19 ejs2 [n=eugen@nat.ironport.com] has joined #scheme 13:02:16 -!- zanes [n=zane@pool-129-44-182-54.bos.east.verizon.net] has quit [] 13:08:03 -!- ejs1 [n=eugen@nat.ironport.com] has quit [Read error: 110 (Connection timed out)] 13:15:41 -!- leppie|work [i=52d2e3c8@gateway/web/freenode/x-crgnemypyjktoqqy] has quit ["Page closed"] 13:15:47 -!- MichaelRaskin [n=MichaelR@213.171.48.239] has quit [Read error: 110 (Connection timed out)] 13:20:15 leppie|work [i=52d2e3c8@gateway/web/freenode/x-ntyfqmkednxqzmin] has joined #scheme 13:22:18 -!- splork [n=ben@dsl092-075-228.bos1.dsl.speakeasy.net] has quit ["Computer has gone to sleep"] 13:24:48 -!- leppie|work [i=52d2e3c8@gateway/web/freenode/x-ntyfqmkednxqzmin] has quit [Ping timeout: 180 seconds] 13:25:11 -!- antoszka [n=antoszka@unaffiliated/antoszka] has quit ["+++ killed by SIGSEGV +++"] 13:26:01 samth [n=samth@c-76-24-220-74.hsd1.ma.comcast.net] has joined #scheme 13:32:51 antoszka [n=antoszka@unaffiliated/antoszka] has joined #scheme 13:35:07 -!- xwl [n=user@123.115.112.196] has quit [Remote closed the connection] 13:40:02 davazp [n=user@156.Red-79-153-148.dynamicIP.rima-tde.net] has joined #scheme 13:40:07 -!- kniu [n=kniu@ELMUNDO.RES.CMU.EDU] has quit [Read error: 110 (Connection timed out)] 13:56:14 -!- dzhus is now known as dzhus[afk] 14:08:20 -!- Jafet [n=Jafet@unaffiliated/jafet] has quit ["Leaving."] 14:09:04 clog_ [n=nef@bespin.org] has joined #scheme 14:09:16 Jafet [n=Jafet@unaffiliated/jafet] has joined #scheme 14:10:06 annodomini [n=lambda@c-75-69-96-104.hsd1.nh.comcast.net] has joined #scheme 14:21:13 -!- dzhus[afk] is now known as dzhus 14:22:11 -!- clog [n=nef@bespin.org] has quit [Read error: 110 (Connection timed out)] 14:22:11 -!- clog_ is now known as clog 14:22:29 Adamant [n=Adamant@unaffiliated/adamant] has joined #scheme 14:23:22 -!- samth [n=samth@c-76-24-220-74.hsd1.ma.comcast.net] has quit [Read error: 110 (Connection timed out)] 14:23:58 rudybot, eval (assoc 'a '((a b) (a c))) 14:23:59 Edico: your sandbox is ready 14:23:59 Edico: ; Value: (a b) 14:24:23 *Adamant* slaps rudybot upside the haid 14:24:51 albacker [n=eni@unaffiliated/enyx] has joined #scheme 14:25:13 rudybot, eval (assoc '((a b) (b a) (a c) (ax))) 14:25:14 Edico: error: assoc: expects 2 arguments, given 1: ((a b) (b a) (a c) (ax)) 14:25:23 rudybot, eval (assoc 'a '((a b) (b a) (a c) (ax))) 14:25:24 Edico: ; Value: (a b) 14:28:27 metasyntax [n=taylor@75.149.208.121] has joined #scheme 14:29:21 rudybot, eval (assoc 'a '((b a) (a b))) 14:29:23 Edico: ; Value: (a b) 14:30:40 rudybot, eval (log (expt 2 1000000)) 14:30:41 Jafet: your sandbox is ready 14:30:42 Jafet: ; Value: 693147.1805599453 14:30:57 -!- annodomini [n=lambda@wikipedia/lambda] has quit [] 14:32:31 -!- ejs2 [n=eugen@nat.ironport.com] has quit [Read error: 110 (Connection timed out)] 14:33:09 What implementation does rudybot use? 14:35:00 rudybot, eval (version) 14:35:01 Edico: ; Value: "4.2.2" 14:35:45 -!- Adamant [n=Adamant@unaffiliated/adamant] has quit [] 14:35:56 it says just the version 14:36:10 tobetchi [n=tobetchi@p296ba7.sagant01.ap.so-net.ne.jp] has joined #scheme 14:36:10 -!- dzhus is now known as dzhus[afk] 14:36:31 -!- dzhus[afk] is now known as dzhus 14:37:25 plt 14:37:57 -!- Jafet [n=Jafet@unaffiliated/jafet] has quit ["Leaving."] 14:38:05 Jafet [n=Jafet@unaffiliated/jafet] has joined #scheme 14:42:38 -!- samth_away is now known as samth 14:44:36 thehcdreamer [n=thehcdre@94.198.78.26] has joined #scheme 14:51:50 rudybot: source 14:51:51 bpalmer: http://github.com/offby1/rudybot/commit/0e140ff88b179821a61c48eae55d719097538808 14:57:03 -!- jay-mccarthy [n=jay@lallab.cs.byu.edu] has quit [] 15:06:31 ASau [n=user@83.69.227.32] has joined #scheme 15:07:30 rudybot, eval (lambda (x) (+ x 1)) 15:07:32 Edico: ; Value: # 15:08:28 -!- Jafet [n=Jafet@unaffiliated/jafet] has quit ["Leaving."] 15:08:59 Jafet [n=Jafet@unaffiliated/jafet] has joined #scheme 15:10:46 annodomini [n=lambda@130.189.179.215] has joined #scheme 15:10:58 -!- dzhus is now known as dzhus[afk] 15:13:58 -!- thehcdreamer [n=thehcdre@94.198.78.26] has quit [] 15:15:10 zanes [n=zane@pool-72-85-214-63.bstnma.east.verizon.net] has joined #scheme 15:16:55 -!- zanes [n=zane@pool-72-85-214-63.bstnma.east.verizon.net] has quit [Client Quit] 15:22:39 jlongster [n=user@75-148-111-133-Chattanooga.hfc.comcastbusiness.net] has joined #scheme 15:30:21 Emw_ [n=chatzill@c-98-216-208-140.hsd1.ma.comcast.net] has joined #scheme 15:30:38 reprore_ [n=reprore@ntkngw598092.kngw.nt.ftth.ppp.infoweb.ne.jp] has joined #scheme 15:37:20 annodomini_ [n=lambda@130.189.179.215] has joined #scheme 15:37:33 -!- dzhus[afk] is now known as dzhus 15:43:10 -!- Jafet [n=Jafet@unaffiliated/jafet] has quit [Read error: 110 (Connection timed out)] 15:44:17 -!- annodomini [n=lambda@wikipedia/lambda] has quit [Read error: 110 (Connection timed out)] 15:45:13 mabes [n=mabes@66.236.74.194] has joined #scheme 15:45:48 xwl [n=user@123.115.112.196] has joined #scheme 15:47:58 annodomini [n=lambda@130.189.179.215] has joined #scheme 15:48:35 C-Keen [i=ckeen@pestilenz.org] has joined #scheme 15:52:27 -!- jgracin [n=jgracin@93-138-228-90.adsl.net.t-com.hr] has quit ["Leaving"] 15:52:37 nowhere_man [n=pierre@lec67-4-82-235-57-28.fbx.proxad.net] has joined #scheme 15:54:29 -!- annodomini_ [n=lambda@wikipedia/lambda] has quit [Read error: 110 (Connection timed out)] 15:56:16 bzzbzz [n=franco@207.236.146.245] has joined #scheme 15:56:32 -!- dzhus is now known as dzhus[afk] 15:57:09 -!- dzhus[afk] is now known as dzhus 15:58:36 annodomini_ [n=lambda@130.189.179.215] has joined #scheme 16:00:40 how would i cast an int to a string in scheme? 16:01:46 NUMBER->STRING 16:01:48 e.g.: 16:01:55 > (number->string (+ 1 2)) 16:02:00 hm 16:02:05 rudybot: eval (number->string (+ 1 2)) 16:02:07 Elly: your sandbox is ready 16:02:07 Elly: ; Value: "3" 16:02:09 there we go 16:02:19 thanks! 16:04:29 -!- annodomini [n=lambda@wikipedia/lambda] has quit [Read error: 110 (Connection timed out)] 16:05:00 Fare [n=Fare@guest-fw.dc4.itasoftware.com] has joined #scheme 16:06:02 -!- nowherman [n=pierre@lec67-4-82-235-57-28.fbx.proxad.net] has quit [Read error: 113 (No route to host)] 16:07:45 -!- dzhus is now known as dzhus[afk] 16:09:14 annodomini [n=lambda@130.189.179.215] has joined #scheme 16:12:03 -!- ski_ [n=md9slj@remote1.student.chalmers.se] has quit ["Lost terminal"] 16:16:24 -!- annodomini_ [n=lambda@wikipedia/lambda] has quit [Read error: 110 (Connection timed out)] 16:16:58 -!- hosh [n=hosh@c-71-199-176-82.hsd1.ga.comcast.net] has quit ["Leaving"] 16:17:17 hosh [n=hosh@c-71-199-176-82.hsd1.ga.comcast.net] has joined #scheme 16:18:25 -!- rdd` [n=rdd@c83-250-145-223.bredband.comhem.se] has quit [Remote closed the connection] 16:19:53 annodomini_ [n=lambda@130.189.179.215] has joined #scheme 16:24:34 -!- foof [n=user@FLH1Ahu226.osk.mesh.ad.jp] has quit [Read error: 110 (Connection timed out)] 16:25:41 -!- dzhus[afk] is now known as dzhus 16:27:01 -!- annodomini [n=lambda@wikipedia/lambda] has quit [Read error: 110 (Connection timed out)] 16:28:35 Modius__ [n=Modius@cpe-70-123-130-159.austin.res.rr.com] has joined #scheme 16:30:31 annodomini [n=lambda@130.189.179.215] has joined #scheme 16:31:32 how would i determine the type of a variable? 16:32:07 e.g., something like python's typeof(x) 16:32:21 -!- Emw_ is now known as Emw 16:35:41 -!- dzhus is now known as dzhus[afk] 16:36:03 Scheme does not have a first-class notion of type as a unique function of any object. 16:36:06 rdd [n=user@c83-250-145-223.bredband.comhem.se] has joined #scheme 16:36:10 What do you want to do with this information? 16:36:14 kniu [n=kniu@CMU-284828.WV.CC.CMU.EDU] has joined #scheme 16:37:20 -!- annodomini_ [n=lambda@wikipedia/lambda] has quit [Read error: 110 (Connection timed out)] 16:41:09 annodomini_ [n=lambda@130.189.179.215] has joined #scheme 16:41:23 -!- kniu [n=kniu@CMU-284828.WV.CC.CMU.EDU] has quit [Read error: 60 (Operation timed out)] 16:42:54 I could imagine a lowlevel "primop" like (%%type-of x) => some-record being pretty useful for implementing low level stuff like "~a~s" style formatting and the like. 16:43:53 The easy way to implement ~A is to use DISPLAY. The easy way to implement ~S is to use WRITE. 16:44:39 Riastradh: not to belabor the obvious, but then you have implement DISPLAY and WRITE somehow, right? 16:44:54 Yes, but FORMAT is a red herring. 16:45:36 In any case, what does your %%TYPE-OF primitive grant that a collection of tests with type predicates does not? 16:45:43 Riastradh: OK, I'll admit fully that you do always pick better examples and more precise language than I do :-) (really) 16:45:48 -!- Modius_ [n=Modius@cpe-70-123-130-159.austin.res.rr.com] has quit [Connection timed out] 16:46:39 -!- offby1 [n=user@pdpc/supporter/monthlybyte/offby1] has quit [Read error: 60 (Operation timed out)] 16:47:01 Well, as from an implementation view, all I can say is "blech." I'm the sort who got all hot and bothered when I read IBM's paper on how to determine subclass status in like 6 machine instructions :-) 16:47:21 offby1 [n=user@q-static-138-125.avvanta.com] has joined #scheme 16:47:46 You haven't said anything about what one can do with what %%TYPE-OF returns. 16:48:04 -!- annodomini [n=lambda@wikipedia/lambda] has quit [Read error: 110 (Connection timed out)] 16:48:45 -!- rudybot [n=luser@q-static-138-125.avvanta.com] has quit [Read error: 60 (Operation timed out)] 16:49:15 rudybot [n=luser@q-static-138-125.avvanta.com] has joined #scheme 16:49:42 More generally, I think I'm not unique in have 2 probably (at least possibly) contradictory views of Scheme: (1) Something like (just like) r6rs rationalizes certain things, makes things declarations vs. procedures (think of module loading in some older or maybe even current schemes). This "direction" for scheme makes programs more understandable, hopefully speedier, many more portable, etc. 16:49:43 typeof is either not sufficently general, or violates data abstractions 16:50:23 samth: because (typeof 1) -> 'number instead of 'int or something? 16:50:25 So far, all I can imagine assuming about what it returns is that it is at least referentially transparent, and it probably returns the same object for any two arguments satisfying a common disjoint type predicate. 16:50:34 But I'm not sure about the latter. 16:51:00 The latter would not match with, say, Common Lisp's TYPEOF. 16:51:11 Summermute, no, because (typeof value-whose-representation-you-do-not-know) returns either something useless, or something that tells you information you shouldn't have 16:51:39 TYPE-OF, even. 16:51:46 annodomini [n=lambda@130.189.179.215] has joined #scheme 16:51:51 Ah, that brings me to "the other vision of Scheme" 16:52:35 -!- charleyb [n=charleyb@c-67-162-157-218.hsd1.co.comcast.net] has quit [Remote closed the connection] 16:53:05 jimrees [n=jimrees@ita4fw1.itasoftware.com] has joined #scheme 16:54:07 but see also this discussion: http://list.cs.brown.edu/pipermail/plt-scheme/2009-November/thread.html#36620 16:54:09 -rudybot:#scheme- http://tinyurl.com/yhrm3w6 16:54:12 The other, maybe more popular, is that a small lang like Scheme should kind of be like an older Forth is more or less explicitly - exposing all of the guts of the language it possible can. From this point of view, a Scheme process running on my machine is my personal playground and it should NOT hide from me anything to which the implementation itself has access (with VERY few exceptions). Prior to Scheme, think of Lisp's reader just for a whacky languag 16:54:33 cut off at 'for a whacky langua' 16:55:27 Sorry "From this point of view, a Scheme process running on my machine is my personal playground and it should NOT hide from me anything to which the implementation itself has access (with VERY few exceptions). Prior to Scheme, think of Lisp's reader just for a whacky language feature example." Is that good? 16:55:58 jay-mccarthy [n=jay@lallab.cs.byu.edu] has joined #scheme 16:56:35 facsimile [n=v@unaffiliated/fax] has joined #scheme 16:56:37 Does that imply, Summermute, that the definition of the language Scheme should include specification of all information conceivably inspectable (with very few exceptions) from your favourite Scheme system on your favourite operating system on your favourite machine architecture? 16:56:50 there's a really big difference between a customizable reader, and exposing the guts of the implemetation 16:57:20 It's like an open question the everyone debates from time to time (probably always somewhere in the world) - should "Scheme" be like a Forth or like a "Pascal" ???? (Just to avoid religious feelings about "C") 16:57:21 Or, if not that, does it imply that the definition of Scheme should include abstractions covering all that possible information? 16:57:37 Quite frankly, I don't think anyone thinks that Scheme should be like Forth or Pascal. 16:58:53 -!- xwl [n=user@123.115.112.196] has quit [Read error: 110 (Connection timed out)] 16:59:25 -!- annodomini_ [n=lambda@wikipedia/lambda] has quit [Read error: 110 (Connection timed out)] 16:59:29 kniu [n=kniu@CMU-311358.WV.CC.CMU.EDU] has joined #scheme 16:59:45 Riastradh: again, just not so great but hopefully illustrative examples of two extremes. Using these two examples, I think it's pretty clear that Scheme has been inching toward the "Pascal" side of the border for quite some time now - which is NOT a bad thing, IMHO. 17:00:30 I don't understand what you mean. Please identify the properties of Pascal that you are referring to, and not the ones that you are not referring to. For example, Scheme's vectors are not statically fixed in size. 17:00:52 samth: I think alot of users of other languages, X, would consider a customizable reader very much part of "the guts of the application." I don't think that that's so controversial a view. 17:01:04 jonrafkind [n=jon@crystalis.cs.utah.edu] has joined #scheme 17:01:42 Summermute, that's nice for those other people, but I prefer to identify actual abstraction boundaries, which the reader is not 17:02:00 samth: ??? 17:02:03 -!- synx [i=synx@gateway/gpg-tor/key-0xA71B0C6A] has quit [Remote closed the connection] 17:02:09 the reader is the ultimate in non-semantics 17:02:24 annodomini_ [n=lambda@130.189.179.215] has joined #scheme 17:02:26 for example, in PLT, you can change the reader arbitrarily 17:02:55 but that gives you *ZERO* additional ability to violate my abstractions, see the internals of the system, make my reader behave differently, or anything else of that nature 17:03:30 Riastradh: I'm just making a the stupid distinction between a langauge "spec" like Forth which is nearly all procedural (nearly an implementation is the "spec") and a langauge "spec" like Pascal which is basically all declarative and reasonably close (BY COMPARISON) to implementation agnostic. That's all. 17:03:43 What are you folks calling `the reader', by the way? The parameter representing a procedure to read code or data, or the collection of utilities, particularly involving objects usually called read tables, by whose combination most Lisp code is read? 17:04:25 Riastradh: I was just thinking of the read tables and associated machinery of CL. 17:04:29 synx [i=synx@gateway/gpg-tor/key-0xA71B0C6A] has joined #scheme 17:04:41 david00 [n=david@78-86-185-234.zone2.bethere.co.uk] has joined #scheme 17:05:19 hi all 17:05:59 samth: About which I'm still trying to grok "the ultimate in non-semantics" comment :-) 17:06:19 Riastradh, i'm referring to the parameter, which in PLT can be controlled by some things that go under the name read tables 17:06:30 does that make sense 17:06:35 > 17:06:36 ? 17:06:41 $ 17:06:44 * 17:06:52 ...er, to whom were you addressing `does that make sense?', samth? 17:06:59 to you, Riastradh 17:07:04 Yes, that makes sense. 17:07:21 I was just wondering whether you and Summermute were discussing different things by the same name -- which apparently you are. 17:07:31 Some half-formed code: http://paste.lisp.org/display/90505 17:07:34 Summermute, the lexical syntax of the language has approximately nothing to do with its semantics 17:07:44 This is the start of a parser for a multi-line format 17:08:02 Basically I want the named let to start accumulating lines when it recognizes the regexp 17:08:04 samth very odd thing to say 17:08:17 Riastradh, it's possible in CL to change the reader for the 'rest' of a file/session, but that's possible in PLT as well 17:08:18 What if we take something like CL or, if you like, Swindle's MOP? That's giving me access to some guts that I think might be hard to argue are separated from "the semantics of the language". 17:08:21 Then stop at another occurrence of the regexp, and return that as a list 17:08:37 so the eventual output of the parser will be a list of lists of lines 17:08:52 david don't use regexes 17:09:06 Summermute, I think the reference to Swindle demonstrates that it isn't giving you that access at all - Swindle is implemented entirely in macros 17:09:10 -!- annodomini [n=lambda@wikipedia/lambda] has quit [Connection timed out] 17:09:33 Swindle's interface happens to expose lots of knobs to turn for method dispatch 17:09:40 The only way I can think is to create a procedure ACCUMULATE-LINES which will loop over the lines again, and return a list of lines and the remainder of the lines that haven't yet been parsed 17:09:47 However this multiple value return seems a bit hacky 17:09:58 I've had to do this before so I know the above approach will work 17:09:58 facsimile, what would lexical syntax have to do with semantics? 17:10:05 samth: Yes, I understand agree re: status of lexical syntax, but would still argue that 99% (FWIW) of programming geeks would still consider CL read table machinery access to part of the "guts" of the language. 17:10:25 But it seem sthere must be a better way than basically coding that loop twice: once for the main driver loop and once for the accumualtor 17:10:25 -!- dzhus[afk] is now known as dzhus 17:10:35 samth, well what do you think the semantics is defined by recursion on? 17:10:43 facsimile: why not use regexes? 17:10:48 facsimile, the abstract syntax 17:11:00 david, it is worse than anything else you could do 17:11:16 facsimile: also easier 17:11:26 david00: multi-value-return rocks. language has it, so might as well use it while you can :-) 17:11:26 oh right, you're finding it very easy are you? 17:11:46 facsimile: the regex isn't giving me any trouble 17:11:47 -!- davazp [n=user@156.Red-79-153-148.dynamicIP.rima-tde.net] has quit [Read error: 104 (Connection reset by peer)] 17:11:52 facsimile: the logic of the loop is 17:12:19 -!- bpalmer [n=user@unaffiliated/bpalmer] has left #scheme 17:12:34 david00, have a local procedure that takes another argument, which tells you if you've seen the marker before 17:12:37 Summermute, access to the reader is a form of metalinguistic abstraction. It is useful for programs that reason about the syntax and semantics of other programs -- not an exposure of details of the implementation on which such meta-programs run. 17:12:38 Summermute: fair enough. just seems ripe for a better pattern for me 17:13:02 annodomini [n=lambda@130.189.179.215] has joined #scheme 17:13:41 samth: hmmm, that procedure would mutate a binding? Or do it functionally somehow? 17:13:47 samth: just curious about another example that i'd put somewhere between Forth's nearly fully "reflective" abilities and Scheme's current definition - what about Smalltalk? Lots of guts exposed there in a high level language (stack frames are class, IIRC). 17:14:15 david00, do it functionally 17:16:00 samth: any hint on how? wracking my brain here but said brain's not working :| 17:16:09 one sec 17:16:10 (racking?) ;) 17:16:44 i just annotated your paste with somethign that should give you an idea 17:17:00 Summermute, Smalltalk is very reflective 17:17:09 Also, re: MOPs, something that let's me use the language itself ("reflectively" as it were) to change the method selection logic itself is reasonably 'guts' exposing, whether implemented in macros or not, hmmmm? 17:17:12 samth: thanks :) will ponder it 17:17:37 Summermute, it all depends on what the abstraction that the language is maintaining is 17:17:51 in Swindle, you can easily define abstractions that other people can't violate 17:18:03 ahh 17:19:07 samth: amazing! Thank you 17:19:28 -!- annodomini_ [n=lambda@wikipedia/lambda] has quit [Read error: 110 (Connection timed out)] 17:21:30 samth: I think it's more broadly what invariants the language is maintaining, vs. exposing for alteration "reflectively," meaning just via native language features in the basic language definition (or derivations via functions and any other permitted abstractions, etc.). 17:23:25 Again, ~20 years ago I implemented the CL package system and it's basically some minimally intricately related hash tables that the user can totally *reak havoc* on should he/she choose to do so. 17:25:03 Compare that sort of "procedural" access to PLT's or the r6rs module system. Nearly two totally different sides of one coin, as it were . 17:26:44 samth: read "... procedural access to the namespace mechanism to PLT's....." 17:27:32 you implemented the CL package system? I hate you. 17:28:16 ??? Unlike other parts of CL, I don't recall that part being particularly fun :-) 17:28:51 -!- dzhus [n=sphinx@93-80-237-76.broadband.corbina.ru] has quit [Remote closed the connection] 17:30:41 -!- annodomini [n=lambda@wikipedia/lambda] has quit [Read error: 110 (Connection timed out)] 17:31:03 But yeah, for weird personal historical reasons, I took a 33Mz 486 box with Winzdoze 3.0, the full Borland C++ (with the asm), the old gray paperback copy of Guy Steele's CLtL2, a few boxes of other books mostly relating ot GC and other runtime system issues (like Peter Lee's collection of essays on "advanced" language implementation). 17:32:08 I packed up all this crap, shipped it to Kiev Ukraine, got on the primitive RELCOM phone based 'Net access system, put me feet up on a desk and basically wrote a CL (minus CLOS) 24 hours per day. 17:33:55 With the minimal guidance available, and thus all the wrong turns I made along the way, if nothing, else, I learned A WHOLE LOT :-) 17:34:13 -!- david00 [n=david@78-86-185-234.zone2.bethere.co.uk] has quit [Remote closed the connection] 17:35:42 Summermute, crazy, but nice. 17:35:46 It was *just* post Soviet Union so everyone had the *same jobs* - so getting technology, modems, and even boxes of books into the country took a veritable ARMY of secretarties and assistants who knew "the system" well. 17:37:45 I can still remember sitting on the airport tarmac at sunset opening boxes of books and flipping through the pages (all in English, duh) with uniformed guards looking over my shoulder for propaganda hidden in my copy of SICP :-) It *REALLY WAS CRAZY* now that I think of it all together as a piece. 17:40:50 Fare: Last comment, promise. But if not for those crazy days, I'm nearly positive I'd be typing C# or even VB into Visual Studio in some gray cubicle. And instead, I'm happily banging on Emacs, PLT, SLIME, recently CCL and diving into the fasm assembler. So sometime crazy can be good!!!! ;-) 17:41:43 Summermute, it's still not clear to me what you want `typeof' to do, or even what your larger views on Scheme are 17:41:52 fasm? 17:42:49 its just an assembler - Linux/Windoze/no mac unfortunately, but everyone seems to adore it vs. the otherwise very popular nasm. 17:45:44 samth: one short summary is that if the scheme implementation takes acccess to a routine akin to %%typeof x to do something, if only to print #, then maybe that scheme's *users* should have access to the same "primop" routine. Heck we, have the nearly ultimate, call/cc "reflective" control primitive at our disposal - let's open up the rest of the implementation to user frobbing as much as possible. 17:46:05 I present that as "one view," not necessarily *my* view. 17:46:14 That's quite a leap. 17:47:06 Nietzsche thought that intellectual 'leaping' from mountain peak-to-peak was the way to go :-) 17:50:17 cipher [i=weinsd0@monica.cs.rpi.edu] has joined #scheme 17:50:28 samth: While I have an ongoing fascination with flexible, highly "reflective" languages (probably just my weird interest in runtime systems), I actually prefer a scheme *much* more on the "r6rs" side of things. 17:51:21 Summermute, it's a big mistake to conflate 'flexibility', 'reflectiveness', and 'ability to violate other peoples abstractions' 17:52:11 see http://www.ccs.neu.edu/scheme/pubs/scheme2007-ctf.pdf for an example of lots of 'flexibility' from a system you might describe as on 'r6rs' end 17:53:02 After all, in my earliest days I grew up tutored by the "stern nun" known as Pascal, and even got paid to program in Pascal for a few years. It's arguable that nearly every line of C,C++,awk,bash,csh,Lisp,Scheme,Python,etc. I've written over the years is kind of "Pascal in drag" :-) 17:53:40 ew 17:54:21 samth: I do love fine distinctions, so I'll take a look at the .pdf (I'm queuing up quite a list though) and reflect on my mistaken conflation. 17:54:47 Elly: ew on Pascal, "drag" or both ;-) 17:55:13 both! 17:56:17 After Pascal, C was a real "eye opener" and i did end up doing more casting of ints and pointer arithmetic than probably most C programmers on the planet. 17:58:04 MichaelRaskin [n=MichaelR@195.91.224.225] has joined #scheme 17:58:09 -!- synx [i=synx@gateway/gpg-tor/key-0xA71B0C6A] has quit ["Leaving."] 17:59:15 Elly: But Pascal is actually a lovely language for teaching *DISCIPLINE*. Everything has a place; stylistically everything has its appropriate comment, everything is declared prior to use, everything has it's proper inviolable scope, and it even has upward funargs (limited closures). Having employed a good number of mostly Java programmers, I think most of them would have greatly benefited from a year or two with Pascal - really! 17:59:59 so you're basically boxing your students' minds in 18:00:23 Summermute, it's easy to teach discipline in Scheme 18:01:06 And at least in the old lightspeed Pascal on the mac and Turbo Pascal on the PC, you could do *any* bit twiddling, pointer arithmetic, inline asm and what not that any C compiler could/can do. 18:02:55 samth: I have a few thouhts. SICP is just "one of those books" in my mind. It's good enough to be just some weird historical accident :-) It teaches a kind of programming structure that I can't think of in any other pedagogical work (not that I'm current on such stuff). 18:03:06 But my other though is - TYPES. 18:03:13 karme [n=user@kallisto.karme.de] has joined #scheme 18:04:06 -!- luz [n=davids@139.82.89.70] has quit ["Client exiting"] 18:04:17 I think in the end, I'm mostly a manifest-typed-language kind of guy - yea, even though I'm banging on PLT (but recall, frobbing typed-scheme alot). 18:04:22 No, Pascal does not have upward funargs. 18:04:57 Summermute, HTDP teaches plenty of discipline 18:06:48 Riastradh: I'm sure you caught me in anothet terminological error again. But functions can be scoped inside other functions and passed to other functions, just not assigned or returned, so args stay on the stack and are accessed runtime-system wise by "a display" (where that term comes from, I don't know). So Pascal does support this (rather) limited form of closures, whatever it's properly called. 18:07:05 Pascal has downward funargs. 18:08:34 Really? If you're not kidding, my first thought is - off just by one word! Wow, my mind isn't slipping as fast as I thought it was ;-) 18:08:55 -!- Fare [n=Fare@guest-fw.dc4.itasoftware.com] has quit [Read error: 110 (Connection timed out)] 18:10:11 BTW, where does the "up/down" distinction come from - lexical code "down" the page, traditional stack "downward" growth? 18:10:45 samth: I have absolutely no exposure to HTDP. What should I know? 18:11:16 Fare [n=Fare@guest-fw.dc4.itasoftware.com] has joined #scheme 18:11:24 Summermute, that it teaches intro programming in a very disciplined manner, it uses scheme, it's available free from www.htdp.org 18:11:45 Nshag [i=user@Mix-Nantes-117-3-40.w193-250.abo.wanadoo.fr] has joined #scheme 18:12:03 Ah 18:12:53 davazp [n=user@156.Red-79-153-148.dynamicIP.rima-tde.net] has joined #scheme 18:16:48 I'm kind of in a different mode - nuances of generics and "self" types, type system "oddities" like typing leaf procedures and routines that do/don't allocate memory, trying to *really* speed up cool language features like structural subtyping, finding structural type substitutions for normally nominally typed constructs, seeking concurrency abstractions that aren't just (1) threads/mutexes or (2) asynch messaging ---- and a whole load of crap about that 18:18:08 -!- jlongster [n=user@75-148-111-133-Chattanooga.hfc.comcastbusiness.net] has quit [Remote closed the connection] 18:18:21 But I'll definitely put HTDP on my list of stuff to read when in my "I'm gonna stop everythign and read a cool intro book and gain some new basic perspective" mode. 18:23:08 The next scheme standard should eliminate all the implicit (begins) in the special forms. Shouldn't imperative code be explicitly flag in a primarily functional language? 18:23:29 do you mean eliminate all internal defintions? 18:24:05 mmc [n=mima@cs27122078.pp.htv.fi] has joined #scheme 18:24:11 samth: actually, that's a different issue, but hell yes, get rid of internal definitions. 18:24:24 Summermute, i'm not saying that you should re-learn scheme, but that discipline and scheme can go hand in hand 18:24:31 also, internal defintions are great 18:24:54 were you just thinking of the implicit begin in `cond', for example? 18:25:22 I'm talking about implicit (begin e1 e2 e3 ...) in constructs like (cond ((istrue?) (do-this)(do-that)(do-something-else)) ((how-about-this?) ...... 18:25:33 ah, ok 18:25:38 Scheme special forms are full of them just doing a quick survey in my head. 18:25:49 i don't think that's really true 18:26:07 but Scheme isn't Haskell, and shouldn't try to be 18:26:35 samth: what's wrong with being a (let (let* and (letrec* man instead of locally scoped (defines) ???? 18:26:39 Summermute you can think of BEGIN as ((LAMBDA () ...)) 18:27:14 No, i think LAMBDA should only take *ONE* expression too. 18:27:15 Not if LAMBDA rejects sequences of commands, facsimile. 18:27:28 Riastradh: exactly. 18:27:30 (which is the hypothesis that Summermute is discussing) 18:27:36 Summermute, (1) macros (2) rightward drift (3) convenience 18:28:00 It's really not that (a) radical or (b) stupid idea. 18:28:09 you can easily translate multi statement lambda into one statement lambdas 18:29:22 My currrent language support's ML's (e1;e2;e3) syntax also borrowing CL's convenient begin0() and begin1() constructs. So essential no keyword is just an implicit progn in CL terms. 18:30:21 minion: thwap to Summermute 18:30:21 Summermute: please see thwap: THWAP! http://www.angryflower.com/bobsqu.gif and http://www.angryflower.com/itsits.gif (see also: http://www.unmutual.info/misc/sb_itsits.mp3 ) 18:30:41 But otherwise, my lang has ONE OTHER WAY to "sequence" statements, and that's in arguent lists / constructors. [a, b + 3, c - 4] That kind of thing and of course funcall. 18:35:15 Ok, after that odd grammatical drug interlude, aren't ML's and CL's ok? What have I missed (I do recognized I'm a terrible speller/grammarian) 18:35:33 what does that question mean? 18:36:29 I was directed to a cartoon (totally 70's cool style) all about the correct use of apostrophes. Go figure. Life is stranger than fiction :-) 18:39:27 `support's' 18:39:28 Riastradh minion: In that post I was refering CL "posessing" its own progn special form, hence "CL's progn, prog1" and so on. Isn't that ok grammatically? Thanks for the toons, in any case. 18:40:05 Ah, I see it. You got me. Sorry!!!! 18:41:15 But back to the matter at hand - why *should* scheme support all these nasty (for the sake of argument) implicit (begin) constructs its special forms, yes, especially including lambda???? 18:41:43 Because they are convenient for expressing ideas that are commonly expressed in Scheme programs. 18:42:14 Even Scala has an foo(a:Int):Int = a + 1 construct that elides the {} unless they are *needed* for a (block) side-effecting chunk of code. 18:44:13 ML was one blow; Haskell is a type-system ecstasy rave; but hey, with something mainstream like Scala, by comparison we don't want to lose Scheme's "functional language" status, do we? ;-) 18:45:54 -!- karme [n=user@kallisto.karme.de] has left #scheme 18:46:28 i'm buiding a toy scheme just to learn the fasm assembler and the tool chain - I think I'll make all (begin....)'s explicit. 18:49:01 I'll speculate that decades later, if Sussman and Steele (if I got that right) could do it all over again, they'd make all (begin) sequencing explicit in Scheme special forms - it just makes too much sense design wise. 18:50:06 Maybe in r7rs? A man can dream :-) 18:51:27 Summermute it seems arbitrary to me, what's your justification for it? 18:51:29 It makes no sense designwise. There is no need to introduce a new nesting level in any of the contexts that have an `implicit BEGIN'. 18:53:10 The current state of affairs is an arbitrary mixing of special forms, specifically one that generally screams *side effects here.* So separating (begin) in 'mostly functional' language makes very good sense "design wise." 18:54:02 Scheme is not a `mostly functional' language. Rather, most Scheme programs are mostly functional. Moreover, none of the special forms screams anything about side effects, not even BEGIN. 18:56:03 choas [n=lars@p5B0DE5DC.dip.t-dialin.net] has joined #scheme 18:58:34 mrsolo [n=mrsolo@nat/yahoo/x-fqwbbcpfbqkxsdtb] has joined #scheme 18:58:50 Riastradh: reading my mind in part. One might give (begin (print x)(print y) (+ x y)) the same "status" as something like (map (lambda (x) (apply + x)) (zip '(1 2 3) '(2 3 4))), but in my mind when I think of Scheme I think of constructs more like the latter than the former (sorry in advance for any syntax/logic errors in the code examples). 19:00:40 So, yes, now that I think of it, I guess in my mind, I do think of Scheme as a "mostly functional language" and not just an arbitrary tool that might be used to write "mostly functional programs." Scheme as a tool, thus as designed, has special status among other tools. 19:04:03 langmartin [n=user@exeuntcha.tva.gov] has joined #scheme 19:08:54 jcowan [n=jcowan@72.14.228.129] has joined #scheme 19:16:17 kilimanjaro [n=kilimanj@cpe-173-172-99-25.austin.res.rr.com] has joined #scheme 19:19:27 jlongster [n=user@75-148-111-133-Chattanooga.hfc.comcastbusiness.net] has joined #scheme 19:21:46 -!- tobetchi [n=tobetchi@p296ba7.sagant01.ap.so-net.ne.jp] has quit [Remote closed the connection] 19:23:20 -!- jlongster [n=user@75-148-111-133-Chattanooga.hfc.comcastbusiness.net] has quit [Remote closed the connection] 19:28:00 Summermute, if you look at Fortress (Guy Steele's current language) you'll see that he hasn't gone in the direction of requiring more explicitness about that sort of thing 19:28:08 jlongster [n=user@75-148-111-133-Chattanooga.hfc.comcastbusiness.net] has joined #scheme 19:31:10 -!- saccade_ [n=saccade@209-6-54-113.c3-0.smr-ubr1.sbo-smr.ma.cable.rcn.com] has quit ["This computer has gone to sleep"] 19:32:16 wingo [n=wingo@217.Red-88-17-207.dynamicIP.rima-tde.net] has joined #scheme 19:42:23 -!- zeroish [n=zeroish@135.207.174.50] has quit [Remote closed the connection] 19:45:43 Damnit. Theft of focus should be a felony. 19:46:02 heh 19:46:15 Indeed, indeed. Nothing like typing into a dialog box only to have focus preempted by some other dialog box *just before* you hit Enter. 19:46:40 I think Mac OS X's Software Update dialogue box just popped up, but I can't be sure because I was typing an email message and hit RET just as the screen flickered and some imperceptibly ephemeral dialogue box stole my keyboard input. 19:47:35 I curse GMail the most for that, when replying to messages in the 'Trash' folder 19:57:26 Also, I wish I knew how to persuade OmniWeb to ignore key bindings made by web pages in their text fields. 19:57:54 It is extremely frustrating to type C-b in a text field, only to have it hit the submit button or something equally egregiously absurd like that. 19:58:52 -!- lisppaste [n=lisppast@common-lisp.net] has quit ["Want lisppaste in your channel? Email lisppaste-requests AT common-lisp.net."] 19:58:55 lisppaste [n=lisppast@common-lisp.net] has joined #scheme 19:59:42 -!- dmoerner [n=dmr@89-214.res.pomona.edu] has quit [Remote closed the connection] 20:03:35 dmoerner [n=dmr@89-214.res.pomona.edu] has joined #scheme 20:03:52 -!- p1dzkl [i=p1dzkl@208.92.234.202] has quit [] 20:04:35 CaptainMorgan [n=CaptainM@c-24-62-183-102.hsd1.ma.comcast.net] has joined #scheme 20:09:32 -!- centipedefarmer [n=nothingH@173-25-176-111.client.mchsi.com] has quit [Read error: 60 (Operation timed out)] 20:09:53 centipedefarmer [n=nothingH@173-25-176-111.client.mchsi.com] has joined #scheme 20:12:37 -!- hjpark [n=user@116.40.135.21] has quit [Remote closed the connection] 20:21:41 -!- schmir [n=schmir@217.86.167.205] has quit [Remote closed the connection] 20:26:11 edwardk [i=c72ec7e7@gateway/web/freenode/x-mniveoyszlixpqmy] has joined #scheme 20:37:12 -!- mario-goulart [n=user@67.205.85.241] has quit [Remote closed the connection] 20:37:24 jcowan, have you made sense of unification for type inference? 20:37:58 Mu. I made sense of it, I just wasn't convinced that it was a complete algorithm. 20:38:12 But I'm going to assume it is, and damn my intuitions. 20:38:34 What the unifier cannot find, the programmer must supply, and if that means he must do lambda-lifting manually, oh well. 20:39:54 sc. I do not propose to have an in situ syntax for declaring lambdas-as-arguments. 20:39:59 What does lambda-lifting have to do with it? 20:40:08 bgs100 [n=ian@unaffiliated/bgs100] has joined #scheme 20:40:18 -!- sladegen [n=nemo@unaffiliated/sladegen] has quit [Nick collision from services.] 20:40:27 sladegen [n=nemo@dynamic-62-87-129-32.ssp.dialog.net.pl] has joined #scheme 20:41:49 -!- kuribas [i=kristof@d54C4364C.access.telenet.be] has quit ["ERC Version 5.2 (IRC client for Emacs)"] 20:47:11 hotblack23 [n=jh@p5B057E52.dip.t-dialin.net] has joined #scheme 20:56:21 synx [i=synx@gateway/gpg-tor/key-0xA71B0C6A] has joined #scheme 21:00:23 jmcphers [n=jmcphers@218.185.108.156] has joined #scheme 21:06:53 -!- Fare [n=Fare@guest-fw.dc4.itasoftware.com] has quit [Read error: 60 (Operation timed out)] 21:12:40 IOW, if you find that you must declare the type of an anonymous lambda, you must make it nonymous first. 21:12:54 what is this about? 21:12:58 and, indeed, global 21:13:07 No internal type declarations? 21:13:13 At present, no. 21:13:27 facsimile: Flopsy, my Scheme-subset compiler for fast floating point operations. 21:13:39 oh cool 21:13:53 I wish I knew stuff like that : 21:13:55 :p 21:14:06 Riastradh: Perhaps you will be pleased to know that I have added the functions from your "modulo systems" paper, modulo the multi-valued ones. 21:14:07 floating point is really hard 21:14:43 facsimile: The point is that in most Schemes FP is boxed and really slow. By compiling the critical parts of your algorithm with Flopsy (which knows nothing about the surrounding Scheme) and calling it through the Scheme's FFI, you hopefully get a speed boost. 21:16:34 *jcowan* wonders if he can get away with compiling to GNU C instead of ISO C. Lots of really nice extensions there, and gcc is available on a huge number of platforms. 21:16:45 What extensions do you want? 21:17:27 Nice nested procs and block expressions would save me a little annoyance in the code generator. 21:17:28 jcowan, you should try the new unsafe FP ops in PLT, which now unbox 21:17:40 -!- reprore_ [n=reprore@ntkngw598092.kngw.nt.ftth.ppp.infoweb.ne.jp] has quit [Remote closed the connection] 21:17:56 -!- hosh [n=hosh@c-71-199-176-82.hsd1.ga.comcast.net] has quit ["Leaving"] 21:17:57 samth: Thanks, and glad to hear it. Flopsy, however, is meant to be a portable solution. 21:18:04 That doesn't help pass floating-point data through general code and data structures without boxing, samth. 21:18:24 (MIT Scheme supports that too, for instance.) 21:18:55 i want to do fixflos at some point 21:19:10 stealing four bits from the exponent, if they are all zero 21:19:20 Riastradh, i was just thinking the if you're only compiling the 'critical parts' in jcowan's language, your data structures probably are boxing anyway 21:20:01 jcowan, how are you doing portable calls to Flopsy functions? 21:24:30 In a macro, I have the pattern "((name value) ...)". I want to splice it to "(name = value ...)" in the template. How do I do this? 21:28:14 -!- treeform [n=me@67-207-148-173.slicehost.net] has left #scheme 21:29:37 *sladegen* bets on the "no go" horse. 21:30:27 masm, use an auxiliary macro. Here's a trick: pass ((name = value) ...) to the auxiliary macro, which has a pattern of ((element ...) ...), and has a template of (element ... ...). 21:31:31 Of course!! Thanks, Riastradh. 21:32:00 ...although I'm curious why you want a list of the form `(name = value ...)'. 21:32:09 rechristens horse to "s-expression token injection" 21:37:09 Riastradh: to replace this "(_bitfield `(,@'(name = value) ...))", ugly syntax of PLT's ffi definitions. 21:38:46 samth: Flopsy generates C, so whatever your C FFI is, use it. 21:39:25 Flopsy has doubles, vectors (of doubles), strings (in C format), booleans (ditto), and monomorphic procedures over these types. All of this translates directly to C. 21:41:36 It provides a nice set of monomorphic Scheme procedures, SRFI 43, Riastradh's integral division operators, and all of C99 math.h. 21:41:39 Flopsy is probably the best name for anything ever 21:41:44 masm: If you don't like that syntax, you shouldn't use it. 21:42:04 Thanks. Originally there was going to be an integer version called Mopsy, but with the idea of using math.h it more or less dropped away. 21:42:25 eli: s/that syntax/crottled greeps/ 21:42:34 Riastradh has integral division operators? 21:42:55 eli: Well... I don't. Now I have a nice macro to replace it. 21:42:57 Yes, they're very nice. I carry them in my pocket wherever I go, just like my chopsticks and periodic table. 21:43:00 http://mumble.net/~campbell/tmp/division.txt 21:43:33 *jcowan* should probably make a SRFI for math.h 21:43:42 eli: was you that came up with it? 21:44:01 jcowan: I don't know what that means. 21:44:45 masm: The macro is really intended for copying definitions from a C header file into a Scheme file -- there's not much point in using it in your own macro, and it would be easier to implement the type directly instead. 21:45:11 -!- bzzbzz [n=franco@207.236.146.245] has quit ["Lost terminal"] 21:45:13 "If you do not like crottled greeps, you should not order them" is a catchphrase used in sf fandom for people who complain about surface features of things. 21:45:24 (Well, I did carry chopsticks in my pocket until I stumbled a few weeks ago and they broke.) 21:45:33 Nobody quite knows what crottled greeps are, except that they are probably a foodstuff and not very appealing. 21:46:11 jcowan: (That's as helpful as google is.) 21:46:28 High praise. 21:46:40 Riastradh: you must have quite spacious pockets; I usually carry my chopsticks in one of my sleeves 21:47:04 "In his sleeves, which were long, he had 48 packs / Which is going it strong, yet I state but the facts." 21:47:54 -!- Nshag [i=user@Mix-Nantes-117-3-40.w193-250.abo.wanadoo.fr] has quit ["Quitte"] 21:49:14 eli: Actually, I don't dislike it. I was defining a macro that grovels a header and I was using _bitfield because it is there. 21:49:16 eli, well, you are, after all, addressing Google! 21:49:53 Riastradh: Yes, that's what made it amusing. 21:50:10 stepnem, quite. I like large pockets; if they're not large, what good are they? 21:50:10 masm: I was serious -- if you generate it, then there is no reason to use the macro. 21:51:09 Riastradh: indeed 21:51:16 masm: Just see `make-ctype' -- you basically need a basetype (`_int' in this case), and a function that translates whatever to a scheme integer and another function that goes back. 21:52:11 The functions that `_bitmask' geenrates are not even that good -- it uses alists, where in some cases you might prefer a hash table. 21:53:44 eli: Right. Thanks. 22:04:37 eli: Have you worked some more on the tutorial on building DSLs? I would gladly reread it, if there is something new. :) 22:05:03 masm: No, not yet... 22:14:51 re: fast floating point, how many "cool" languages have gone past the "everything is the size of a word" model, particularly on the stack. I understand that between GC and parametric polymorphism, making everything the size of a word size has its advantages, but AFAIK, only the CLR folks have gone the distance to essentially treat non-word-size instantiations of generics like templates and simply generate new code for those cases. 22:15:49 I also imagine that both the CLR as well as the JVM have stack frame descriptor schemes for deterministic GC without presuming everything is a word with a few bits devoted to type tagging :-) 22:16:29 ski_ [n=md9slj@remote1.student.chalmers.se] has joined #scheme 22:18:34 But then again, how they might mix the GC oriented stack frame descriptors with arbitrary (think naturally word sized - could be ptr or immed type) instantiation of some generic, make me scratch my head a little. 22:20:52 Any ideas on these RTS "state of the art" fully applicable to scheme either with inference, "soft typing," etc. 22:23:00 -!- centipedefarmer [n=nothingH@173-25-176-111.client.mchsi.com] has quit [Read error: 104 (Connection reset by peer)] 22:24:14 zanes [n=zane@c-76-119-235-9.hsd1.ma.comcast.net] has joined #scheme 22:31:02 -!- wingo [n=wingo@217.Red-88-17-207.dynamicIP.rima-tde.net] has quit [Read error: 113 (No route to host)] 22:33:31 -!- choas [n=lars@p5B0DE5DC.dip.t-dialin.net] has quit ["leaving"] 22:38:48 -!- zanes [n=zane@c-76-119-235-9.hsd1.ma.comcast.net] has quit [] 22:38:54 -!- albacker [n=eni@unaffiliated/enyx] has quit ["Leaving"] 22:47:02 aburrido [n=eldragon@84.79.67.254] has joined #scheme 22:48:27 sad0ur [n=sad0ur@89.190.42.46] has joined #scheme 22:54:49 -!- Edico [n=Edico@unaffiliated/edico] has quit ["Ex-Chat"] 23:00:37 attila_lendvai_ [n=ati@adsl-89-132-7-1.monradsl.monornet.hu] has joined #scheme 23:05:11 -!- jlongster [n=user@75-148-111-133-Chattanooga.hfc.comcastbusiness.net] has quit [Read error: 113 (No route to host)] 23:16:39 -!- attila_lendvai [n=ati@adsl-89-132-1-243.monradsl.monornet.hu] has quit [Read error: 110 (Connection timed out)] 23:25:01 -!- sladegen [n=nemo@unaffiliated/sladegen] has quit [Read error: 110 (Connection timed out)] 23:30:34 -!- hotblack23 [n=jh@p5B057E52.dip.t-dialin.net] has quit ["Leaving."] 23:32:32 awarring [n=quassel@officebv.conductor.com] has joined #scheme 23:38:10 *jcowan* disclaims any notion of being Google, or speaking for Google, or having Google speak for me, or any other *@#$* thing. 23:47:09 *gnomon* makess a note to the effect that jcowan and The Google are not on speaking terms 23:47:29 -!- bgs100 [n=ian@unaffiliated/bgs100] has quit ["Leaving"] 23:48:37 Thenkkyew thenkkyew thenkkyew. 23:49:52 bgs100 [n=ian@unaffiliated/bgs100] has joined #scheme 23:53:41 Summermute: getting fast FP out of JVM or CLR is really about the JIT. CLR has done full autoboxing and auto-unboxing since day 1, but the underlying mechanism is the same as on the JVM, with both boxed and unboxed types. 23:54:00 Since the compiler defines what's on the stack, and the JVM defines the implementation of the stack, precise GC is not a problem. 23:55:55 -!- davazp [n=user@156.Red-79-153-148.dynamicIP.rima-tde.net] has quit [Read error: 104 (Connection reset by peer)]