00:00:50 JohnnyL [i=excellen@ool-182f0b98.dyn.optonline.net] has joined #scheme 00:03:39 jao [n=jao@140.Red-83-42-209.dynamicIP.rima-tde.net] has joined #scheme 00:07:57 elderK: I thought it was pretty cool. It allowed for true continuations, unlike the standard python. 00:08:50 Well, it's an improvement synx, for sure. 00:10:53 you want "stackless" python look no further than Twisted's Deferred. (ugh) 00:12:02 "stackless" like, 100% stackless :P NO stack whatsoever? :P 00:12:16 or, stackless as in "we don't use the C stack, we build our own instead" 00:15:07 -!- arcfide [n=arcfide@fl-76-2-117-102.dhcp.embarqhsd.net] has quit [Remote closed the connection] 00:15:11 dfeuer [n=dfeuer@wikimedia/Dfeuer] has joined #scheme 00:15:26 arcfide [n=arcfide@fl-76-2-117-102.dhcp.embarqhsd.net] has joined #scheme 00:15:46 stackless as in, instead of calling the next procedure, you create an object containing it, and prepare it to trampoline later. 00:16:21 aye 00:16:26 It's like continuations, except it requires that all code be rewritten to fit with its restrictive paradigm. 00:16:32 Like if you were forced to use CPS style for everything. 00:16:41 even loops 00:16:48 okay loops are kind of inherently CPS style but 00:17:09 the stack though, is explicit - instead of Cstack, it's just a stack of proc-objects to defer execution until the "call stack" levels. 00:17:18 synx, on the topic of CPS, 00:17:25 I've been studying up on it lately, trying to get a better understanding. 00:17:45 ...did I just say CPS style. 00:17:47 I've read most postings on readscheme I can find, but, it'd be cool if I could find more examples of "Direct style" to "CPS" 00:17:53 Hold on I need to go visit the ATM machine. 00:18:03 you did just say, yes. And, np man 00:18:11 Talk later, Money NOW! : D 00:18:24 elderK: I run into CPS style a lot actually, because of the issues with scheme and unwind-protect. 00:18:30 -!- schoppenhauer [n=christop@unaffiliated/schoppenhauer] has quit [] 00:18:52 run into? 00:19:02 you write in CPS layout? 00:19:18 I'll visit the ATM machine right after I fix my cascading CSS style sheets. 00:19:33 Yes I believe I have used CPS before... 00:19:53 It's not... all that complicated really. Just the implications that become complicated. 00:20:04 there a model (ala MVC) for Scheme web implementations? 00:20:33 JohnnyL: NO >:( 00:20:41 I mean, no clue. :) 00:20:48 well, synx, mayhap not - what do you mean by implications? The thing that gets me like, is, if everything is 100% cps (say, cons, +, if, booleans, etc), then... how do we define things? 00:20:57 *synx* uses a view/controller sort of thing, but no model. 00:20:59 defines are a form, special form, but still a form. 00:21:18 wouldnt CPS in a way, make the environment way more explicit-seeming? 00:21:29 schoppenhauer [n=christop@unaffiliated/schoppenhauer] has joined #scheme 00:21:34 -!- schoppenhauer [n=christop@unaffiliated/schoppenhauer] has quit [Remote closed the connection] 00:21:51 elderK: call/cc can be implemented perfectly (I've heard) by converting the procedure containing the call/cc into two procedures, one with the code before, and one with the code after the call/cc passed in CPS. 00:22:06 The thing about CPS that hits me - is, it's crazy but cool - like, it feels like a weird hybrid of highlevel lowlevel assembly but not. :P 00:22:51 CPS is about equivalent to SSA form 00:22:57 Well, aye, CPS is useful and beneficial and suchlike - I just wish I understood it better :P 00:23:01 hey there, sloyd 00:23:05 so (a b c (call/cc ...) d e f) would go to (a b c (... (lambda args d e f))) 00:23:41 are there macros in scheme? 00:23:49 yeah, JohnnyL 00:24:02 Isn't continuation passing style, just the style where you pass the "next step" to the procedure implementing the current step, so that procedure can then move onto the next step (and supply it the step after that etc) 00:24:04 ? 00:24:04 syntax-rules, syntactic-closures, ER, syntax-case, define-macro 00:24:24 pretty much, synx. that's the crux of it. 00:24:44 Yeah, so whenever I have to use with-input-from-file... 00:24:53 sloyd: so, CPS is, like SSA (afaik, I need to research that too :)), highlevel-lowlevel? :) 00:25:15 It takes the "next step" for while the file is opened. And you can't escape out of it via call/cc without closing the file, so you're forced to use CPS for everything involving it. 00:25:40 synx, assuming everything in the interpreter, is CPS. 00:25:46 and you must write everything CPS... 00:25:50 how do you handle defines? 00:25:56 for things like If, I imagine: 00:26:04 IIRC CPS + some annotations is equivalent to SSA, meaning you can apply the same optimazitions and analyses 00:26:24 (bool-op thing-1 thing-2 (if (true cont) (false cont) ) ) 00:26:55 (ie, if "if" was a form that was say, (if ) 00:27:14 (bool-op ) 00:27:14 elderK: Doesn't seem that hard actually. 00:27:27 that's not 00:27:31 but what about the other implications? 00:27:34 everything 100% cps. 00:27:39 (define this that cont) 00:27:41 Richard A. Kelsey (March 1995). "A Correspondence between Continuation Passing Style and Static Single Assignment Form". ACM SIGPLAN Notices 30 (3): 1322. doi:10.1145/202530.202532. http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.3.6773. 00:27:58 Aye, sloyd, I downloaded that about an hour ago - its on my todo list to read :) 00:28:20 you can either transform toplevel defines into letrec or into a set! into the toplevel environment 00:28:35 rudybot: eval (define a 13) (+ a 4) 00:28:35 synx: ; Value: 17 00:28:37 aye, but, you'd want it to be... uniform. 00:28:50 rudybot: ((lambda (next) (next 13)) ( (b) (+ b 5))) 00:28:50 synx: eh? Try "rudybot: help". 00:28:52 so set! would take a continuation, 00:28:58 ... 00:29:01 everything would take continuations. 00:29:02 rudybot: eval ((lambda (next) (next 13)) ( (b) (+ b 5))) 00:29:02 synx: ; Value: 18 00:29:09 The second one is CPS, right 00:29:42 aye. 00:29:55 So that's how you do "define" in CPS. 00:30:43 you'd still rely heavily on closures, though, for larger type deals, unless you passed everything 100% 00:30:45 like, 00:31:24 nutmegmagi [n=swalters@pool-71-101-160-3.tampfl.dsl-w.verizon.net] has joined #scheme 00:31:45 ((lambda (next) (next ) ) (lambda ( ) ...) ) 00:32:10 you get what I'm gunning at, right? 00:32:20 env is just another argument though... 00:32:34 yeah, but env is all the bindings, like say, 00:33:37 Mikaeel_Mohamed [n=Mohamdu@129-97-208-27.uwaterloo.ca] has joined #scheme 00:34:00 take a closure, or just anything with free variables. 00:34:08 the environment satisfies them becuase of lexical scopiing, if it can. 00:34:22 in 100% pure CPS, you wouldn't do that - you'd pass the environment around with you. 00:34:33 so, that raises the question - how do we manage the "environment", in 100% cps form? 00:34:40 the environment in itself, is no longer really an abstraction. 00:34:45 since, it's always explicit. 00:35:08 We aren't giving things names, because, everything in CPS in the end, is a giant sequential thing, even when it's looping. 00:35:49 (although with looping, the "sequence" just uses the callers continuation) 00:35:56 (iirc?) 00:35:56 no clue... 00:36:29 "in 100% pure CPS (...) you'd pass the environment around with you" <-- uhm, no? 00:37:57 how not, sloyd? :) 00:38:03 If I'm confused here, I'm keen to fix it :D 00:39:26 by environment here, I don't mean the usual "environment" in Scheme, I guess. I more mean... since everythign would be in CPS, and "definitions" would just end up being functions - how would you propogate the "environment" ? 00:39:40 imagining for a second that you couldn't define like we can normally in Scheme. 00:40:28 like you said, you rely on closures 00:40:30 the only thing I can think of, is that, either you pass the variables along always that you care about - or, you grow the environment forever, since, all those lambdas... the closures... 00:40:33 it would grow huge? 00:41:13 (or, is this the intention? ie: chicken, cheny on the mta) 00:41:35 if the implementation correctly gc's unreferenced variables, it is no problem 00:42:23 if you use the environment frame model where you don't gc an environment until all variables in it are freed, you have a problem 00:42:33 I would consider the latter a bug 00:42:37 btw, out of curiosity - doesn't... say, using 100% cps, kind of mean that we are basically using like, pure lambda calculus in a way? 00:42:52 aye. 00:43:10 you'd need gc for sure, It's just, I'm pondering about other things too - just to keep the environment as small as possible, you know? 00:44:02 -!- arcfide [n=arcfide@fl-76-2-117-102.dhcp.embarqhsd.net] has quit [Remote closed the connection] 00:44:34 but from what I've read/grokked so far from SICP and whitepapers, you can't help that really - since, every call you make - unless it's TCO is going to grow the environment unless it uses the exact same number of parameters, and the chain of lambdas isn't relying on free-vars? 00:44:38 okay, that doesn't read well at all. 00:44:46 I think my brain is getting all... itchy now. :) 00:46:04 arcfide [n=arcfide@fl-76-2-117-102.dhcp.embarqhsd.net] has joined #scheme 00:46:20 (since, calling a function - means creating a frame for that function to evaluate in? with the formals bound to their values - the functions "environment" frame, extends the encapsulating functions frame?) 00:46:23 wb arcfide! 00:46:29 :D Man, you've got me all curious about Quantz 00:47:42 elderK: It's fun, actually. 00:47:43 :-) 00:47:58 And it isn't the kind of game that has to absorb all your time. You can quit easily enough and not feel bad about it. 00:48:02 you could eliminate redundant steps I suppose, if you wanted to optimize. Any time there was (lambda (next) (next (lambda (next) (next something)))) you could just use (next (lambda (next) (next something))) I guess... 00:48:05 something like that... 00:50:26 you shouldn't use naive environment frames, because they leak memory. I like flat environments (where you just keep a pointer to each variable you need in an array), but you can also null out the references you don't need anymore (I believe PLT does this) 00:50:47 emma [n=em@unaffiliated/emma] has joined #scheme 00:50:52 aye, sloyd. 00:51:22 I was also wondering if... you could during compilation, kind of translate some of the explicit environment stuff away. 00:52:17 like, if you find out that during compilation (maybe by running a semi-evaluator), that some arguments or entities in the environment never change - or only once or twice - make them constant - and just hardwire them - or is this "constant folding" ? 00:53:08 -!- davazp [n=user@95.Red-83-55-182.dynamicIP.rima-tde.net] has quit [Read error: 104 (Connection reset by peer)] 00:53:39 Is this kind of reasoning about CPS even productive? Am I wasting time and energy here? :S 00:54:05 arcfide: :D A casual game :D Does ti need pretty hefty hardware? or, is it older-machine friendly? 00:54:37 your optimization is constant propagation (~= constant folding) 00:55:11 ~= == "kind of the same as" ? 00:55:49 yes, closely related or possibly a subset of 00:58:48 and constant folding? is that hardcoding the constants too - but on a more fundamental level - like say, immediates in the machine language of whatever target? 00:59:05 (btw sloyd man, thanks :D you too synx, you've helped a lot!) 00:59:14 constant folding is like transforming (* 2 3) into 6 00:59:45 aahh, okay :) so, it's kind of like partial evaluation - just, of the things we can statically work out. 01:00:12 yes 01:00:32 :) cool 01:00:43 Then we have things like lambda lifting, alpha/beta/eta reductions? 01:02:22 Riastradh [n=riastrad@tissot.csail.mit.edu] has joined #scheme 01:02:52 yes, there are a lot of optimizations you can do 01:02:58 -!- JohnnyL [i=excellen@ool-182f0b98.dyn.optonline.net] has left #scheme 01:03:47 *elderK* dances 01:03:50 ^_^ this is exciting m an 01:03:57 :D I want to learn so much more about this. 01:04:07 It'd be cool if I could find some papers somewhere that specialize in this kind of stuff. 01:04:12 elderK, CPS is just a restricted subset of the lambda calculus that implies a particular order of term reduction; or, a restricted subset of Scheme that gives explicit names to the steps in the control flow. 01:04:15 Maybe I /should/ move to the US. 01:04:30 Hey Riastradh! 01:04:38 -!- rdd [n=user@c83-250-152-128.bredband.comhem.se] has quit [Remote closed the connection] 01:05:14 Aye - but, just for the hell of pondering - is there a way you could totally get rid of needing an enclosing environment for each step? 01:05:28 or would that simply be the smae thing - just, MORE Explicit? 01:05:56 This restricted subset has a simpler structure: more complex structures, with nested subexpressions, are mapped into the simpler structure by identifying the continuations explicitly. This means that an interpreter for a CPS lambda calculus can be simpler, or that your compiler can have a more uniform intermediate representation. 01:06:13 You can make environments explicit, too; that's orthogonal to CPS. 01:06:32 aye, that's what I was wondering :) 01:06:39 Transformation to CPS doesn't, however, derive any new information about a program that wasn't locally apparent before. It is not a data flow analysis. 01:07:22 In a compiler, transformation to CPS only makes one's data structures, and the code to operate them, potentially simpler or clearer. 01:07:31 How would you go about making environments specific? Would you simply pass some abstract environment object around or would you simply pass say, a list of name->value pairs? or is it entirely up to the implementation? 01:07:53 And thank you, that just made the lightbulb pop over my head :D 01:08:01 Of course it's up to the implementation. 01:08:17 elderK: As for Quantz and the system requirements, I think they mention them on the website, but I don't know how well it works on older hardware, as I am using an ATI Radeon Mobility HD 3650. 01:08:34 :) arcfide: I'll test it on my macbook with intel gma x3100 01:08:47 I think it has a low-resolution mode. 01:08:55 It's worth buying, even if only to support the principle of people developing stuff in Scheme! 01:09:14 You need some representation of environments. Each procedure has an extra parameter for its closing environment. Applying a closed procedure reduces to finding its closing environment and applying an open procedure, i.e. jumping to its code, passing the environment as an argument. 01:09:59 For example, (lambda (x) (lambda (y) x)) might map to (lambda (e1 x) (make-closed-procedure (lambda (e2 y) (environment-ref e2 0)) x)). 01:11:09 (This too, by the way, doesn't reveal any new information about a program that wasn't locally obvious. But it may make writing your compiler easier, depending on what your compiler does. 01:11:32 aye 01:11:39 ) 01:11:40 MAN this is awesome :D 01:13:06 :) On my reading list, Riastradh, I've got tons of things like, RABBIT: A Compiler for Scheme, "Study of hte CPS Transformation", "On one step CPS transformation", etc. Would these kind of papers be sufficient to learn how a compiler/interpreter can analyze the input program (in direct form) and construct the CPS representation? 01:13:20 Now, some people will tell you that CPS conversion affects, by improving or worsening, data flow analyses. This is total nonsense, and suggests a failure to understand what conversion to CPS does. 01:13:26 At least as a basic foundation for the more interesting and advanced stuff (like, say, optimizations, constant-folding/propogation, lambda lifting) 01:14:28 o_O I don't see how CPS transformation would change the dataflow - since... it's not really adding anything to the program that wasn't already there. 01:14:29 Those are practically unrelated subjects. Conversion to CPS may simplify (or complicate) the presentation of the latter. 01:14:34 all it's doing is making stuff explicit, right? 01:14:35 That's all. 01:15:01 The CPS transformation can be summarized in three lines: 01:15:31 (transform `(lambda (,x) ,body) k) = `(,k (lambda (,k* ,x) ,(transform x k*))), where k* is fresh; 01:16:31 (transform `(,f ,x) k) = (transform f `(lambda (,f*) ,(transform x `(lambda (,x*) (,f* ,k ,x*], where f* and x* are fresh; and 01:16:49 (transform c k) = `(,k ,c), where c is a constant. 01:17:13 If you want a general introduction to Scheme compilation, I suggest David Kranz's PhD dissertation on Orbit. 01:18:14 It doesn't discuss any data flow analyses (except for rudimentary live variable analysis), or lambda lifting, but it is a good introduction to compiling Scheme and some of the practical issues involved. 01:18:19 :( I can't get access to it, Riastradh - ACM paywall :( 01:18:49 The conference paper may be behind the ACM portcullis, but Kranz's dissertation is not. 01:18:54 01:19:10 (PhD dissertations are generally not behind paywalls of any sort.) 01:22:03 -!- MichaelRaskin [n=MichaelR@195.91.224.225] has quit [Remote closed the connection] 01:22:22 MichaelRaskin [n=MichaelR@195.91.224.225] has joined #scheme 01:25:51 thank you, Riastradh 01:26:02 o_O it was some thing on ORBIT that was behind a wall. 01:27:03 The conference paper is. 01:27:09 davazp [n=user@95.Red-83-55-182.dynamicIP.rima-tde.net] has joined #scheme 01:27:39 It predated the ACM's draconian copyright notices, though, so I have put a copy at . 01:28:04 s/notices/terms/1 01:29:30 However, the conference paper is very much a brief summary; Sections 4, 5, & 6 are really the interesting parts, and they are what Kranz's dissertation go into much more detail about. 01:32:36 jeapostrophe [n=jay@69.169.141.110.provo.static.broadweavenetworks.net] has joined #scheme 01:35:49 thank you so much, Riastradh 01:35:51 :) 01:36:07 What's with the ACM anyway? I mean, how much does ACM membership cost for an individual? 01:36:12 Is it really like, steep? 01:36:18 or is it actually kind of reasonable" 01:36:18 ? 01:36:36 I don't mind paying for the documentation if I can afford it, Imean, that all helps the people who created the papers, right? 01:36:57 *offby1* laughs cruelly 01:36:59 I'd be surprised 01:37:09 they probably pay for the privilege of publishing 01:37:13 *offby1* glowers darkly 01:37:18 -!- jeapostrophe [n=jay@69.169.141.110.provo.static.broadweavenetworks.net] has quit [Client Quit] 01:44:14 offby1: It's usually the conference attendees who bear the burden. 01:44:30 elderK: Absolutely not; the people who created the papers would usually rather just publish them freely. 01:53:03 masm [n=masm@bl7-204-74.dsl.telepac.pt] has joined #scheme 01:54:15 -!- Mikaeel_Mohamed [n=Mohamdu@129-97-208-27.uwaterloo.ca] has quit [Read error: 110 (Connection timed out)] 02:00:30 annodomini [n=lambda@wikipedia/lambda] has joined #scheme 02:03:37 xwl_ [n=user@147.243.236.60] has joined #scheme 02:07:47 -!- xwl_ [n=user@147.243.236.60] has quit [Remote closed the connection] 02:10:21 jonrafkind [n=jon@c-98-202-82-46.hsd1.ut.comcast.net] has joined #scheme 02:11:48 xwl_ [n=user@147.243.236.60] has joined #scheme 02:12:17 -!- xwl_ [n=user@147.243.236.60] has quit [Remote closed the connection] 02:14:44 sorry guys, repairing mother's printer. 02:18:54 xwl_ [n=user@147.243.236.60] has joined #scheme 02:22:42 elderK: http://xkcd.com/627/ 02:25:41 hey, that flowchart is *useful* 02:27:25 :D ELLY! 02:27:35 er, hello 02:27:55 offby1: Riastradh: chandler: If the ACM doesn't... give anything back to those whose papers they publish, then... what's with the freaking paywalls? 02:27:58 And are the ACM really steep? 02:28:08 I assume they do because they can 02:28:10 Ie: Too expensive for a semi-poor student-like? 02:28:20 hit acm.org and see what the rates are 02:28:21 How's *Schemer going, elly? :) 02:28:27 Aye. 02:29:46 I haven't been looking at them really :P I've been too busy 02:29:57 Ah. :) Hokay. 02:35:15 I think that's pretty crappy, tbh, that the authors don't get anything back from the ACM 02:35:17 I mean, man. 02:35:18 o_O 02:35:22 -!- blackened` [n=blackene@ip-89-102-22-70.karneval.cz] has quit [] 02:40:44 Fight the power! 02:42:04 -!- ski_ [n=md9slj@remote1.student.chalmers.se] has quit ["Lost terminal"] 02:55:16 -!- luz [n=davids@189.122.90.116] has quit [Remote closed the connection] 03:03:13 elderK: If you are a student, they have student rates that are pretty good, I think. 03:08:40 -!- masm [n=masm@bl7-204-74.dsl.telepac.pt] has quit ["Leaving."] 03:08:51 If you're a student, you are usually a student of some university, which usually has a university-wide ACM subscription. 03:10:59 -!- offby1 [n=user@pdpc/supporter/monthlybyte/offby1] has quit [Read error: 104 (Connection reset by peer)] 03:11:28 offby1 [n=user@pdpc/supporter/monthlybyte/offby1] has joined #scheme 03:12:46 Awwwww 03:12:51 this can't be good... 03:12:56 -!- offby1 [n=user@pdpc/supporter/monthlybyte/offby1] has quit [Read error: 104 (Connection reset by peer)] 03:12:57 "Machine Error #31" 03:13:01 er, 41. 03:13:03 :P Stupid printer... 03:13:12 I'm not really an /official/ student atm. 03:13:20 :P I will be returning soon, hopefully. 03:13:23 If not, I would still like access to ACM material. 03:21:39 hm... defective printheads.... 03:21:42 dandy... 03:22:01 offby1 [n=user@pdpc/supporter/monthlybyte/offby1] has joined #scheme 03:22:38 -!- MrFahrenheit [n=RageOfTh@users-55-251.vinet.ba] has quit [Read error: 113 (No route to host)] 03:30:58 -!- bgs100 [n=ian@unaffiliated/bgs100] has quit ["Leaving"] 03:37:01 elderK: cash or SOL are your best options, then 03:38:55 copumpkin_ [n=copumpki@94.162.131.213] has joined #scheme 03:41:20 schoppenhauer [n=christop@unaffiliated/schoppenhauer] has joined #scheme 03:41:31 Fare [n=Fare@c-24-218-127-11.hsd1.ma.comcast.net] has joined #scheme 03:42:46 SOL ? 03:45:12 S*** Out of Luck 03:45:14 ? 03:45:40 meric [n=Eric@124-171-57-132.dyn.iinet.net.au] has joined #scheme 03:45:40 -!- copumpkin [n=copumpki@94.162.54.83] has quit [Read error: 60 (Operation timed out)] 03:45:44 -!- copumpkin_ is now known as copumpkin 03:46:14 newbie here... I got a list (2 3 4), how do I turn it into (+ 2 3 4) and evaluate it? I try looking through the textbook, I'm sure its in there but I can't find it. :( 03:46:22 S-exp out of luck??? 03:46:29 rudybot: eval (cons '+ (list 2 3 4)) 03:46:33 *offby1: error: with-limit: out of time 03:46:33 meric: (apply + l) 03:46:39 rudybot: eval (cons '+ (list 2 3 4)) 03:46:40 *offby1: your scheme sandbox is ready 03:46:40 *offby1: ; Value: (+ 2 3 4) 03:46:50 oh cool, thanks 03:46:58 rubybot: (apply + '(2 3 4)) 03:46:59 that's how to stick the + at the front. 03:47:03 you can then eval the resulting list 03:47:10 rubybot: eval (apply + '(2 3 4)) 03:47:25 Fare: some day I'll teach rudybot to not require the "eval" 03:47:26 thanks alot 03:48:05 eval is all the more confusing that there is an (eval ...) operator 03:48:09 yeah 03:48:14 dunno why he still hasn't replied 03:48:38 Fare: heh, you spelled his name wrong 03:48:42 rudybot: eval (apply + '(2 3 4)) 03:48:42 *offby1: ; Value: 9 03:49:16 rubybot! 03:49:24 rudybot's archnemesis 03:49:25 offby1, :) 03:49:27 floobiebot 03:54:55 -!- xwl_ [n=user@147.243.236.60] has quit [Remote closed the connection] 03:55:22 xwl_ [n=user@147.243.236.60] has joined #scheme 03:57:54 -!- Riastradh [n=riastrad@tissot.csail.mit.edu] has quit ["leaving"] 04:01:35 -!- MichaelRaskin [n=MichaelR@195.91.224.225] has quit [Remote closed the connection] 04:02:37 brb guys 04:02:44 MichaelRaskin [n=MichaelR@195.91.224.225] has joined #scheme 04:03:18 -!- jonrafkind [n=jon@c-98-202-82-46.hsd1.ut.comcast.net] has quit [Read error: 60 (Operation timed out)] 04:07:59 I was doing this exercise... and wrote two different working answers... : http://pastebin.org/70916 which one is more closely aligned with the proper way to program scheme? 04:09:22 oops, the first line of A. should be (define (procedure a b c) instead 04:09:47 tjafk [n=timj@e176211009.adsl.alicedsl.de] has joined #scheme 04:11:14 meric: do either of those procedures return the sum of the squares of the two larger numbers? 04:11:25 they both do 04:11:48 -!- tjaway [n=timj@e176198234.adsl.alicedsl.de] has quit [Read error: 110 (Connection timed out)] 04:11:52 oh wait, it only works for positives, doesnit 04:12:04 Eh, dunno 04:12:08 squares are always positive 04:12:28 suppose they both work, how would you do it 04:12:49 I'm not sure if using as many maps and lambdas as possible is a good idea 04:13:11 What I would do is I would make a list of the three numbers, keeping track of which is smallest, then remove that from the list. Then sum the squares of the remaining 2 elements. 04:13:44 "using as many maps and lambdas as possible" is rather missing the point I think. You should aim for clarity and correctness, not fancy language. 04:13:55 okay 04:14:01 meric: See http://stackoverflow.com/questions/161666 for more comments by others. :-P 04:14:11 oh cool! thanks 04:15:16 meric: I happen to like my answer (the one with 8 upvotes), but your mileage may vary. :-P 04:15:26 that's a cool way to do it too. 04:15:30 which one is your answer? 04:15:41 meric: The one with 8 upvotes (below leppie's one). 04:15:42 cky is using the same strategy as you meric 04:15:50 but I meant the top one. 04:16:10 synx: Hehehehe, leppie would be pleased to hear that. :-P 04:16:39 I tried to use the same strategy as cky but I only took the smallest _squared_ number, not the smallest number, so for negatives its not right 04:16:55 No, the very top one. :< 04:17:06 ohh, gotcha meric 04:17:30 have to change the last line to (* (min a b c) (min a b c)))), to work 04:17:30 meric: Mine looked at the smallest number (before squaring) so negative numbers work too. :-P 04:17:37 yeah, >< 04:17:38 jonrafkind [n=jon@c-98-202-82-46.hsd1.ut.comcast.net] has joined #scheme 04:18:08 My philosophy is to do exactly what I intend to do, no more and no less. 04:18:16 meric: I try not to call the same function twice if I can help it; some compilers will know that the arguments don't change, the functions are pure, etc., but I don't bet on it. :-P 04:18:27 So I avoid "tricks" especially when I don't care about the square of the smallest number. 04:18:38 synx: *nods* 04:18:43 ah. 04:18:48 But other people might appreciate such flourishes. 04:19:07 certainly. 04:19:18 cky: okay, so I should do something similar :) 04:20:14 elderK1 [n=Trev_and@116-93-141-112.ue.woosh.co.nz] has joined #scheme 04:20:27 meric: At the very least. But see synx's comment too. 04:20:53 synx: If using an implementation with a sort function, there's a semi-elegant way to do it too. :-P 04:21:12 hmm I think you can use recursion 04:21:41 Sort the arguments, then drop 1, then return (+ (square (car x)) (square (cadr x))) 04:21:52 (where x == (drop (sort args) 1)) 04:22:30 Or, if doing reverse-sorting (descending order), remove the drop. 04:23:56 SRFI 95 seems pretty close to what Guile implements in terms of sorting. Let's see how many other implementations have it.... 04:27:43 -!- elderK [n=Trev_and@203-211-114-36.ue.woosh.co.nz] has quit [Read error: 113 (No route to host)] 04:30:02 nullpo [n=nullpo@221x252x46x83.ap221.ftth.ucom.ne.jp] has joined #scheme 04:30:38 meric: I just posted a version that uses SRFI 95. 04:30:44 (Same post; I just edited it.) 04:30:57 That way, people can't accuse me of calculating squares of numbers that aren't used. :-P 04:31:45 the 8 one? 04:31:50 Yep. 04:31:55 See the part after the "break". 04:32:46 Using ">" as the comparison operator for "sort" makes it sort in descending order. 04:33:48 ok I see it 04:33:55 nice 04:34:04 I've got one too 04:34:07 rudybot: eval (define (square i) (expt i 2)) 04:34:14 rudybot: eval (require srfi/1) 04:34:25 rudybot: eval (apply + (map square (drop (sort '(2 4 3) <) 1))) 04:34:25 synx: ; Value: 25 04:34:31 synx: I thought that expt can sometimes turn exact into inexact. 04:34:46 eh, whatever 04:34:50 I dunno where the "square" square is. 04:34:56 How do you get the code thing to hold the code? 04:35:11 expt only becomes inexact when the second argument is not an integer I think. 04:35:18 code thing to hold...? 04:35:36 synx: Okay. 04:35:44 here: http://stackoverflow.com/questions/161666/sicp-exercise-1-3-request-for-comments/1997522#1997522 04:35:45 -rudybot:#scheme- http://tinyurl.com/y97tfch 04:35:59 the last one 04:36:09 synx: My version is similar but essentially (apply + (map (lambda (x) (* x x)) (take (sort args >) 2))) 04:36:17 (on the website, nvm now) 04:36:18 synx: Not quite written as a one-liner, though. 04:36:32 meric: *nods* 04:36:49 what code thing though meric? 04:37:12 synx: I'll use your one-liner as an inspiration (and credit you), if you don't mind. 04:37:13 the gray colored box to hold code in the comments section 04:38:16 synx: nice one liner 04:38:18 :) 04:38:44 yay thanks cky! 04:39:22 oh duh (define (square x) (* x x)) 04:39:28 why the heck was I thinking expt 04:41:20 -!- MichaelRaskin [n=MichaelR@195.91.224.225] has quit [Remote closed the connection] 04:41:21 *lol* 04:41:37 synx: My one-liner version (due to you) does use expt, for reasons that will be apparent. :-P 04:41:42 MichaelRaskin [n=MichaelR@195.91.224.225] has joined #scheme 04:41:58 I just added it now. :-P 04:42:23 The reason is, I was trying to cut down on the number of expressions by using cut (SRFI 26), and (expt <> 2) is unary, whereas (cut * <> <>) is, well, not. :-P 04:43:20 (define (exercise1.3 . args) (apply + (map (cut expt <> 2) (take! (sort! args >) 2)))) 04:43:24 :-P 04:45:30 meric: To make a code block, indent each line with 4 spaces. 04:45:37 okay 04:46:39 thanks 04:47:35 cky: that one's tricky lol 04:50:55 -!- arcfide [n=arcfide@fl-76-2-117-102.dhcp.embarqhsd.net] has left #scheme 04:51:03 meric: Glad you like. :-P 04:53:52 meric: I just edited my one-liner to use map! (from SRFI 1) instead of map, since the incoming list can be linear-updated. :-P 04:54:45 linear-updated? 04:54:59 heres another one 04:55:00 (define (procedure a b c) (+ (expt (max a b) 2) (expt (max (min a b) c) 2))) 04:55:02 map does not (is not allowed to) modify the incoming list. 04:55:11 map! is (but does not have to) modify the incoming list. 04:55:18 oh ok. 04:55:21 So, for example, map! can change the elements of the incoming list in-place. 04:55:36 *map! is allowed (but does not have) to ... 04:56:01 so I can't do (map args..) just (map! args...) 04:56:06 You can use map, if you like. 04:56:08 That works too. 04:56:14 But map is guaranteed to return a new list. 04:56:19 oh, right 04:56:20 okay 04:56:22 map! can return a new list, or it can change the existing one. 04:56:32 can you choose? 04:56:40 No, that's at the implementer's discretion. 04:57:00 ... ok.... so you don't know if its going to be a new list or not 04:57:01 Usually, whatever is more efficient is chosen. 04:57:09 Right, so only use map! if you don't care. 04:57:20 oh right okay. 04:57:57 :-) 04:58:06 :) 05:00:31 jeapostrophe [n=jay@69.169.141.110.provo.static.broadweavenetworks.net] has joined #scheme 05:05:24 -!- jeapostrophe [n=jay@69.169.141.110.provo.static.broadweavenetworks.net] has quit [Client Quit] 05:14:52 -!- elderK1 [n=Trev_and@116-93-141-112.ue.woosh.co.nz] has left #scheme 05:25:48 -!- nullpo is now known as lancy 05:26:12 -!- lancy is now known as lancy_ 05:33:28 -!- Nshag [n=shag@lns-bzn-37-82-253-12-196.adsl.proxad.net] has quit [Remote closed the connection] 05:36:16 -!- Fare [n=Fare@c-24-218-127-11.hsd1.ma.comcast.net] has quit ["Leaving"] 05:44:12 leppie|work [i=52d2e3c8@gateway/web/freenode/x-kpmxnykpzfycoyir] has joined #scheme 06:04:11 peter_12 [n=peter_12@S01060026bb736c5b.gv.shawcable.net] has joined #scheme 06:09:18 Mikaeel_Mohamed [n=Mohamdu@129-97-208-113.uwaterloo.ca] has joined #scheme 06:10:55 -!- davazp [n=user@95.Red-83-55-182.dynamicIP.rima-tde.net] has quit [Remote closed the connection] 06:14:03 SvekloA [n=sveklo@unaffiliated/sveklo] has joined #scheme 06:15:02 cky: You mean never use map! unless it's really necessary, right 06:15:42 synx: I generally never bother to use map!, and just use map. But, in this case, map! will work just fine because the incoming list is never used again. 06:16:08 ...yeah. I've never used map! before 06:16:14 Sounds dangerous. 06:16:59 Most of the "linear-update" functions are there for people who know what they're doing, and even then...well, let's just say that on multithreaded implementations, it's best that map! be identical to map. 06:17:11 (Remember that map! is allowed, but not required, to modify the incoming list.) 06:18:14 -!- xwl_ [n=user@147.243.236.60] has quit [Remote closed the connection] 06:37:47 xwl_ [n=user@147.243.236.60] has joined #scheme 06:44:40 -!- 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"] 06:50:56 -!- SvekloA [n=sveklo@unaffiliated/sveklo] has quit ["Leaving..."] 07:04:11 proq [n=user@unaffiliated/proqesi] has joined #scheme 07:05:49 -!- annodomini [n=lambda@wikipedia/lambda] has quit [] 07:11:11 hkBst [n=hkBst@gentoo/developer/hkbst] has joined #scheme 07:13:04 -!- certainty [n=david@212.77.226.242] has quit [Read error: 110 (Connection timed out)] 07:27:03 -!- peter_12 [n=peter_12@S01060026bb736c5b.gv.shawcable.net] has quit [] 07:29:32 -!- jonrafkind [n=jon@c-98-202-82-46.hsd1.ut.comcast.net] has quit [Read error: 110 (Connection timed out)] 08:04:45 mmc [n=mima@cs27122078.pp.htv.fi] has joined #scheme 08:23:16 Jafet [n=Jafet@unaffiliated/jafet] has joined #scheme 08:37:19 JKGpp [n=juergen@dslb-092-074-112-103.pools.arcor-ip.net] has joined #scheme 08:49:08 -!- proq [n=user@unaffiliated/proqesi] has quit [Connection timed out] 08:53:45 adzuci_ [n=ada2358@login-linux.ccs.neu.edu] has joined #scheme 08:59:16 -!- mmc [n=mima@cs27122078.pp.htv.fi] has quit [Read error: 110 (Connection timed out)] 09:04:52 -!- adzuci [n=ada2358@login-linux.ccs.neu.edu] has quit [Read error: 110 (Connection timed out)] 09:11:23 FufieToo [n=poff@Gatekeeper.vizrt.com] has joined #scheme 09:19:41 pbusser [n=pbusser@ip138-238-174-82.adsl2.static.versatel.nl] has joined #scheme 09:19:56 Moin moin! 09:20:15 -!- Jafet [n=Jafet@unaffiliated/jafet] has quit ["Leaving."] 09:20:26 Jafet [n=Jafet@unaffiliated/jafet] has joined #scheme 09:28:15 Terminus- [n=justin@124.107.174.67] has joined #scheme 09:28:37 hello. i'm using guile. how do i undefine a previously defined procedure, if that's at all possible? 09:28:52 (google hasn't given me anything yet) 09:30:34 nowhere_man [n=pierre@lec67-4-82-235-57-28.fbx.proxad.net] has joined #scheme 09:30:43 luz [n=davids@189.122.90.116] has joined #scheme 09:33:33 I'm not sure that's even a meaningful concept, but you can redefine its name to something that isn't a procedure 09:35:03 elly: i see. thanks. it's mostly because i realized i made a mistake in defining it and want to obliterate it. 09:35:21 you can also just redefine it to something less erroneous ;P 09:35:40 Why can't you remove the definition, then? 09:36:37 ejs [n=eugen@109-167-1-59.dynamic.peoplenet.ua] has joined #scheme 09:38:29 i have (define (half x) ...) and then i realized it should just be (define half ...) so i tried to redefine it. but whenever i call half, it expects # 09:39:06 hm? 09:39:14 er, why should it be (define half ...)? 09:39:41 or should it be (define (half) ...)? should have mentioned, scheme n00b here. 09:40:04 (define (half) ...) defines a procedure 'half' taking no arguments 09:40:12 (define half ...) defines a variable half 09:40:31 whoops... thanks. i was looking at the wrong problem then. =D 09:40:37 -!- Belaf [n=campedel@net-93-144-17-71.t2.dsl.vodafone.it] has quit [Read error: 60 (Operation timed out)] 09:41:43 Belaf [n=campedel@net-93-144-17-71.t2.dsl.vodafone.it] has joined #scheme 09:41:49 learning has to happen sometime :) 09:42:20 guess this means overloaded functions don't exist in scheme right? 09:42:58 hm? you can inspect the types of your arguments and dispatch on them 09:43:40 Edico [n=Edico@unaffiliated/edico] has joined #scheme 09:43:40 Greenspun's tenth rule, you'll have to write CLOS first 09:43:46 :P 09:43:50 ...I think someone's done it already, though 09:44:00 oh... i see. i've got a long way to go before i understand scheme properly then. 09:44:16 Terminus-: how are you learning: ad hoc or systematically? 09:45:09 klutometis: reading SICP mostly chapter by chapter and at the same time writing whatever pops into my head in the interpreter. 09:45:27 oh, nice; that's about as systematic as it gets. how far along are you? 09:45:45 Terminus-: as a very simple example: (define (thing x) (if (pair? x) (car x) x)) 09:46:08 SICP contains a type dispatching framework early on 09:47:38 klutometis: skipped around a bit though, mostly to just take a peek at chapters 2 and 3. 09:48:12 elly: thanks. haven't gotten to pair? and car yet. 09:49:34 -!- leppie [n=lolcow@196-210-254-178.dynamic.isadsl.co.za] has quit [Read error: 104 (Connection reset by peer)] 09:49:40 guess i get what you mean though. 09:50:03 indeed! 09:50:07 leppie [n=lolcow@196-210-254-178.dynamic.isadsl.co.za] has joined #scheme 09:50:19 you can ask about the type of a value at runtime, so 'overloading' in the C++/Java sense is easy 09:51:09 elly: cool. kinda like typeof in javascript then. 09:51:28 indeed - there are quite a few dynamic languages that can do that 09:51:40 There are a finite number of types in R5RS Scheme. 09:51:57 In SICP you can get by with even less. 09:52:07 less than an arbitrary finite number? 09:53:42 If that number is about greater than ten, sure 09:53:45 Jafet: from what i can see, that would be number, complex, real, rational, and integer correct? 09:54:39 What are you seeing? 09:54:45 oh wait, those are only for numbers. 09:55:30 misread your statement. thought you were saying there are a finite number of number types. XD 09:55:53 Jafet: i guess that depends whether he considers 3.1.1 early; that's the earliest instance i can find, at least, of dispatch on type 09:56:15 Jafet: using this as a reference --> http://www.gnu.org/software/mit-scheme/documentation/mit-scheme-ref/index.html 09:56:16 -rudybot:#scheme- http://tinyurl.com/y8bpqf4 09:56:20 I tried skipping through SICP. 09:56:25 It, uh, doesn't work. 09:57:05 actually, i guess there's that generic dispatch shit in 2.5 09:57:17 klutometis: i just finished reading chapter 1, so far from it. 09:57:42 It's a textbook. You can't fall too far behind, or jump too far ahead. 09:58:24 Terminus-: ah, then patience; take a look at 3.1.1 if you need to for some examples of dispatch on type; or 2.5 for generic operations 09:58:46 but you might find it more edifying to actually work up thither 09:59:35 klutometis: thanks for the tip, but considering i made the mistake between (define foo ...) and (define (foo ...) ...), i think i'll postpone looking at it for a bit until i'm more familiar with this. =) 10:01:23 MrFahrenheit [n=RageOfTh@users-33-31.vinet.ba] has joined #scheme 10:03:26 good call 10:06:18 (define f (lambda (...) (...))) is like var f = function(...) { ... } in javascript, correct? 10:06:48 -!- Mikaeel_Mohamed [n=Mohamdu@129-97-208-113.uwaterloo.ca] has quit [Read error: 110 (Connection timed out)] 10:10:00 -!- jmcphers [n=jmcphers@218.185.108.156] has quit [Remote closed the connection] 10:12:00 yep 10:18:00 thanks elly. =) 10:19:00 By the way, I'd use a guile reference when using guile 10:19:56 yeah, i really should be using mit-scheme, it's just that it's not in the fedora repos and i can't be bothered to compile it right now. it's on my mac though. 10:20:31 -!- Jafet is now known as jafet 10:21:11 It shouldn't matter, they all implement enough Scheme for you to get through SICP 10:21:58 jafet: thanks. i'll give this a rest for a bit. 10:28:08 schmir [n=schmir@mail.brainbot.com] has joined #scheme 10:29:47 -!- hkBst [n=hkBst@gentoo/developer/hkbst] has quit [Read error: 110 (Connection timed out)] 10:34:27 -!- ejs [n=eugen@109-167-1-59.dynamic.peoplenet.ua] has quit [Read error: 113 (No route to host)] 10:43:33 jafet: are you sure? it seems like the stream stuff is fairly specific. and i seem to recall using timers and threads at some point 10:44:13 with some weird MIT-implemented thread library 10:45:20 Well, there are some magical parts where they provide the primitives 10:45:28 But I can't think of what you're talking about 11:07:08 -!- jafet [n=Jafet@unaffiliated/jafet] has quit ["Leaving."] 11:07:19 Jafet [n=Jafet@unaffiliated/jafet] has joined #scheme 11:13:02 Jafet: 3.4 deals with concurrency; and there's at least one exercise, 3.39, where we had to do some parallel execution 11:13:20 looks like ss. 4.3 and 4.4 deal with it, too 11:14:01 and i seem to remember their stream implementations being subtly different than srfi 40, for some reason 11:14:03 So you actually used MIT scheme's concurrency primitives to write theirs? 11:14:16 Well, I didn't do that. 11:14:18 yeah 11:14:21 how did you do it? 11:15:21 I didn't bother to test my programs, since I knew they were correct 11:15:31 (ha) 11:15:47 You can't ensure correctness just by running them, anyhow 11:27:03 Nshag [n=shag@lns-bzn-37-82-253-12-196.adsl.proxad.net] has joined #scheme 11:27:40 certainty [n=closure@dslc-082-083-151-140.pools.arcor-ip.net] has joined #scheme 11:47:14 reprore [n=reprore@ntkngw356150.kngw.nt.ftth.ppp.infoweb.ne.jp] has joined #scheme 11:53:00 cky_ [n=cky@h-166-166-111-114.ip.alltel.net] has joined #scheme 12:01:28 -!- kniu [n=kniu@pool-71-105-70-131.lsanca.dsl-w.verizon.net] has quit [Read error: 110 (Connection timed out)] 12:02:39 hkBst [n=hkBst@gentoo/developer/hkbst] has joined #scheme 12:10:58 -!- cky [n=cky@h-166-166-107-149.ip.alltel.net] has quit [Read error: 110 (Connection timed out)] 12:26:10 -!- Checkie [i=13719@unaffiliated/checkie] has quit [Read error: 110 (Connection timed out)] 12:44:51 Sergio` [n=Sergio`@a89-152-187-193.cpe.netcabo.pt] has joined #scheme 12:52:41 soupdragon [n=somebody@unaffiliated/fax] has joined #scheme 13:01:08 alvatar [n=Administ@201.23.222.87.dynamic.jazztel.es] has joined #scheme 13:01:11 bgs100 [n=ian@unaffiliated/bgs100] has joined #scheme 13:01:18 hi! 13:01:20 so... 13:01:48 I have a newbie question that I couldn't answer googling: 13:02:04 how can scheme be a functional language if it has variable reassignment? 13:02:55 it is not funcitonal in that sense 13:03:07 there are folks that call it a procedural language 13:03:08 masm [n=masm@bl7-39-130.dsl.telepac.pt] has joined #scheme 13:04:08 There are at least three distinct meanings of "functional". 13:04:36 mhmm I see 13:04:47 I'm starting to learn some scheme 13:05:03 and with all the hype around functional languages I thought I was in the bandwagon :D 13:05:36 1) Scheme is functional because it supports function-level programming 13:06:08 2) Haskell is considered functional because its declarations satisfy mathematical equivalence 13:06:13 3) PHP is dysfunctional 13:06:17 :D 13:07:08 so, the only really functional languages are haskell and ML-like ones? 13:07:24 Read what I said above 13:08:10 yes, I did so... maybe I didn't understand it 13:08:25 anyway... scheme can modify global variables from within a function? 13:08:50 That's why they're often not called functions, but procedures. 13:10:20 If you like doing that sort of thing, there's common lisp, where they have like more namespaces than perl 13:10:30 annodomini [n=lambda@c-75-69-96-104.hsd1.nh.comcast.net] has joined #scheme 13:12:27 I ask this because I wanted to learn a functional language, but I just don't want to learn Haskell. What I want is to understand and learn the concepts and way of doing of functional languages 13:12:46 -!- sarimurat [n=salim@139.179.197.15] has quit [Read error: 110 (Connection timed out)] 13:13:10 if learning scheme is going to give me that skills, then is worth it, also being in the lisp family attracts me way more than the MLs and Haskell 13:13:52 You should start from square 1 then, not square 2b 13:14:01 Using a book or course? 13:14:06 SICP 13:14:35 what do you mean by the squares? I don't understand why I'm starting from 2b 13:15:02 The bandwagon gets you nowhere that you need to walk to. 13:15:53 alvatar why don't you want to learn haskell? 13:16:12 It's understandable, Haskell is a clusterfuck in some aspects 13:16:17 Jafet: that was a way of talking, not important for me 13:16:45 soupdragon: I'm not interested and doesn't have easy FFI. That's important for me. 13:17:02 ok 13:17:44 watching a talk from Rich hickey I became quite convinced that functional programming has a point 13:18:18 I believe also that best PL as those that are 90% functional, but also let you do some things in a procedural manner 13:18:36 alvatar: You want to try Scheme :-) 13:18:49 Haskell has more beautiful ideas than Scheme because it is mathematically functional 13:18:52 anyway, the most important thing for me now is learning and I want to do it building a plugin so I need good FFI 13:19:00 I see... 13:19:07 well eventually I'll learn Haskell :) 13:19:10 That's debatable, Jafet 13:19:12 Scheme implementations have FFIs. 13:19:29 Haskell is purely functional, Scheme is not, but that really just means there's a perfectly usable purely functional subset of Scheme 13:19:32 Jafet: I know, that' s a good point for scheme 13:19:36 alaricsp, not when you factor in template haskell and glasgow-exts 13:19:39 (unlike C, whose purely functional subset is less useful, etc) 13:19:41 But that's offtopic 13:19:48 but learning a language properly means long time, so you can't become a master of 10 languages 13:20:02 Dunno about glasgow-exts, but is template haskell not something less exciting than Scheme macros? 13:20:34 alvatar: I'm not so sure... once you've learnt all the basic paradigms, new languages tend to boil down to just being new syntax and libraries to learn 13:20:37 alvatar, good, you sound like you understand programming. But I'm not sure about "a plugin" as a new project 13:20:44 alaricsp, I think they're about even. 13:20:56 *nod* 13:21:11 Jafet: I know :) 13:22:00 but is a plugin for a program I made, and the plugin is almost a whole program, i just need to have access from C to its entry point function 13:22:23 of course I'll do little programs first :) 13:22:49 -!- Nshag [n=shag@lns-bzn-37-82-253-12-196.adsl.proxad.net] has quit [Read error: 110 (Connection timed out)] 13:23:08 Nshag [n=shag@lns-bzn-52-82-65-106-119.adsl.proxad.net] has joined #scheme 13:23:09 the only thing I'd like to be able to feel confident about when learning scheme is that i can learn some of the "functional ways of doing things" 13:23:37 They say learning Latin improves your English. 13:24:09 I'll have to learn proper english before Latin ;) 13:24:21 oh, brb 13:24:45 I've been summoned for lunch 13:25:23 alaricsp, not sure I'd consider something without IO ports useful 13:26:38 sarimurat [n=salim@139.179.102.36] has joined #scheme 13:33:22 -!- alvatar [n=Administ@201.23.222.87.dynamic.jazztel.es] has quit [Read error: 104 (Connection reset by peer)] 13:33:34 alvatar [n=Administ@201.23.222.87.dynamic.jazztel.es] has joined #scheme 13:35:42 -!- nothingHappens [n=nothingH@173-31-122-80.client.mchsi.com] has quit [Read error: 110 (Connection timed out)] 13:43:17 jafet: I think it does. I got a "basic Latin for English-speakers" course as a kid, where it teaches you enough Latin that you can break down what's used in the English language 13:43:55 helps a lot with comprehension 13:44:46 For a programmer coming from C though, a more relevant analogy might be using Japanese to learn Hangul 13:45:47 blackened` [n=blackene@ip-89-102-22-70.karneval.cz] has joined #scheme 13:45:49 -!- alvatar [n=Administ@201.23.222.87.dynamic.jazztel.es] has quit ["Leaving."] 13:53:25 rdd [n=user@c83-250-152-128.bredband.comhem.se] has joined #scheme 13:57:46 jeapostrophe [n=jay@69.169.141.110.provo.static.broadweavenetworks.net] has joined #scheme 13:58:46 -!- MrFahrenheit [n=RageOfTh@users-33-31.vinet.ba] has quit [Read error: 110 (Connection timed out)] 14:02:06 -!- Nshag [n=shag@lns-bzn-52-82-65-106-119.adsl.proxad.net] has quit [Read error: 110 (Connection timed out)] 14:04:43 -!- masm [n=masm@bl7-39-130.dsl.telepac.pt] has quit ["Leaving."] 14:06:07 Nshag [n=shag@lns-bzn-43-82-249-160-2.adsl.proxad.net] has joined #scheme 14:11:01 -!- hkBst [n=hkBst@gentoo/developer/hkbst] has quit [Read error: 104 (Connection reset by peer)] 14:14:36 samth [n=samth@c-65-96-168-99.hsd1.ma.comcast.net] has joined #scheme 14:16:31 -!- schmir [n=schmir@mail.brainbot.com] has quit [Remote closed the connection] 14:16:49 schmir [n=schmir@mail.brainbot.com] has joined #scheme 14:17:07 langmartin [n=user@exeuntcha2.tva.gov] has joined #scheme 14:20:16 -!- cky_ is now known as cky 14:23:35 -!- Armageddon00 [n=danking@zerowing.ccs.neu.edu] has quit [verne.freenode.net irc.freenode.net] 14:23:35 -!- klutometis [n=klutomet@klutometis.wikitex.org] has quit [verne.freenode.net irc.freenode.net] 14:23:35 -!- wastrel [n=wastrel@nylug/member/wastrel] has quit [verne.freenode.net irc.freenode.net] 14:23:35 -!- dmpk2k [n=dmpk2k@static-64-115-4-131.isp.broadviewnet.net] has quit [verne.freenode.net irc.freenode.net] 14:23:35 -!- tizoc [n=user@unaffiliated/tizoc] has quit [verne.freenode.net irc.freenode.net] 14:23:36 Armagedd1n00 [n=danking@zerowing.ccs.neu.edu] has joined #scheme 14:23:38 klutometis [n=klutomet@klutometis.wikitex.org] has joined #scheme 14:23:43 wastrel [n=wastrel@nylug/member/wastrel] has joined #scheme 14:23:46 dmpk2k [n=dmpk2k@64.115.4.131] has joined #scheme 14:23:51 tizoc` [n=user@li25-112.members.linode.com] has joined #scheme 14:24:06 -!- klutometis is now known as Guest93566 14:24:54 -!- tizoc` is now known as tizoc 14:25:43 -!- lancy_ [n=nullpo@221x252x46x83.ap221.ftth.ucom.ne.jp] has quit [Read error: 110 (Connection timed out)] 14:29:01 -!- MichaelRaskin [n=MichaelR@195.91.224.225] has quit [Remote closed the connection] 14:29:16 MichaelRaskin [n=MichaelR@195.91.224.225] has joined #scheme 14:32:41 alvatar [n=Administ@201.23.222.87.dynamic.jazztel.es] has joined #scheme 14:32:50 hello again! 14:33:20 I hope that I didn't miss any message about functional programming conversation earlier on 14:33:35 my computer was switched off when I came back 14:36:13 rdd` [n=rdd@c83-250-152-128.bredband.comhem.se] has joined #scheme 14:39:21 -!- george_ [n=george@189.13.102.17] has quit [Read error: 110 (Connection timed out)] 14:48:21 -!- brandelune [n=suzume@pl571.nas982.takamatsu.nttpc.ne.jp] has quit [] 14:48:26 nothingHappens [n=nothingH@67.41.108.251] has joined #scheme 14:51:30 -!- rdd [n=user@c83-250-152-128.bredband.comhem.se] has quit [Read error: 110 (Connection timed out)] 14:51:50 -!- samth [n=samth@c-65-96-168-99.hsd1.ma.comcast.net] has quit [Read error: 60 (Operation timed out)] 14:51:51 -!- rdd` is now known as rdd 14:57:38 bytecolo` [n=user@166.190.132.153] has joined #scheme 14:59:58 -!- jeapostrophe [n=jay@69.169.141.110.provo.static.broadweavenetworks.net] has quit [] 15:00:01 -!- bytecolor [n=user@166.134.231.192] has quit [Nick collision from services.] 15:01:26 -!- bytecolo` is now known as bytecolor 15:20:14 -!- soupdragon [n=somebody@unaffiliated/fax] has left #scheme 15:22:50 -!- pbusser [n=pbusser@ip138-238-174-82.adsl2.static.versatel.nl] has quit [Remote closed the connection] 15:24:03 pbusser [n=pbusser@ip138-238-174-82.adsl2.static.versatel.nl] has joined #scheme 15:34:37 -!- dsmith [n=dsmith@cpe-173-88-196-177.neo.res.rr.com] has quit [Read error: 110 (Connection timed out)] 15:35:57 Fare [n=Fare@c-24-218-127-11.hsd1.ma.comcast.net] has joined #scheme 15:41:44 -!- sarimurat [n=salim@139.179.102.36] has quit [Read error: 110 (Connection timed out)] 15:47:48 jeapostrophe [n=jay@69.169.141.110.provo.static.broadweavenetworks.net] has joined #scheme 15:52:37 huyslogic [n=Huy@192.206.112.168] has joined #scheme 15:52:57 Mikaeel_Mohamed [n=Mohamdu@129-97-208-113.uwaterloo.ca] has joined #scheme 15:53:43 in gambit-c, is there a way to load libraries like (require *) in plt-scheme? 15:54:25 I've been learning on this platform, and can't seem to find any additional libraries anyways in my folder tree ... 15:54:28 -!- huyslogic [n=Huy@192.206.112.168] has left #scheme 15:54:33 huyslogic [n=Huy@192.206.112.168] has joined #scheme 15:58:06 george_ [n=george@20158177205.user.veloxzone.com.br] has joined #scheme 15:59:13 sarimurat [n=salim@139.179.197.106] has joined #scheme 15:59:37 -!- jeapostrophe [n=jay@69.169.141.110.provo.static.broadweavenetworks.net] has quit [] 16:02:50 -!- reprore [n=reprore@ntkngw356150.kngw.nt.ftth.ppp.infoweb.ne.jp] has quit [Remote closed the connection] 16:09:38 -!- JKGpp [n=juergen@dslb-092-074-112-103.pools.arcor-ip.net] has quit [] 16:11:27 -!- george_ [n=george@20158177205.user.veloxzone.com.br] has quit [Read error: 60 (Operation timed out)] 16:12:25 -!- huyslogic [n=Huy@192.206.112.168] has left #scheme 16:15:34 arquebus [n=shintaro@201.139.156.133.cable.dyn.cableonline.com.mx] has joined #scheme 16:15:58 soupdragon [n=somebody@unaffiliated/fax] has joined #scheme 16:15:59 -!- arquebus [n=shintaro@201.139.156.133.cable.dyn.cableonline.com.mx] has left #scheme 16:16:52 huyslogic [n=Huy@192.206.112.168] has joined #scheme 16:22:07 -!- FufieToo [n=poff@Gatekeeper.vizrt.com] has quit ["Leaving"] 16:27:05 reprore [n=reprore@ntkngw356150.kngw.nt.ftth.ppp.infoweb.ne.jp] has joined #scheme 16:27:14 -!- reprore [n=reprore@ntkngw356150.kngw.nt.ftth.ppp.infoweb.ne.jp] has quit [Read error: 104 (Connection reset by peer)] 16:27:22 _nofear [n=maxwell@201.22.75.100.dynamic.adsl.gvt.net.br] has joined #scheme 16:27:35 reprore [n=reprore@ntkngw356150.kngw.nt.ftth.ppp.infoweb.ne.jp] has joined #scheme 16:29:38 -!- pbusser [n=pbusser@ip138-238-174-82.adsl2.static.versatel.nl] has quit [Remote closed the connection] 16:31:20 -!- Mikaeel_Mohamed [n=Mohamdu@129-97-208-113.uwaterloo.ca] has quit [Read error: 110 (Connection timed out)] 16:32:05 pbusser [n=pbusser@ip138-238-174-82.adsl2.static.versatel.nl] has joined #scheme 16:32:55 -!- borism [n=boris@213-35-234-124-dsl.end.estpak.ee] has quit [Read error: 60 (Operation timed out)] 16:32:57 -!- soupdragon [n=somebody@unaffiliated/fax] has quit [Nick collision from services.] 16:34:16 borism [n=boris@213-35-234-124-dsl.end.estpak.ee] has joined #scheme 16:36:06 -!- Adamant [n=Adamant@unaffiliated/adamant] has quit [] 16:40:28 -!- MichaelRaskin [n=MichaelR@195.91.224.225] has quit [Remote closed the connection] 16:41:26 MichaelRaskin [n=MichaelR@195.91.224.225] has joined #scheme 16:41:32 -!- MichaelRaskin [n=MichaelR@195.91.224.225] has quit [Remote closed the connection] 16:42:07 MichaelRaskin [n=MichaelR@195.91.224.225] has joined #scheme 16:44:06 -!- MichaelRaskin [n=MichaelR@195.91.224.225] has quit [Remote closed the connection] 16:45:32 -!- borism [n=boris@213-35-234-124-dsl.end.estpak.ee] has quit [Read error: 60 (Operation timed out)] 16:45:38 -!- Jafet [n=Jafet@unaffiliated/jafet] has quit [Read error: 110 (Connection timed out)] 16:45:41 MichaelRaskin [n=MichaelR@195.91.224.225] has joined #scheme 16:49:22 -!- huyslogic [n=Huy@192.206.112.168] has left #scheme 16:50:43 -!- pbusser [n=pbusser@ip138-238-174-82.adsl2.static.versatel.nl] has quit [Remote closed the connection] 16:53:07 pbusser [n=pbusser@82.174.238.138] has joined #scheme 16:59:41 -!- leppie [n=lolcow@196-210-254-178.dynamic.isadsl.co.za] has quit [] 17:00:45 chandler, ping? 17:01:40 cky_ [n=cky@h-166-166-109-43.ip.alltel.net] has joined #scheme 17:02:49 ejs [n=eugen@92.49.202.39] has joined #scheme 17:12:35 davazp [n=user@95.Red-83-55-182.dynamicIP.rima-tde.net] has joined #scheme 17:12:43 -!- schmir [n=schmir@mail.brainbot.com] has quit [Remote closed the connection] 17:16:11 hkBst [n=hkBst@gentoo/developer/hkbst] has joined #scheme 17:17:46 arcfide [n=arcfide@fl-76-2-117-102.dhcp.embarqhsd.net] has joined #scheme 17:18:46 MrFahrenheit [n=RageOfTh@users-33-231.vinet.ba] has joined #scheme 17:22:29 r2q2 [n=user@c-24-7-212-60.hsd1.il.comcast.net] has joined #scheme 17:22:43 Wow, paredit mode is becoming really popular 17:25:05 i thought paredit took over the world years ago 17:25:40 -!- cky_ [n=cky@h-166-166-109-43.ip.alltel.net] has quit [Read error: 60 (Operation timed out)] 17:26:56 it certainly took over my heart 17:26:57 -!- alvatar [n=Administ@201.23.222.87.dynamic.jazztel.es] has quit [Read error: 104 (Connection reset by peer)] 17:27:10 alvatar [n=Administ@201.23.222.87.dynamic.jazztel.es] has joined #scheme 17:27:51 I mean its getting popular enough that I encounter it randomly in the wild 17:28:20 -!- cky [n=cky@h-166-166-111-114.ip.alltel.net] has quit [Read error: 110 (Connection timed out)] 17:28:29 It seems like clojure, scheme (obviously) and common lisp have modes which use paredit as a library now. 17:28:37 What, like random encounters? When you beat it, do you get two or three gold points and sometimes a leather shield? 17:29:32 hkBst_ [n=hkBst@gentoo/developer/hkbst] has joined #scheme 17:29:32 a PAREDIT appears! 17:29:42 hit paredit with sword 17:29:50 jeapostrophe [n=jay@lallab.cs.byu.edu] has joined #scheme 17:30:53 No, wait, you attacked a ) weapons cache. 17:32:11 -!- hkBst [n=hkBst@gentoo/developer/hkbst] has quit [Read error: 60 (Operation timed out)] 17:32:36 l(oot) 17:35:30 -!- jimrees [n=jimrees@ita4fw1.itasoftware.com] has quit ["Ex-Chat"] 17:45:24 snearch [n=olaf@g225048113.adsl.alicedsl.de] has joined #scheme 17:49:20 gnomon: more like random walks on the internet graph but yea that too. 17:56:00 jonrafkind [n=jon@c-98-202-82-46.hsd1.ut.comcast.net] has joined #scheme 17:57:14 -!- hkBst_ [n=hkBst@gentoo/developer/hkbst] has quit [Read error: 60 (Operation timed out)] 18:06:42 ecomba [n=ecomba@host86-177-103-105.range86-177.btcentralplus.com] has joined #scheme 18:07:21 saint_cypher [n=saint_cy@adsl-99-2-72-93.dsl.pltn13.sbcglobal.net] has joined #scheme 18:08:37 -!- jeapostrophe [n=jay@lallab.cs.byu.edu] has quit [] 18:13:36 Jafet [n=Jafet@unaffiliated/jafet] has joined #scheme 18:16:47 leppie [n=lolcow@196-210-254-178.dynamic.isadsl.co.za] has joined #scheme 18:23:32 -!- schoppenhauer [n=christop@unaffiliated/schoppenhauer] has quit [Read error: 60 (Operation timed out)] 18:23:39 schoppenhauer_ [n=christop@unaffiliated/schoppenhauer] has joined #scheme 18:23:53 -!- schoppenhauer_ is now known as schoppenhauer 18:27:01 saccade_ [n=saccade@209-6-54-113.c3-0.smr-ubr1.sbo-smr.ma.cable.rcn.com] has joined #scheme 18:31:41 -!- MichaelRaskin [n=MichaelR@195.91.224.225] has quit [Remote closed the connection] 18:32:08 MichaelRaskin [n=MichaelR@195.91.224.225] has joined #scheme 18:53:42 awarrington [n=quassel@officebv.conductor.com] has joined #scheme 18:54:57 A question about generic functions: If I have a module system like Scheme48, and I import a generic function, which methods should that function have? Only those defined in modules I have opened? 18:55:17 (or rather by modules which have been opened directly or indirectly by me) 18:55:55 partisan [n=partisan@121.124.124.117] has joined #scheme 18:56:04 -!- ecomba [n=ecomba@host86-177-103-105.range86-177.btcentralplus.com] has quit [] 19:00:46 mejja [n=user@c-49b6e555.023-82-73746f38.cust.bredbandsbolaget.se] has joined #scheme 19:00:50 -!- _nofear [n=maxwell@201.22.75.100.dynamic.adsl.gvt.net.br] has quit ["Leaving."] 19:10:07 -!- awarrington_ [n=quassel@static-71-249-252-224.nycmny.east.verizon.net] has quit [Connection timed out] 19:10:35 george_ [n=george@20158177205.user.veloxzone.com.br] has joined #scheme 19:11:34 jeapostrophe [n=jay@lallab.cs.byu.edu] has joined #scheme 19:12:43 -!- leppie [n=lolcow@196-210-254-178.dynamic.isadsl.co.za] has quit [Read error: 60 (Operation timed out)] 19:13:18 -!- jeapostrophe [n=jay@lallab.cs.byu.edu] has quit [Client Quit] 19:15:13 mmc [n=mima@ip565374a2.direct-adsl.nl] has joined #scheme 19:20:39 -!- Jafet [n=Jafet@unaffiliated/jafet] has quit [Read error: 110 (Connection timed out)] 19:26:36 slilo [n=user@host-95-189-130-209.pppoe.omsknet.ru] has joined #scheme 19:31:55 good question 19:40:24 -!- nothingHappens [n=nothingH@67.41.108.251] has quit [Read error: 110 (Connection timed out)] 19:42:51 amoe [n=amoe@cpc1-brig13-0-0-cust380.brig.cable.ntl.com] has joined #scheme 19:46:44 -!- amoe [n=amoe@cpc1-brig13-0-0-cust380.brig.cable.ntl.com] has left #scheme 19:47:09 kniu [n=kniu@pool-71-105-70-131.lsanca.dsl-w.verizon.net] has joined #scheme 19:52:21 leppie [n=lolcow@196-210-254-178.dynamic.isadsl.co.za] has joined #scheme 19:57:14 -!- pbusser [n=pbusser@82.174.238.138] has quit [Remote closed the connection] 19:59:22 hi all. does somebody use emacs for scheme programming? 20:03:05 -!- leppie [n=lolcow@196-210-254-178.dynamic.isadsl.co.za] has quit [] 20:03:08 -!- alvatar [n=Administ@201.23.222.87.dynamic.jazztel.es] has quit ["Leaving."] 20:04:27 kind of 20:08:31 what scheme you use? 20:10:58 mzscheme, mostly 20:11:11 common lisp, but it's not a very good scheme. 20:11:52 :) 20:12:23 I cannot make completion work 20:13:28 I like completion in drscheme, but I use emacs for everything... :) 20:15:29 mrsolo [n=mrsolo@nat/yahoo/x-lqbhqewjbxuwnwyf] has joined #scheme 20:21:04 jlongster [n=user@c-68-59-187-95.hsd1.tn.comcast.net] has joined #scheme 20:21:40 -!- jlongster [n=user@c-68-59-187-95.hsd1.tn.comcast.net] has quit [Client Quit] 20:21:55 slilo: There are ways of getting name completion to work with Emacs, but as I recall, things aren't so easy as just turning it on. 20:25:08 I don't seek easy way. And don't ask to complete solution. May be, some advices. 20:25:20 schmir [n=schmir@p54A93F2F.dip0.t-ipconnect.de] has joined #scheme 20:27:23 -!- sloyd [i=sloyd@nakedlogic.nl] has quit [Read error: 113 (No route to host)] 20:28:38 look for elisp scripts on eli's website 20:28:51 if anyone has anything running, eli does 20:29:06 barzilay.org 20:29:26 There's also scheme-complete.el by foof over at synthcode.com 20:29:48 ok. Thank you. 20:30:07 visof [n=visof@41.238.235.245] has joined #scheme 20:31:25 cephalopod [i=42a1d3ae@gateway/web/freenode/x-dqhlhsphqcalnuvc] has joined #scheme 20:32:46 -!- reprore [n=reprore@ntkngw356150.kngw.nt.ftth.ppp.infoweb.ne.jp] has quit [Remote closed the connection] 20:37:33 -!- Fare [n=Fare@c-24-218-127-11.hsd1.ma.comcast.net] has quit ["Leaving"] 20:49:53 -!- schmir [n=schmir@p54A93F2F.dip0.t-ipconnect.de] has quit [Remote closed the connection] 20:50:01 schmir [n=schmir@p54A93F2F.dip0.t-ipconnect.de] has joined #scheme 20:51:00 -!- kniu [n=kniu@pool-71-105-70-131.lsanca.dsl-w.verizon.net] has quit [Read error: 110 (Connection timed out)] 20:54:23 -!- Modius [n=Modius@cpe-70-123-130-159.austin.res.rr.com] has quit [Read error: 54 (Connection reset by peer)] 20:55:23 -!- certainty [n=closure@dslc-082-083-151-140.pools.arcor-ip.net] has quit ["Lost terminal"] 20:56:29 -!- visof [n=visof@41.238.235.245] has quit [Connection timed out] 20:56:56 -!- Edico [n=Edico@unaffiliated/edico] has quit ["Ex-Chat"] 20:58:59 schmir` [n=schmir@p54A93F2F.dip0.t-ipconnect.de] has joined #scheme 21:00:25 jmcphers [n=jmcphers@218.185.108.156] has joined #scheme 21:00:29 samth [n=samth@punge.ccs.neu.edu] has joined #scheme 21:03:03 nothingHappens [n=nothingH@173-31-122-80.client.mchsi.com] has joined #scheme 21:07:03 -!- langmartin [n=user@exeuntcha2.tva.gov] has quit [Remote closed the connection] 21:07:42 johnnowak [n=johnnowa@user-387hdp5.cable.mindspring.com] has joined #scheme 21:08:06 -!- nowhere_man [n=pierre@lec67-4-82-235-57-28.fbx.proxad.net] has quit [Read error: 113 (No route to host)] 21:13:37 timmcd [n=Adium@97-117-100-106.slkc.qwest.net] has joined #scheme 21:13:40 Hello 21:14:42 -!- snorble [n=none@s83-179-14-105.cust.tele2.se] has left #scheme 21:15:16 hello 21:15:37 -!- cephalopod [i=42a1d3ae@gateway/web/freenode/x-dqhlhsphqcalnuvc] has quit ["Page closed"] 21:16:55 snorble [n=snorble@s83-179-14-105.cust.tele2.se] has joined #scheme 21:17:12 hello 21:18:26 nowhere_man [n=pierre@lec67-4-82-235-57-28.fbx.proxad.net] has joined #scheme 21:19:07 I'm going through the 'Casting SPELs in lisp', but using PLT Scheme. I'm trying to recreate the 'game-cation' macro... 21:19:08 http://pastie.org/766574 21:19:13 I have that, and I am getting the shown error. 21:19:15 Can anyone help me out? 21:22:00 _nofear [n=_nofear@189.115.8.102] has joined #scheme 21:23:06 -!- schmir [n=schmir@p54A93F2F.dip0.t-ipconnect.de] has quit [Read error: 113 (No route to host)] 21:23:24 timmcd, why is there a ' before `command'? 21:24:26 -!- schmir` [n=schmir@p54A93F2F.dip0.t-ipconnect.de] has quit [Read error: 113 (No route to host)] 21:25:24 well I'm not sure. It seems if I remove it, I get: define-syntax-rule: invalid pattern in: doweld 21:26:03 -!- snearch [n=olaf@g225048113.adsl.alicedsl.de] has quit ["Ex-Chat"] 21:26:30 leppie [n=lolcow@196-210-254-178.dynamic.isadsl.co.za] has joined #scheme 21:28:37 -!- snorble [n=snorble@s83-179-14-105.cust.tele2.se] has quit [Read error: 60 (Operation timed out)] 21:32:20 kniu [n=kniu@pool-71-105-70-131.lsanca.dsl-w.verizon.net] has joined #scheme 21:34:31 Adamant [n=Adamant@unaffiliated/adamant] has joined #scheme 21:40:49 -!- gnomon [n=gnomon@CPE0022158a8221-CM000f9f776f96.cpe.net.cable.rogers.com] has quit [Read error: 104 (Connection reset by peer)] 21:41:07 gnomon [n=gnomon@CPE0022158a8221-CM000f9f776f96.cpe.net.cable.rogers.com] has joined #scheme 21:44:22 -!- timmcd [n=Adium@97-117-100-106.slkc.qwest.net] has quit ["Leaving."] 21:45:17 -!- awarrington [n=quassel@officebv.conductor.com] has quit [Remote closed the connection] 21:48:00 Mikaeel_Mohamed [n=Mohamdu@129-97-208-188.uwaterloo.ca] has joined #scheme 21:59:38 snorble [n=snorble@s83-179-14-105.cust.tele2.se] has joined #scheme 22:01:53 nullpo [n=nullpo@221x252x46x83.ap221.ftth.ucom.ne.jp] has joined #scheme 22:14:46 -!- Armagedd1n00 is now known as Armageddon00 22:18:30 jetuser [i=jetuser@seraph.rh.rit.edu] has joined #scheme 22:18:36 i have a random question 22:18:44 can anyone tell me why (eq? (make-expt '(+ 3 2) 4) '(^ '(+ 3 2) 4)) would return false 22:18:47 when i know they're equal? 22:19:02 the only thing i can think of is the fact there's a list in a list 22:19:46 Replace EQ? with EQV? 22:19:47 jetuser, what is MAKE-EXPT? 22:19:56 it is possibly related to this behavior of eq?: (eq? '(1 2) '(1 2)) -> #f 22:20:00 What does make-expt do? 22:20:00 its a function that basically makes our version of exponents 22:20:14 let me paste 22:20:14 in general two lists are not going to be equal. 22:20:14 hold on 22:20:27 (define (make-expt e n) 22:20:27 (cond 22:20:27 ((= n 0) 1) 22:20:27 ((= n 1) e) 22:20:27 (else (list '^ e n)))) 22:20:29 Please paste into a service, not into the channel, unless it's really short. 22:20:32 Arrgh. 22:20:32 eq? I mean. 22:20:32 They will be equal? though. 22:20:33 sorry for the spam haha sorry 22:20:38 Only equal? checks recursively, I think. 22:21:05 Right, elly's got the straight of it here. 22:21:13 Just use equal? instead of eq? 22:21:14 i still have the error even with equal? 22:22:15 oh hm ' wont work 22:22:20 do you? 22:22:25 it treats it as a literal, i suppose i have to do it manually then 22:22:39 jetuser: You have a redundant ' 22:22:44 hm... 22:22:52 there we go yeah 22:23:07 thanks though 22:24:21 aack [n=user@a83-161-214-179.adsl.xs4all.nl] has joined #scheme 22:26:17 jetuser: by "thanks though" do you mean that it's still not working? 22:28:15 -!- alexsuraci [n=alex@pool-71-188-133-67.aubnin.fios.verizon.net] has quit ["Lost terminal"] 22:28:56 alexsuraci [n=alex@pool-71-188-133-67.aubnin.fios.verizon.net] has joined #scheme 22:30:11 yeah I just noticed. 22:30:11 rudybot: eval (define (make-expt e n) (cond ((= n 0) 1) ((= n 1) e) (else (list '^ e n)))) 22:30:11 rudybot: eval (equal? (make-expt '(+ 3 2) 4) '(^ (+ 3 2) 4)) 22:30:11 synx: ; Value: #t 22:30:14 rudybot doesn't love me anymore :( 22:30:16 alvatar [n=Administ@201.23.222.87.dynamic.jazztel.es] has joined #scheme 22:30:31 rudybot: you came back to me! :D 22:30:31 synx: eh? Try "rudybot: help". 22:31:00 -!- Mikaeel_Mohamed [n=Mohamdu@129-97-208-188.uwaterloo.ca] has quit [Read error: 110 (Connection timed out)] 22:34:41 Mikaeel_Mohamed [n=Mohamdu@129-97-208-188.uwaterloo.ca] has joined #scheme 22:36:48 -!- aack [n=user@a83-161-214-179.adsl.xs4all.nl] has left #scheme 22:42:27 -!- Belaf [n=campedel@net-93-144-17-71.t2.dsl.vodafone.it] has left #scheme 22:45:59 george__ [n=george@189.13.129.181] has joined #scheme 22:52:38 -!- ejs [n=eugen@92.49.202.39] has quit [Read error: 113 (No route to host)] 22:54:56 -!- Mikaeel_Mohamed [n=Mohamdu@129-97-208-188.uwaterloo.ca] has quit [Read error: 110 (Connection timed out)] 22:58:49 schmir [n=schmir@p54A93F2F.dip0.t-ipconnect.de] has joined #scheme 22:58:59 rudybot: eval (define (scale-poly poly num)(if (= (length poly) 1)(* (car poly) num)(cons (list (* (car poly) num)) (scale-poly (cdr poly) num)))) 22:58:59 jetuser: your sandbox is ready 22:59:25 rudybot: eval (equal? (scale-poly '(2 3) 2) '(4 6)) 22:59:26 jetuser: ; Value: #f 22:59:46 ok so.... why exactly is it #f, from what i can tell the function returns pair..... 22:59:51 but arent they semantically the same thing? 23:02:31 or am i missing something here? 23:05:13 -!- george_ [n=george@20158177205.user.veloxzone.com.br] has quit [Read error: 110 (Connection timed out)] 23:09:54 jetuser: You're using `cons' wrong. You need to go over basic list stuff. 23:13:15 -!- kniu [n=kniu@pool-71-105-70-131.lsanca.dsl-w.verizon.net] has quit [Read error: 110 (Connection timed out)] 23:13:32 well i got it 23:13:35 i changed cons to list 23:18:44 but how was i using it wrong 23:19:10 RageOfThou [n=RageOfTh@users-55-205.vinet.ba] has joined #scheme 23:20:13 jetuser: Trying to randomly change `cons' to `list' (and later to `append') will not get you far. 23:20:24 Are you trying to follow SICP? 23:21:13 list fixed my problem 23:21:20 i had another typo in my first eval 23:21:23 it has been since fixed 23:21:33 Are you trying to follow SICP? 23:21:39 im not sure what that is 23:22:14 A textbook. 23:22:47 "Structure and Interpretation of Computer Programs". 23:23:57 nope 23:24:09 not that book, unless that happens to be where my teacher got this question from 23:24:19 What do you use? 23:24:53 Essentials of Programming Language 23:24:59 Languages* 23:27:47 -!- davazp [n=user@95.Red-83-55-182.dynamicIP.rima-tde.net] has quit [Remote closed the connection] 23:30:39 kniu [n=kniu@pool-71-105-70-131.lsanca.dsl-w.verizon.net] has joined #scheme 23:31:17 jetuser: In that case, it has some explanations in the beginning on lists. You should go over that. 23:33:50 -!- annodomini [n=lambda@wikipedia/lambda] has quit [] 23:36:45 -!- MrFahrenheit [n=RageOfTh@users-33-231.vinet.ba] has quit [Connection timed out] 23:38:20 rudybot: help 23:38:21 slilo: help [], version, quote, source, seen , uptime, t8 ..., init [], eval ..., give ..., apropos ..., desc , doc , later "tell" ... 23:39:25 rudybot: eval (+ 1 2) 23:39:25 slilo: your sandbox is ready 23:39:26 slilo: ; Value: 3 23:40:48 rudybot: eval ((lambda (x) (x x)) (lambda (x) (x x))) 23:40:51 slilo: error: with-limit: out of time 23:42:12 actually never mind eli you are right it is dead 23:42:21 well it only works for the pair i mentioned but beyond that it dies 23:45:01 i understand cons makes a pair with car of arg1 and cdr of arg2 23:45:12 -!- mmc [n=mima@ip565374a2.direct-adsl.nl] has quit [Read error: 60 (Operation timed out)] 23:45:13 but im not sure how to enforce that the actual result is still a list not a pair 23:45:23 i know technically a list is a massive pair 23:47:13 so im not quite sure what to do about my 2 element list problem 23:47:19 how is a pair bigger than another? 23:48:12 well 23:48:22 i meant it as its a pair with the 2nd element a pair 23:48:26 and so on 23:50:18 the fixed point with respect to y of xy + 1 :o 23:51:03 what? 23:53:47 oh duh i think i fixed my problem 23:54:18 jetuser: it's important to remember that a proper list is terminated with a null 23:54:27 e.g. (cons 1 (cons 2 (cons 3 '()))) 23:54:30 yeah 23:54:40 i forgot my condtional for the last one just returned a number, not a proper list 23:55:32 jetuser: just expressing the type of a list in a rather obscure manner :)