00:05:25 -!- Fare [n=Fare@ita4fw1.itasoftware.com] has quit ["Leaving"] 00:06:39 -!- Quadrescence [n=quad@unaffiliated/quadrescence] has quit [No route to host] 00:19:55 davazp [n=user@56.Red-79-153-148.dynamicIP.rima-tde.net] has joined #scheme 00:21:53 Quadrescence [n=quad@unaffiliated/quadrescence] has joined #scheme 00:23:24 -!- kenpp [n=kenpp@84.92.70.37] has quit [Connection timed out] 00:29:13 hrmm. anyone actually familiar with scheme have any suggestions for ways to tighten the code in http://comonad.com/scheme/monads/curried.scm ? 00:31:46 I found a macro by Piet Delport that purports to do much the same thing, but doesn't seem to deal with passing surplus arguments along 00:39:31 -!- kniu [n=kniu@ELMUNDO.RES.CMU.EDU] has quit [Read error: 60 (Operation timed out)] 00:40:17 -!- db_dbus [n=Bob@pool-71-112-117-125.sttlwa.dsl-w.verizon.net] has quit [Read error: 110 (Connection timed out)] 00:44:20 -!- incubot [i=incubot@klutometis.wikitex.org] has quit [Read error: 104 (Connection reset by peer)] 00:45:38 incubot [i=incubot@klutometis.wikitex.org] has joined #scheme 00:48:29 Adman65_ [n=Adman65@m310436d0.tmodns.net] has joined #scheme 00:50:20 Someone help me write a very simple loop? I just want to print out the all the things in a list. Im using PLTScheme. http://pastie.org/598432 00:53:56 -!- subversus [i=elliot@loveturtle.net] has quit [Remote closed the connection] 00:54:58 Adman65_: So, a list can be one of two things: Either '() or (cons a b), where a is anything and b is another list. 00:55:27 What you need to do is write a function that checks which is true of the list it is given, and takes the appropriate action for each. 00:56:15 Adman65_: Go ahead and write the skeleton for that function, just putting "..." where those actions would be. 00:56:26 haesbaert [i=haesbaer@c925a8c5.virtua.com.br] has joined #scheme 00:59:02 reprore [n=reprore@EM114-48-5-129.pool.e-mobile.ne.jp] has joined #scheme 00:59:44 -!- Poeir [n=Poeir@c-98-222-133-165.hsd1.il.comcast.net] has quit ["This computer has gone to sleep"] 01:01:06 TimMc, im confused on why I have to do that 01:01:12 Poeir [n=Poeir@c-98-222-133-165.hsd1.il.comcast.net] has joined #scheme 01:02:05 Adman65_: It's a tried and true technique for learning to code in Scheme. :-) 01:03:02 http://htdp.org/ <-- This textbook introduces it as the "design recipe". 01:04:12 Not the only way, of course! This one is very data-focused, but that's good for learning about recursive data structures (like lists.) 01:04:35 wouldn't (map display list) be fine? < 01:04:49 or the return values are problematic? 01:04:49 -!- haesbaert [i=haesbaer@c925a8c5.virtua.com.br] has quit [Remote closed the connection] 01:04:56 that would be fine 01:05:09 but im trying to learn to program in scheme, starting with some basics 01:05:24 Adman65_: you've got an extra pair of parentheses in there--parens aren't sequence groupers in scheme 01:05:43 "begin" is what you want 01:05:50 Adman65_: Oops, I didn't see your paste! (Thanks, zbigniew.) 01:06:12 *TimMc* feels very silly indeed 01:06:31 where were the extra set of parens? 01:06:52 Adman65_: well, (...) is a procedure call 01:07:36 you can't sequence calls like you would using {...} in C 01:07:37 the () around the display...loop ? 01:08:01 Adman65_: did you put that there? 01:08:32 the parens? 01:09:08 yes, that parens you mentioned around the display...loop, did you put that there? 01:09:31 ya 01:09:39 ok, what was your reasoning? 01:09:40 Adman65_: Where you have "((display" you need "(begin (display" 01:09:51 *zbigniew* facepalms 01:09:55 eep 01:10:00 have a nice day 01:10:24 Adman65_: either take TimMc's advice verbatim or i can explain if you care 01:10:36 I can't brain today. 01:10:47 zbigniew: I know that the things in a list are all evaluated in a sequence so I thought that would work 01:10:49 i accidentally the whole solution 01:11:29 Adman65_: kind of right--they are evaluated, not necessarily in any particular order 01:11:47 zbigniew: Well, I was trying to clarify your earlier statement about "begin", and just as I hit [enter] I saw your 21:09:40 statement... too late. 01:11:49 Adman65_: but (x y z) is a procedure call to x with arguments y and z 01:11:58 oh ya 01:12:05 that makes sense for the error then 01:12:14 yes (display (car ls)) 01:12:23 displays 1 but returns nothing 01:12:28 "void" 01:12:33 so using begin is the only execute things in sequence like that ? 01:13:00 Adman65_: begin or anywhere there is an "implicit" begin 01:13:10 like, the body of a function 01:13:22 so conversely, if i defined a lambda it would work? 01:13:26 or a COND statement which is often how you write what you want here 01:14:05 well, you would have to define a lambda and then call it 01:14:24 but, remember, LET is just lambda in disguise 01:14:24 i see 01:14:39 Ya i knew that from reading this book I checked out from the library 01:14:42 rudybot: eval (let () (display 1) (display 2) (display 3)) 01:14:43 zbigniew: your sandbox is ready 01:14:43 zbigniew: ; stdout: "123" 01:15:12 lets see if I can get this write with cond now 01:15:14 right* 01:15:48 in the body of let, everything is sequenced in left-to-right order. it's pretty close (but not exactly) equivalent to BEGIN there 01:17:08 zbigniew: How does it differ? 01:17:36 (I shall stick to asking questions until I have a full 9 hours of sleep.) 01:19:46 rudybot: (begin (let () (define foo 3) (display foo)) (display foo)) 01:19:46 zbigniew: eh? Try "rudybot: help". 01:19:47 hmm, I thought you said using cond started an implicit begin? 01:19:53 rudybot: eval (begin (let () (define foo 3) (display foo)) (display foo)) 01:19:53 zbigniew: error: reference to undefined identifier: foo 01:20:02 rudybot: eval (begin (begin (define foo 3) (display foo)) (display foo)) 01:20:03 zbigniew: ; stdout: "333" 01:20:07 TimMc: ^^^ 01:20:31 Adman65_: sorry, i gotta run for the train, I will be back in an hour 01:20:38 *TimMc* eyes rudybot cautiously 01:21:18 PLT yelled at me for putting a define in a begin. 01:21:25 http://pastie.org/598432 01:22:11 kniu [n=kniu@SHADYROUTE.RES.CMU.EDU] has joined #scheme 01:23:02 Adman65_: Getting the same error as before, yes? 01:23:45 varlon [i=roman@80.92.251.138] has joined #scheme 01:24:11 ya 01:24:48 TimMc: in what language? 01:25:02 synx: Module #lang scheme 01:25:31 I almost certainly missed some subtlety given my sleep-deprived state. 01:25:42 huh... 01:25:46 hi :-) I have a little proble, so, I trying to use DrScheme (it so pretty:)), but I don't know how to back to editor by hotkeys, after running by c:T. may be you're now? :-) 01:26:06 * know 01:26:09 Doesn't give me any warnings. 01:26:43 defines not at the top-level are retarded though. They make the syntax so you have to put all defines at the beginning of the expression. 01:26:48 synx: Yeah, *zbigniew*'s code works fine. :-/ I don't remember what I had before. 01:27:28 varlon: c:b or c:k or click "Stop" on the upper right 01:27:34 Heh, I probably had a display before the define. 01:28:05 synx, c:b and c:k is a exit commands 01:28:06 any hints TimMC? Same error as before 01:28:30 I've done that more than once before. 01:28:32 but I want back to editor which in DrScheme 01:28:35 Just do this instead: 01:28:45 (define retarded (display "So this is some status eh\n")) 01:29:22 Adman65_: I don't know if I'm allowed to give hints! I am very... small-brained tonight. 01:30:46 ok, I found... c:k - run, c:e - hide interactions 01:32:04 TimMc pasted "Analogous error" at http://paste.lisp.org/display/86213 01:32:10 ok thanks 01:32:50 Adman65_: In that paste I've replaced each of your expressions (`display`, `newline`, and `loop`) with a simple value. 01:33:22 Do you see why that generates the error it does? 01:34:16 -!- varlon [i=roman@80.92.251.138] has left #scheme 01:34:33 Ya 01:34:42 Adman65_: does (display ...) return a procedure? 01:34:52 so the same problem then, trying to do sequence instructions 01:34:58 Adman65_: Exactly. 01:35:23 so, have to use begin then I guess 01:35:29 cond implicitly wraps it in a begin. Just remove the extra parentheses. 01:35:47 no 01:36:09 incubot: At the symposium I thought one of the speakers was talking about "animal farm", not "a-normal form". 01:36:13 the compile farm is relatively neat 01:36:27 (if a (begin b c d) (begin e f g)) => (cond (a b c d) (else e f g)) 01:37:11 hmmm 01:40:50 synx: I'm still not comfortable using "implicit" sequencing, so I still use (begin) when I have a multi-expression body. 01:41:34 http://pastie.org/598432 ? 01:43:06 ... 01:43:31 well I'll be snookered. I guess cond does require you use begin. :p 01:43:44 well 01:43:50 I find that kind of anal... could swear I used cond more flexibly before. 01:43:50 im on PLTscheme if that matters 01:44:13 What is this Erlang? Afraid of a little sequence? sheesh... 01:44:35 ...wait 01:44:45 ... 01:44:47 Adman65_: That second one doesn't give me any error. 01:45:00 "expected a clause with one question and one answer," I don't see. 01:45:03 synx: Tim(e) waits for no man! 01:45:16 What language are you using Adman65_? 01:45:23 PLTScheme 01:46:51 no what language in PLTScheme 01:46:59 in DrScheme 01:47:08 It has multiple languages. 01:47:10 oh, advanced student 01:47:14 Aha! 01:47:40 what should I be using? 01:47:45 -!- copumpkin [n=pumpkin@c-24-63-67-154.hsd1.nh.comcast.net] has quit [Read error: 110 (Connection timed out)] 01:47:46 Adman65_: The student languages have restrictions to make students less confused. 01:47:59 lol...hate stuff like that 01:48:07 which, ironically, in certain circumstances, can make students more confused... 01:48:26 i need to go standard mode or something 01:48:48 edwardk: It's not so bad in a classroom context, where the teacher iteratively tells you what they lied about at the last language level. :-P 01:49:08 TimMc: I'll admit, it is downright handy 01:49:09 what mode should i be in? 01:49:23 Adman65_: I *think* Module is the recommended one. 01:50:05 less confused, or more anal 01:50:13 Module is the recommended one. 01:50:16 looks like i need to define a language 01:50:17 blah 01:50:21 I'm diddly dog sure of that. 01:50:22 It requires a little line at the beginnging (e.g. #lang scheme) that selects the *actual* language. 01:50:29 Start your files with #lang for convenience 01:50:37 no 01:50:44 Just use the Module language 01:50:53 and put a line like #lang scheme/base at the top 01:51:01 ok 01:51:03 that works 01:51:22 oh, since people seem to be around now, i'll ask again. any thoughts on how to clean up http://comonad.com/scheme/monads/curried.scm ? (examples of its use in http://comonad.com/scheme/monads/base.scm ) -- i realize the latter is horrible for other reasons. 01:51:50 now to use cond with only 1 expr, so (cond test do) 01:53:07 ok 01:53:08 finally 01:53:12 thanks guys 01:53:13 Adman65_: I think the `unless` or `when` commands might be what you're looking for 01:53:36 Hey, cool, (cond) with no args isn't an error! 01:53:40 sorry for the confusion, Adman65_ 01:54:00 what does it return ._. 01:54:15 TimMc: What's the return type of (cond)? 01:54:24 Is there an r5rs lookup bot? 01:54:35 danking: Unspecified! 01:54:44 rudybot: eval (cond) 01:54:59 incubot: (cond) 01:55:00 # 01:55:19 yay \o/ 01:55:29 incubot: botsnack 01:55:32 have a botsnack 01:55:34 so is scheme intended to be non sequential? 01:56:45 Adman65_: I think the evaluation order is unspecified in the student langauges without mutation, but I'm not qualified to answer that 01:57:14 Adman65_: By "explicit sequencing", I was referring to code readability more than anything else. 01:59:00 i see 01:59:26 i e 01:59:30 Adman65_: If you're referring to the order in which *arugments* are evaluated, that's a different matter. 01:59:38 we'll see what my professor has to say. Trying to get ahead 01:59:40 I /think/ it is left up to the implementation. 02:00:25 i see 02:00:45 my first assignment is to create a scheme implementation of ruby's inject 02:01:15 copumpkin [n=pumpkin@129.170.241.32] has joined #scheme 02:04:35 -!- davazp [n=user@56.Red-79-153-148.dynamicIP.rima-tde.net] has quit [Remote closed the connection] 02:06:55 wtf inject? 02:08:41 wow 02:08:53 inject is a rather hideous syntax for fold 02:09:06 -!- blackened` [n=blackene@ip-89-102-28-224.karneval.cz] has quit [] 02:09:08 in ruby? 02:09:57 inject in ruby, yes. 02:10:07 fold in scheme, or... foldl in plt-scheme 02:10:09 yeah, it's an odd name 02:10:59 Very strange. 02:11:20 I think it should be fold/foldr personally. to specify l in foldl is just silly 02:12:00 amttc [n=alex@adsl-190-188-135.asm.bellsouth.net] has joined #scheme 02:12:11 synx: depends on the language. in haskell. the l is often a pretty bad default. 02:12:40 there could be a foldm (middle) . better specify it! 02:13:11 since there you care more about productive corecursion than optimizing apparent tail calls. 02:13:18 MononcQc: For binary partition reduction! 02:13:27 (I just made that up.) 02:13:38 yeah I have no idea how it could be used 02:13:51 timmc: heh i was going to point somewhat sheepishly to my haskell library for monoidal reducers ;) 02:15:54 And the rain begins! 02:16:22 Riastradh: I found out why there were military helicopters. I'm in Boston, you see... 02:16:41 ...which (as I discovered today) is where Ted Kennedy's funeral will be held. 02:16:49 TimMc: military helicopters? (I'm also in boston) 02:17:02 edwardk: same in lazy scheme really. I wish I could figure lazy languages out more; they sure seem to be nifty! 02:17:03 -!- Adman65_ [n=Adman65@m310436d0.tmodns.net] has quit [] 02:17:33 edwardk: Got buzzed by a military-looking chopper, maybe 100 ft off the ground. A couple of blocks south of the Mass Ave T. 02:18:06 thats one way to liven up your day 02:19:54 wtf 02:20:02 who the heck is Ted Kennedy anyway? 02:20:06 some senator? 02:20:11 synx: Yup. An old one. 02:20:16 I hear thousands of mourners gathered at his grave. 02:20:29 Helluva guy, it seems. 02:20:34 I mean that's like Stalin level popularity. 02:20:57 I hesitate to call any Kennedy a helluva guy, but if you say so... 02:21:08 old dead one apparently 02:21:54 davazp [n=user@56.Red-79-153-148.dynamicIP.rima-tde.net] has joined #scheme 02:22:02 synx: Apparently he was (if not liked) well-respected by people of various political leanings. 02:22:22 I can't tell if that's just posthumous white lies, of course. 02:22:46 It's not like his fellow senators are going to say "Meh, he was a right bastard." 02:30:27 jonrafkind [n=jon@98.202.86.149] has joined #scheme 02:30:50 incubot: Why must my flatmates leave behind *chicken*-flavored Ramen? (And does "flavored" imply what I think it does?) 02:30:51 Error: unbound variable: Why 02:31:29 incubot: Too soon. :-( 02:31:32 current version of Pocket Scheme does not work on the latest Windows Mobile 2003 Pocket PC devices (e.g., Dell Axim, HP iPAQ h1940, or the Russian-language RoverPC). I will correct this as soon as possible 02:32:07 TimMc: It means they don't have a bignum amount of money, that's for sure. 02:33:17 Maybe I can just use the noodles with spaghetti sauce I make. 02:33:41 -!- MononcQc [i=MononcQc@modemcable062.225-20-96.mc.videotron.ca] has quit ["DOWNLOADING NEXT VERSION OF INTERNET"] 02:35:44 bombshelter13_ [n=bombshel@76-10-149-209.dsl.teksavvy.com] has joined #scheme 02:36:50 -!- Nshag [i=user@Mix-Orleans-106-3-6.w193-248.abo.wanadoo.fr] has quit ["Quitte"] 02:36:52 repror___ [n=reprore@EM114-48-213-215.pool.e-mobile.ne.jp] has joined #scheme 02:38:47 MononcQc [n=parseido@modemcable062.225-20-96.mc.videotron.ca] has joined #scheme 02:39:29 ugh... chicken Ramen is the worst. any of those Top Ramen though can be made pretty delish in a pinch 02:39:30 -!- samth [n=samth@c-67-186-134-237.hsd1.ma.comcast.net] has quit ["Leaving"] 02:40:23 just add frozen spinach and lemon juice in with the noodles, then an egg when it boils again. 3min later cool it with some frozen peas. 02:40:54 then HALF a packet of seasoning, some hot sauce for flavor. mmmm 02:41:24 Presto: instant migraine! 02:41:38 ? 02:41:56 MSG does that to me. Ramen is solid MSG. 02:41:57 no it's very calming and filling ~.~ 02:42:15 ohh right 02:42:28 MSG does trigger migranes in a few people. Not me thankfully, it's harmless! 02:43:10 I've been eating some nutritional yeast, which is dried yeast. 02:43:18 mmm yeast 02:43:23 I bet stuff is *full* of MSG. 02:43:40 (inject "that") 02:44:45 It would probably do it to me as well. I suspect anything with enough free glutamaic acid would. 02:45:35 I hear that "autolyzed yeast extract" is a code word for MSG, since that's something yeast produce when they... autolyze. 02:46:04 Tricky labellers. 02:46:29 Anyway, this stuff is delicious, which means you probably can't have it, chandler. 02:49:07 *edwardk* doesn't miss ramen 02:50:15 just don't use the flavor packet, then you get 0 MSG 02:50:40 I bet there are good homemade instant ramen recipes if you have a food drier. 02:51:23 synx: That's what the exhaust manifold is for. 02:51:36 of course fresh ramen is the best, but it's a pain to make, and good luck finding ingredients outside Japan. 02:51:38 There are more efficient ways of buying noodles, and plenty of interesting sauces that can be applied separately. I'm preferential to a good spicy vodka sauce. 02:51:51 but the flavor packet was the only good part. 02:52:18 I once ate half a bowl of ramen without realizing I forgot the flavor packet. All those vegetables I add do a lot. 02:53:19 when I put regular like... fettucine noodles in soup, it always ends up tasting sticky and sour, sort of unappealing. :/ 02:53:53 tjafk2 [n=timj@e176212156.adsl.alicedsl.de] has joined #scheme 02:53:56 have yet to get fried noodles to work right too. always sticks together and gets mushy instead of clarified. 02:54:14 you didn't salt the water enough 02:55:01 salt the water? ._. 02:55:05 thought that was just for flavor 02:55:46 -!- reprore [n=reprore@EM114-48-5-129.pool.e-mobile.ne.jp] has quit [Connection timed out] 02:56:48 No, it prevents that sticky and sour thing. Also be careful not to overcook the pasta. 02:57:46 right, because if you boil the pasta, and then fry it, it's cooking it twice so easy to overcook 02:58:50 la la la 02:59:21 *edwardk* notes that the minimalism and lack of (type) safty associated with scheme also seems to apply to schemer's choice of diet. As a Haskeller, I must point out that Ramen :: Food -- fails to typecheck. 02:59:31 ,yow 02:59:32 incubot: if you boil the pasta, and then fry it, it's cooking it twice so easy to overcook 02:59:36 pasta maker feeds wtc's body; he, her soul 02:59:38 huh? 02:59:45 ,,yow 02:59:58 I've heard a lot of controversy on the subject of how much water to use. I recall reading an article recently by someone who had tried cooking pasta in succesively smaller portions of water, and was able to cook with just enough water to wet the pasta and boil. 03:00:14 I'm still not entirely convinced type is so important. 03:00:34 However, I believe the ultimate conclusion was that it was much easier to control the boiling if a generous amount of water was used. 03:00:38 chandler: i learned from Good Eats to always use a lot of water 03:00:51 Yes; that's my strategy as well. 03:00:57 Coming from a python background, it seems like if an object is capable of performing some task, then it doesn't matter what it is. 03:01:07 synx: right up until you go to consume it ;) 03:01:11 I think the reasoning is that it makes it easier to avoid over- or under-cooking. 03:01:12 You wind up with not very nice pasta that way. There's something funky about the starchy water remaining on the noodle if you don't use enough. 03:01:29 Are we cooking dry or fresh made? 03:01:42 Dry, in my case. 03:01:46 edwardk: no, if it's capable of being consumed, then I just consume it right? 03:01:55 or are you still talking about pasta 03:01:58 I haven't tried less than a generous amount of water myself. 03:02:01 I thing you still benefit from generous water. 03:02:07 snap! 03:02:36 Yes; this was for academic interest, not for actual practice. Much like Haskell, now that I think about it. 03:02:42 Made some pork+carrots+wine noodle thing this evening. 03:04:35 synx: mixing metaphors a bit, that said, while i agree with the general principle of duck typing espoused by pythonistas, it can sometimes lead to brittle code that plays a little fast and loose with their assumptions about the internals of other libraries, or very often to complete codepaths that just could never actualy be executed because the rest of the library doesn't tend to use the object that way. (witness: large swaths of zope/plone) 03:05:05 chandler: touche ;) 03:05:31 caoliver: Sounds delicious. I had just chicken and rice, but a good Riesling redeemed it. 03:05:33 chandler: Ouch! 03:08:39 -!- kniu [n=kniu@SHADYROUTE.RES.CMU.EDU] has quit [Read error: 110 (Connection timed out)] 03:09:04 -!- tjafk1 [n=timj@e176215211.adsl.alicedsl.de] has quit [Read error: 110 (Connection timed out)] 03:09:44 Man, I had a reverse meal-day. 03:10:46 Breakfast was hot pizza from the corner pizza shop. Lunch was a cold quinoa-and-veggies thing I whipped up. Dinner was cold cereal with milk. >_< 03:10:52 Reverse meal? I'm not sure I wish to hear an explanation. 03:11:14 Ok. I had a quite different and distressing image. 03:11:30 caoliver: Please note the careful hyphenation. 03:11:54 And kerning! >___> 03:19:19 TimMc: I do hope you at least had a stout to go with that cereal. 03:20:13 chandler: Does part of a bar of dark chocolate count? (I don't like alcohol.) 03:21:03 Well, there you go. That's better than just cereal for sure. 03:24:14 -!- jeapostrophe [n=jay@69.169.141.110.provo.static.broadweavenetworks.net] has quit [] 03:27:37 -!- caoliver [n=oliver@75-134-208-20.dhcp.trcy.mi.charter.com] has quit [Read error: 104 (Connection reset by peer)] 03:28:12 caoliver [n=oliver@75-134-208-20.dhcp.trcy.mi.charter.com] has joined #scheme 03:29:10 -!- repror___ [n=reprore@EM114-48-213-215.pool.e-mobile.ne.jp] has quit [Remote closed the connection] 03:30:16 -!- caoliver [n=oliver@75-134-208-20.dhcp.trcy.mi.charter.com] has left #scheme 03:45:33 phax [n=phax@unaffiliated/phax] has joined #scheme 03:46:37 kniu [n=kniu@ELMUNDO.RES.CMU.EDU] has joined #scheme 03:48:46 iijj12 [n=aseasd2s@p4241-ipbfp1101fukuokachu.fukuoka.ocn.ne.jp] has joined #scheme 03:48:47 -!- iijj12 [n=aseasd2s@p4241-ipbfp1101fukuokachu.fukuoka.ocn.ne.jp] has quit [Client Quit] 04:09:54 arcfide [n=arcfide@adsl-99-14-211-8.dsl.bltnin.sbcglobal.net] has joined #scheme 04:12:31 -!- phax [n=phax@unaffiliated/phax] has quit [Remote closed the connection] 04:23:37 iijj12 [n=aseas65x@p4241-ipbfp1101fukuokachu.fukuoka.ocn.ne.jp] has joined #scheme 04:27:16 reprore_ [n=reprore@EM114-48-69-95.pool.e-mobile.ne.jp] has joined #scheme 04:29:08 -!- MichaelRaskin [n=MichaelR@195.91.224.225] has quit [Remote closed the connection] 04:29:29 -!- annodomini [n=lambda@wikipedia/lambda] has quit [Client Quit] 04:29:46 MichaelRaskin [n=MichaelR@195.91.224.225] has joined #scheme 04:30:21 -!- amttc [n=alex@adsl-190-188-135.asm.bellsouth.net] has left #scheme 04:57:07 -!- MichaelRaskin [n=MichaelR@195.91.224.225] has quit [Remote closed the connection] 04:57:48 -!- reprore_ [n=reprore@EM114-48-69-95.pool.e-mobile.ne.jp] has quit [Client Quit] 04:58:49 MichaelRaskin [n=MichaelR@195.91.224.225] has joined #scheme 04:59:52 -!- kilimanjaro is now known as h4ck3rgrrrrl 05:01:45 -!- MichaelRaskin [n=MichaelR@195.91.224.225] has quit [Remote closed the connection] 05:02:16 mmc [n=mima@cs137104.pp.htv.fi] has joined #scheme 05:02:23 MichaelRaskin [n=MichaelR@195.91.224.225] has joined #scheme 05:02:43 -!- MononcQc [n=parseido@modemcable062.225-20-96.mc.videotron.ca] has quit ["DOWNLOADING LATEST VERSION OF THE INTERNET"] 05:08:05 -!- h4ck3rgrrrrl is now known as kilimanjaro 05:42:52 -!- jonrafkind [n=jon@98.202.86.149] has quit [Read error: 110 (Connection timed out)] 05:43:20 -!- davazp [n=user@56.Red-79-153-148.dynamicIP.rima-tde.net] has quit [Remote closed the connection] 05:53:35 -!- copumpkin [n=pumpkin@129.170.241.32] has quit [] 06:08:37 drybowser6 [n=drybowse@ppp-70-226-204-171.dsl.spfdil.ameritech.net] has joined #scheme 06:10:42 -!- drybowser6 [n=drybowse@ppp-70-226-204-171.dsl.spfdil.ameritech.net] has quit [Client Quit] 06:38:45 reprore [n=reprore@EM114-48-47-119.pool.e-mobile.ne.jp] has joined #scheme 06:41:19 copumpkin [n=pumpkin@c-24-63-67-154.hsd1.nh.comcast.net] has joined #scheme 06:53:45 -!- reprore [n=reprore@EM114-48-47-119.pool.e-mobile.ne.jp] has quit [Client Quit] 06:58:06 jewel_ [n=jewel@dsl-242-129-207.telkomadsl.co.za] has joined #scheme 07:12:37 -!- arcfide [n=arcfide@adsl-99-14-211-8.dsl.bltnin.sbcglobal.net] has left #scheme 07:22:29 -!- MichaelRaskin [n=MichaelR@195.91.224.225] has quit [Read error: 113 (No route to host)] 07:26:13 -!- Summermute [n=scott@c-68-55-207-173.hsd1.dc.comcast.net] has quit [] 07:31:17 -!- mmc [n=mima@cs137104.pp.htv.fi] has quit [Read error: 110 (Connection timed out)] 07:36:32 MichaelRaskin [n=MichaelR@195.91.224.225] has joined #scheme 07:52:49 -!- jewel_ [n=jewel@dsl-242-129-207.telkomadsl.co.za] has quit [Read error: 113 (No route to host)] 07:54:15 -!- bombshelter13_ [n=bombshel@76-10-149-209.dsl.teksavvy.com] has quit [Client Quit] 08:05:46 -!- roderic [n=user@129.10.116.245] has quit [Remote closed the connection] 08:19:26 -!- iijj12 [n=aseas65x@p4241-ipbfp1101fukuokachu.fukuoka.ocn.ne.jp] has quit ["Leaving..."] 08:24:50 -!- copumpkin [n=pumpkin@c-24-63-67-154.hsd1.nh.comcast.net] has quit [Read error: 110 (Connection timed out)] 08:29:11 Thomas6 [n=Thomas@dslb-088-069-122-011.pools.arcor-ip.net] has joined #scheme 08:29:54 -!- Thomas6 [n=Thomas@dslb-088-069-122-011.pools.arcor-ip.net] has quit [Client Quit] 08:31:38 HG` [n=HG@xdslhp184.osnanet.de] has joined #scheme 08:38:42 wingo [n=wingo@58.Red-83-37-98.dynamicIP.rima-tde.net] has joined #scheme 08:54:07 hkBst [n=hkBst@gentoo/developer/hkbst] has joined #scheme 09:22:53 rdd [n=user@c83-250-159-12.bredband.comhem.se] has joined #scheme 09:37:30 perdix [n=perdix@sxemacs/devel/perdix] has joined #scheme 09:41:56 -!- kilimanjaro [n=kilimanj@70.116.95.163] has quit [Remote closed the connection] 09:43:59 -!- underspecified [n=eric@softbank220043052007.bbtec.net] has quit [Read error: 104 (Connection reset by peer)] 09:44:04 underspecified [n=eric@softbank220043052007.bbtec.net] has joined #scheme 09:44:52 Pepe_ [n=ppjet@78.114.110.177] has joined #scheme 09:45:45 -!- Pepe__ [n=ppjet@78.114.110.177] has quit [Read error: 113 (No route to host)] 09:50:02 ejs [n=eugen@181-21-135-95.pool.ukrtel.net] has joined #scheme 09:53:55 ski_ [n=md9slj@remote1.student.chalmers.se] has joined #scheme 09:59:57 Jafet [n=Jafet@unaffiliated/jafet] has joined #scheme 10:20:49 -!- underspecified [n=eric@softbank220043052007.bbtec.net] has quit [] 10:33:31 Edico [n=Edico@unaffiliated/edico] has joined #scheme 10:41:17 rcy [n=rcy@d207-6-243-119.bchsia.telus.net] has joined #scheme 10:45:49 is raise-user-error the best way to return a nonzero exit code from a #! plt scheme script? 10:47:43 hotblack23 [n=jh@p5B054B70.dip.t-dialin.net] has joined #scheme 10:52:39 jewel_ [n=jewel@dsl-242-129-207.telkomadsl.co.za] has joined #scheme 10:53:23 lowlycoder [n=x@unaffiliated/lowlycoder] has joined #scheme 10:53:36 can i take a poll; what scheme implementations do you use on a daily basis? 10:54:20 just guile 10:57:33 plt 11:01:34 wingo: what do you like about guile? is it's ffi good? what type of gc does it have? 11:02:35 its gc is bad :) 11:02:41 and the ffi story is not good either :) 11:03:13 but i like it because it's dynamic. has a very fungible feel to it, for me. 11:03:24 what's dynamic about it? 11:03:26 also, it's a long-term relationship :) 11:03:50 if you are interested in more, http://wingolog.org/tags/guile 11:04:21 served by guile, btw 11:16:42 -!- lowlycoder [n=x@unaffiliated/lowlycoder] has quit ["Lost terminal"] 11:36:12 dncksy [n=no@s83-191-238-2.cust.tele2.se] has joined #scheme 11:40:43 mmc [n=mima@cs137104.pp.htv.fi] has joined #scheme 11:41:55 jeapostrophe [n=jay@69.169.141.110.provo.static.broadweavenetworks.net] has joined #scheme 11:45:28 ironscheme :) 11:46:17 :) 11:46:54 the r6rs-discuss conversation is looney 11:47:01 scheme, it makes your head hurt when alcohol does not 11:47:12 hehe 11:56:45 wingo: you mean the recent one, that suddenly stopped? 11:57:01 leppie: i guess, i wasn't following it in realtime 11:57:14 about renaming scheme, about whatever tom wanted to mail about, ... 11:57:20 i dont follow those conversations either 11:57:32 renaming scheme. what are they thinking. 11:57:48 Oh I did reply 1 time on that :p 11:57:58 Pinky and the Brain 11:58:02 hehe i saw that ;) 11:58:17 which is not far off :) 12:00:12 it's just politics, the people in charge what is best, and then present that, and I will adhere to that as long as it is economically possible 12:00:45 s/charhe what/charge knows what/ 12:02:01 there must be a lot of people that think about specific stuff more than I do 12:02:13 so who am I to question them? :p 12:08:48 ASau [n=user@83.69.240.52] has joined #scheme 12:12:09 underspecified [n=eric@220.43.52.7] has joined #scheme 12:14:57 -!- underspecified [n=eric@220.43.52.7] has quit [Read error: 131 (Connection reset by peer)] 12:14:58 sepult [n=user@xdsl-87-78-122-133.netcologne.de] has joined #scheme 12:15:34 underspecified [n=eric@softbank220043052007.bbtec.net] has joined #scheme 12:17:06 -!- hkBst [n=hkBst@gentoo/developer/hkbst] has quit [Read error: 104 (Connection reset by peer)] 12:19:38 masm [n=masm@bl10-209-28.dsl.telepac.pt] has joined #scheme 12:29:25 rouslan [n=Rouslan@unaffiliated/rouslan] has joined #scheme 12:31:15 -!- easy4 [n=easy4@c-68-45-192-148.hsd1.pa.comcast.net] has quit [] 12:39:38 -!- Fade [i=fade@outrider.deepsky.com] has quit [Read error: 110 (Connection timed out)] 12:39:40 -!- dncksy [n=no@s83-191-238-2.cust.tele2.se] has quit [Remote closed the connection] 12:43:20 I'm implementing a red-black tree. The root must always be black, but internal nodes don't have to be black. So I'm wondering how to implement insert (and delete); it seems that I'll need an internal-insert that propagates extra information to its caller and have insert as a wrapper over that (and handling special cases for the root). 12:43:34 Is there a prettier way about this? 12:43:38 no 12:43:48 :) 12:46:39 blackened` [n=blackene@ip-89-102-28-224.karneval.cz] has joined #scheme 12:47:15 -!- rouslan [n=Rouslan@unaffiliated/rouslan] has quit [Remote closed the connection] 12:51:28 MononcQc [n=parseido@modemcable062.225-20-96.mc.videotron.ca] has joined #scheme 12:54:00 -!- ejs [n=eugen@181-21-135-95.pool.ukrtel.net] has quit [Read error: 60 (Operation timed out)] 12:54:14 incubot: are red-black trees anarchic? 12:54:18 (In binary trees) 12:55:02 (we trust) 12:56:18 They were invented by white supremacists 12:56:30 -!- r0bby [n=wakawaka@guifications/user/r0bby] has quit [Connection timed out] 13:00:00 -!- jeapostrophe [n=jay@69.169.141.110.provo.static.broadweavenetworks.net] has quit [] 13:02:04 Nshag [i=user@Mix-Orleans-106-4-130.w193-248.abo.wanadoo.fr] has joined #scheme 13:07:44 luz [n=davids@189.122.90.116] has joined #scheme 13:15:01 -!- hotblack23 [n=jh@p5B054B70.dip.t-dialin.net] has quit ["Leaving."] 13:16:32 -!- antoszka [n=antoszka@unaffiliated/antoszka] has quit ["+++ killed by SIGSEGV +++"] 13:18:02 -!- sepult [n=user@xdsl-87-78-122-133.netcologne.de] has quit ["ERC Version 5.3 (IRC client for Emacs)"] 13:19:12 sepult [n=user@xdsl-87-78-122-133.netcologne.de] has joined #scheme 13:19:13 -!- ASau [n=user@83.69.240.52] has quit [Read error: 104 (Connection reset by peer)] 13:23:53 -!- masm [n=masm@bl10-209-28.dsl.telepac.pt] has quit ["Leaving."] 13:23:53 ASau [n=user@83.69.240.52] has joined #scheme 13:31:46 -!- sepult [n=user@xdsl-87-78-122-133.netcologne.de] has quit ["ERC Version 5.3 (IRC client for Emacs)"] 13:43:58 -!- wingo [n=wingo@58.Red-83-37-98.dynamicIP.rima-tde.net] has quit [Read error: 113 (No route to host)] 13:46:56 sepult [n=user@87.78.122.133] has joined #scheme 13:51:04 Jafet, deletion in red/black trees is *always* painful. 13:52:11 chandler, the easy way to avoid over- or under-cooking pasta is to taste it shortly before you expect it to be ready. 13:53:21 -!- ASau [n=user@83.69.240.52] has quit ["reboot"] 13:55:07 -!- sepult [n=user@87.78.122.133] has quit ["ERC Version 5.3 (IRC client for Emacs)"] 13:55:24 Deletion in AA trees is worse 13:55:30 (Without set!, that is 13:55:31 ) 13:55:45 annodomini [n=lambda@c-75-69-96-104.hsd1.nh.comcast.net] has joined #scheme 13:56:13 sepult [n=user@xdsl-87-78-122-133.netcologne.de] has joined #scheme 13:58:03 ASau [n=user@83.69.240.52] has joined #scheme 14:07:48 Without SET! ?? 14:07:57 That shouldn't make any significant difference at all. 14:10:46 By the way, just thought I'd let you folks know that I was impressed by the astonishing level of meaningless gibberish in -- not merely stupid, inane, or obnoxious, but so abjectly failing to mean anything. 14:10:49 -rudybot:#scheme- http://tinyurl.com/meh886 14:11:23 I especially like `and -- worse -- [they] seem to be completely unaware that this poor implementation of Agile development is harmful to our velocity.' 14:12:02 someone know if there is any scheme48 higher order modules doc other than s48 manual and sources ? :) 14:12:18 Nshag, sure, . 14:12:56 thanx :) 14:14:06 Even the Wikipedia article is a hogwashing heap of gibbering bloviation. 14:16:04 scrum it up to agile cholk chucks on velocity. 14:16:36 siutaccov! 14:16:43 wait that makes no sense 14:17:20 incubot: it's a trap! 14:17:23 most of it looks pretty straight-forward, but i just saw MAKE-UNMAPPED-MACRO-REFERENCE-TRAP, and i have no idea it does 14:17:28 Riastradh, I used loads of let*s instead 14:21:34 Gargouille [n=Doris@modemcable004.248-57-74.mc.videotron.ca] has joined #scheme 14:22:47 -!- ASau [n=user@83.69.240.52] has quit ["next attempt"] 14:33:52 Riastradh: You might even throw the word "binging" into that description. 14:34:16 It's a bingload of blarney and balderdash! 14:34:20 But "bloviation" is certainly dead-on. 14:38:01 How do implementations generally handle string representation? Flat arrays? 14:38:09 -!- sepult [n=user@xdsl-87-78-122-133.netcologne.de] has quit ["ERC Version 5.3 (IRC client for Emacs)"] 14:39:12 -!- underspecified [n=eric@softbank220043052007.bbtec.net] has quit [] 14:39:14 sepult [n=user@87.78.122.133] has joined #scheme 14:40:19 ASau [n=user@83.69.240.52] has joined #scheme 14:40:43 underspecified [n=eric@softbank220043052007.bbtec.net] has joined #scheme 14:43:18 -!- annodomini [n=lambda@wikipedia/lambda] has quit [Client Quit] 14:44:18 -!- Gargouille [n=Doris@modemcable004.248-57-74.mc.videotron.ca] has quit ["Leaving"] 14:56:02 gnomon, I want to make sure you don't miss this beauty; read the backlog for my thoughts on it: . 14:56:05 -rudybot:#scheme- http://tinyurl.com/meh886 14:56:06 klutometis, you too. 14:56:32 I hate when precious tinyurls are wasted on links like these 14:56:44 Meh. 14:57:49 Yes -- there's such a short supply of them. 14:57:51 *Riastradh* coughs. 14:58:28 http://.ws 15:08:53 davazp [n=user@56.Red-79-153-148.dynamicIP.rima-tde.net] has joined #scheme 15:09:24 -!- ASau [n=user@83.69.240.52] has quit [Remote closed the connection] 15:09:34 ASau [n=user@83.69.240.52] has joined #scheme 15:14:23 -!- ASau [n=user@83.69.240.52] has quit [Client Quit] 15:15:06 -!- MononcQc [n=parseido@modemcable062.225-20-96.mc.videotron.ca] has quit ["DOWNLOADING LATEST VERSION OF THE INTERNET"] 15:21:11 npe [n=npe@94-224-251-223.access.telenet.be] has joined #scheme 15:24:50 Riastradh: I think the tinyurl's shortcode beginning with "meh" is appropriate. 15:27:17 tagac [n=betatest@192.36.221.87.dynamic.jazztel.es] has joined #scheme 15:27:43 Riastradh, on it! 15:27:57 (good morning!) 15:28:06 ...gosh, it it morning already? Or still? 15:28:23 (Hmm, that works better in French, I suppose.) 15:30:15 C'est déja matin? Ou encore? 15:33:36 (Avec un accent grave sur la lettre `a', mais oui -- la différence est que ce que `encore' signifie est un peu plus ambigu et alors plus déroutant.) 15:36:09 -!- eli [n=eli@winooski.ccs.neu.edu] has quit [Read error: 110 (Connection timed out)] 15:36:10 L'accent grave des après l'accent aigue me confond sans exception. 15:36:32 Cà a l'aire d'une toiture. 15:38:37 -!- Jafet [n=Jafet@unaffiliated/jafet] has quit ["Leaving."] 15:38:50 ASau [n=user@83.69.240.52] has joined #scheme 15:38:56 Jafet [n=Jafet@unaffiliated/jafet] has joined #scheme 15:39:56 jonrafkind [n=jon@98.202.86.149] has joined #scheme 15:42:12 -!- underspecified [n=eric@softbank220043052007.bbtec.net] has quit [Remote closed the connection] 15:42:20 underspecified [n=eric@softbank220043052007.bbtec.net] has joined #scheme 15:42:39 -!- hadronzoo [n=user@ppp-70-251-74-36.dsl.rcsntx.swbell.net] has quit ["ERC Version 5.2 (IRC client for Emacs)"] 15:45:11 -!- sepult [n=user@87.78.122.133] has quit [Remote closed the connection] 15:45:49 copumpkin [n=pumpkin@c-24-63-67-154.hsd1.nh.comcast.net] has joined #scheme 15:46:13 sepult [n=user@xdsl-87-78-122-133.netcologne.de] has joined #scheme 15:47:13 -!- sepult [n=user@xdsl-87-78-122-133.netcologne.de] has quit [Remote closed the connection] 15:57:39 Faed [i=fade@outrider.deepsky.com] has joined #scheme 16:06:05 -!- tagac [n=betatest@192.36.221.87.dynamic.jazztel.es] has left #scheme 16:12:39 sepult [n=user@xdsl-87-78-122-133.netcologne.de] has joined #scheme 16:13:26 -!- Poeir [n=Poeir@c-98-222-133-165.hsd1.il.comcast.net] has quit ["This computer has gone to sleep"] 16:14:24 edwardk: Oh, hello! 16:14:34 Just recognized you. 16:14:41 Poeir [n=Poeir@98.222.133.165] has joined #scheme 16:15:55 -!- MichaelRaskin [n=MichaelR@195.91.224.225] has quit [Remote closed the connection] 16:16:29 MichaelRaskin [n=MichaelR@195.91.224.225] has joined #scheme 16:18:06 timmc: hah =) 16:18:22 what gave me away? 16:22:50 -!- sepult [n=user@xdsl-87-78-122-133.netcologne.de] has quit ["ERC Version 5.3 (IRC client for Emacs)"] 16:22:58 timmc: We met at the scheme workshop, right? IIRC, you sat at the table on the first night of Mitchfest with me and Alan Bawden? 16:23:53 sepult [n=user@xdsl-87-78-122-133.netcologne.de] has joined #scheme 16:25:48 -!- copumpkin [n=pumpkin@c-24-63-67-154.hsd1.nh.comcast.net] has quit [Read error: 110 (Connection timed out)] 16:33:33 r0bby [n=wakawaka@guifications/user/r0bby] has joined #scheme 16:41:51 edwardk: "comonad.com" 16:43:08 disgrntld [n=disgrntl@70.114.138.35] has joined #scheme 16:44:09 hi 16:45:01 Hi, I'm trying to set up DrScheme per my instructors requests.. I'm supposed to select "Pretty Big" as my language and then run: (require (planet plai/plai:1:3)) I get an out of memory error, can someone explain what that line does please? 16:45:07 -!- offby1 [n=user@pdpc/supporter/monthlybyte/offby1] has quit [Read error: 131 (Connection reset by peer)] 16:45:24 *instructor's 16:46:00 timmc: ah 16:49:20 moghar [n=user@unaffiliated/moghar] has joined #scheme 16:50:25 in this procedure (define (factorial n) (if (= n 1) 1 (* (factorial (- n 1)) n)) in the body, n is evaluated after the (factorial (- n 1)) returns it's value? 16:51:25 mejja [n=user@c-49b6e555.023-82-73746f38.cust.bredbandsbolaget.se] has joined #scheme 16:51:46 I also tried: (require (planet "main.ss" ("plai" "plai.plt" 1 3))) 16:52:17 Any ideas why that doesn't work for me? I'm using v4.0.1 (Debian default) 16:52:22 it downloads and installs the PLAI language 16:52:38 I guess your problem is that it takes too much memory 16:53:21 @p1dzkl: DrScheme asked me if I wanted to increase memory usage, should I give it 256mb and try again? 16:53:30 -!- HG` [n=HG@xdslhp184.osnanet.de] has quit [Client Quit] 16:54:26 worth a try 16:56:20 forget about the question above, I know the answer 16:58:14 -!- MichaelRaskin [n=MichaelR@195.91.224.225] has quit [Remote closed the connection] 16:58:48 MichaelRaskin [n=MichaelR@195.91.224.225] has joined #scheme 17:00:09 I deleted ".plt-scheme" and tried again, there's permission errors I didn't notice before: 17:00:09 open-output-file: cannot open output file: "/usr/lib/plt/collects/scheme/private/compiled/errortrace/qq-and-or_ss.zo" (Permission denied; errno=13) 17:01:03 I don't know what a *.zo is, should I touch it as root? 17:01:26 -!- r0bby [n=wakawaka@guifications/user/r0bby] has quit [SendQ exceeded] 17:01:58 caoliver [n=oliver@75-134-208-20.dhcp.trcy.mi.charter.com] has joined #scheme 17:03:39 foof: You mentioned wanting to make chibi's heap part of ctx. How is that progressing? 17:06:02 HG` [n=HG@89.166.215.240] has joined #scheme 17:07:53 -!- ASau [n=user@83.69.240.52] has quit [Remote closed the connection] 17:08:14 ASau [n=user@83.69.240.52] has joined #scheme 17:12:45 heeey! it worked... had to increase memory to unbounded.. and I saw a lot of errors (warnings?), but it seemed to finish 17:12:55 thanks p1dzkl 17:15:14 karme [n=user@static.179.75.40.188.clients.your-server.de] has joined #scheme 17:16:56 offby1 [n=user@q-static-138-125.avvanta.com] has joined #scheme 17:17:03 -!- davazp [n=user@56.Red-79-153-148.dynamicIP.rima-tde.net] has quit [Read error: 104 (Connection reset by peer)] 17:17:10 dzhus [n=sphinx@95-24-215-227.broadband.corbina.ru] has joined #scheme 17:18:10 -!- HG` [n=HG@89.166.215.240] has quit [Client Quit] 17:18:14 masm [n=masm@bl10-209-28.dsl.telepac.pt] has joined #scheme 17:20:09 -!- Poeir [n=Poeir@98.222.133.165] has quit [Read error: 131 (Connection reset by peer)] 17:20:33 copumpkin [n=pumpkin@c-24-63-67-154.hsd1.nh.comcast.net] has joined #scheme 17:33:09 Sveklo [n=sveklo@YKCCCLXXXII.gprs.sl-laajakaista.fi] has joined #scheme 17:39:55 attila_lendvai [n=ati@adsl-89-132-7-48.monradsl.monornet.hu] has joined #scheme 17:42:34 -!- perdix [n=perdix@sxemacs/devel/perdix] has quit ["A cow. A trampoline. Together they fight crime!"] 17:43:41 hotblack23 [n=jh@p5B054B70.dip.t-dialin.net] has joined #scheme 17:51:55 lol, well I spoke too soon.. plai support didn't work in DrScheme 4.0.1. Going to install from binaries.. 17:53:47 HG` [n=HG@xdslhc196.osnanet.de] has joined #scheme 17:55:08 wingo [n=wingo@58.Red-83-37-98.dynamicIP.rima-tde.net] has joined #scheme 17:56:40 -!- HG` [n=HG@xdslhc196.osnanet.de] has quit [Client Quit] 18:02:50 hey wingo! 18:11:57 -!- ASau [n=user@83.69.240.52] has quit [Remote closed the connection] 18:12:03 ASau [n=user@83.69.240.52] has joined #scheme 18:17:16 perdix [n=perdix@sxemacs/devel/perdix] has joined #scheme 18:30:15 -!- jonrafkind [n=jon@98.202.86.149] has quit [Read error: 110 (Connection timed out)] 18:35:14 -!- sepult [n=user@xdsl-87-78-122-133.netcologne.de] has quit [Read error: 104 (Connection reset by peer)] 18:42:02 -!- Jafet [n=Jafet@unaffiliated/jafet] has quit [Read error: 110 (Connection timed out)] 18:45:51 Poeir [n=Poeir@c-98-222-133-165.hsd1.il.comcast.net] has joined #scheme 18:50:20 edwardk: I still feel uncomfortable with the way arguments are passed to procedures. 18:51:14 Java has fixargs + method overloading, and chaining is used to implement "optargs"-like functionality. 18:51:55 -!- elias` [n=c@unaffiliated/elias/x-342423] has quit [Read error: 110 (Connection timed out)] 18:51:56 ML has currying built right in. It's beautiful, but I'm not sure how optargs would work. 18:52:54 JS is completely floppy and merely suggests using the right number of args. It has easy-to-use dictionary objects, though, which make it easy to bundle up optargs. 18:53:04 HG` [n=HG@xdslfc135.osnanet.de] has joined #scheme 18:53:50 Various other languages have keyword args (in PLT Scheme they are optional, and I think there is at least one language where they are always required). 18:54:19 I think there's progress yet to be made on the issue. 18:55:15 heya duncanm :) 18:59:03 -!- ASau [n=user@83.69.240.52] has quit [Remote closed the connection] 18:59:09 ASau [n=user@83.69.240.52] has joined #scheme 19:06:12 -!- HG` [n=HG@xdslfc135.osnanet.de] has quit [Client Quit] 19:18:48 -!- copumpkin [n=pumpkin@c-24-63-67-154.hsd1.nh.comcast.net] has quit ["Leaving..."] 19:20:32 ski__ [n=slj@c-9011e055.1149-1-64736c10.cust.bredbandsbolaget.se] has joined #scheme 19:20:32 -!- ski [n=slj@c-9011e055.1149-1-64736c10.cust.bredbandsbolaget.se] has quit [Read error: 104 (Connection reset by peer)] 19:24:42 pemleco [n=sveklo@YYKMMMCXXI.gprs.sl-laajakaista.fi] has joined #scheme 19:35:23 -!- caoliver [n=oliver@75-134-208-20.dhcp.trcy.mi.charter.com] has quit [Remote closed the connection] 19:36:01 ski [n=slj@c-9011e055.1149-1-64736c10.cust.bredbandsbolaget.se] has joined #scheme 19:36:21 -!- ski__ [n=slj@c-9011e055.1149-1-64736c10.cust.bredbandsbolaget.se] has quit [Read error: 104 (Connection reset by peer)] 19:40:08 nicoca [n=nicoca@mon76-1-88-168-192-93.fbx.proxad.net] has joined #scheme 19:40:27 -!- Sveklo [n=sveklo@YKCCCLXXXII.gprs.sl-laajakaista.fi] has quit [Read error: 110 (Connection timed out)] 19:42:03 -!- ski_ [n=md9slj@remote1.student.chalmers.se] has quit ["Lost terminal"] 19:43:27 -!- disgrntld [n=disgrntl@70.114.138.35] has left #scheme 19:44:08 ski_ [n=md9slj@remote1.student.chalmers.se] has joined #scheme 19:49:51 jengle [n=jengle@69.0.90.45] has joined #scheme 20:06:57 TimMc: was away at the gym, just got your msg 20:07:24 -!- attila_lendvai [n=ati@adsl-89-132-7-48.monradsl.monornet.hu] has quit [Read error: 113 (No route to host)] 20:09:30 TimMc: one thing i like about haskell/ml is the automatic currying, various ml dialects like ocaml have ways of specifying optional arguments, but that plays better with parenthesized calls than haskell's juxtaposition based caling. i have never come up with a way to allow optional arguments for a lazy juxtaposed language that doesn't require some superfluous set of parens to indicate when you are done, or at least doesn't place some unnatural restriction 20:13:02 -!- jengle [n=jengle@69.0.90.45] has quit ["Leaving"] 20:21:15 db_dbus [n=Bob@pool-71-112-117-125.sttlwa.dsl-w.verizon.net] has joined #scheme 20:22:11 Piratero [n=user@c-24-7-64-72.hsd1.ca.comcast.net] has joined #scheme 20:22:19 hello! 20:46:50 -!- jewel_ [n=jewel@dsl-242-129-207.telkomadsl.co.za] has quit [Read error: 60 (Operation timed out)] 20:49:41 -!- db_dbus [n=Bob@pool-71-112-117-125.sttlwa.dsl-w.verizon.net] has quit [Read error: 110 (Connection timed out)] 20:57:16 -!- hotblack23 [n=jh@p5B054B70.dip.t-dialin.net] has quit ["Leaving."] 21:00:51 -!- karme [n=user@static.179.75.40.188.clients.your-server.de] has left #scheme 21:02:49 copumpkin [n=pumpkin@129.170.241.32] has joined #scheme 21:06:01 -!- moghar [n=user@unaffiliated/moghar] has left #scheme 21:06:53 moghar [n=user@unaffiliated/moghar] has joined #scheme 21:25:13 -!- nicoca [n=nicoca@mon76-1-88-168-192-93.fbx.proxad.net] has left #scheme 21:37:22 -!- perdix [n=perdix@sxemacs/devel/perdix] has quit [] 21:46:39 Sveklo [n=sveklo@YKMMCCXVII.gprs.sl-laajakaista.fi] has joined #scheme 21:46:47 -!- sstrickl [n=sstrickl@pool-151-199-60-39.bos.east.verizon.net] has left #scheme 21:47:08 sstrickl [n=sstrickl@pool-151-199-60-39.bos.east.verizon.net] has joined #scheme 21:47:53 -!- pemleco [n=sveklo@YYKMMMCXXI.gprs.sl-laajakaista.fi] has quit [Read error: 60 (Operation timed out)] 21:56:14 annodomini [n=lambda@130.189.179.215] has joined #scheme 21:56:59 -!- Sveklo [n=sveklo@YKMMCCXVII.gprs.sl-laajakaista.fi] has quit [Remote closed the connection] 21:57:03 pemleco [n=sveklo@YKMMCCXVII.gprs.sl-laajakaista.fi] has joined #scheme 22:05:10 elias` [n=c@94-193-95-252.zone7.bethere.co.uk] has joined #scheme 22:07:39 -!- Edico [n=Edico@unaffiliated/edico] has quit ["Ex-Chat"] 22:08:32 haesbaert [i=haesbaer@c925a8c5.virtua.com.br] has joined #scheme 22:12:50 -!- haesbaert [i=haesbaer@c925a8c5.virtua.com.br] has quit [Read error: 104 (Connection reset by peer)] 22:15:02 if i do: (define wo '()) (append '(5) wo) 22:15:05 wo is empty 22:15:13 but: (define wo (append '(5) wo)) 22:15:15 works 22:15:21 is this a good way of doing this? 22:15:37 No. 22:16:08 okay 22:17:06 edwardk: ocaml doesn't use parens for calling, actually: http://www.mpi-sws.org/~rossberg/sml-vs-ocaml.html#functions 22:17:20 Just for grouping. 22:17:45 mejja: what do you suggest? 22:17:47 r0bby [n=wakawaka@guifications/user/r0bby] has joined #scheme 22:17:57 a textbook 22:19:37 edwardk: Clearly, what we need is a language that allows you to construct "call" objects and then execute them. We could build it on top of Java! FunctionArgumentCollectionFactory.createArgumentCollection(...).addOptional(...).execute() 22:20:00 (Poor Factories. Will anyone ever respect them?) 22:21:07 Piratero: (append) does not modify its arguments, it returns a new value. 22:21:23 -!- pemleco [n=sveklo@YKMMCCXVII.gprs.sl-laajakaista.fi] has quit [Read error: 110 (Connection timed out)] 22:21:36 This is called a non-destructive operation, and is used extensively in functional programming. 22:22:48 Piratero: In fact, your first statement can be rewritten to this equivalent code: (define wo '()) (append '(5) '()) <-- Would you ask why '() is still empty? 22:23:12 mejja: Don't bite the noobs. 22:23:58 i see now 22:23:59 Mu 22:24:10 thanks for the help TimMc 22:24:15 timmc: the optional arguments are the example that i'm taking about. you have trouble because you can't curry a call by including a subset of its optional args 22:24:40 timmc: they are sort of 'second class' in that respect 22:25:07 edwardk, so don't use optional parameters. 22:25:11 TimMc: er what i mean is by including a subset of its optional args with more to come later 22:25:16 Use option parameters. 22:25:17 Riastradh: i don't ;) 22:25:52 Riastradh: i was just mentioning the fact that i couldn't come up with a similar construct in a lazy haskell like language that had all of the desirable properties. 22:26:15 Piratero: In fact, almost everything you encounter in Scheme is going to work that way. Many of the destructive/mutating forms are marked with an exclamation point (or "bang") at the end of their name. 22:26:24 ah 22:26:40 it's only been like 2 days -- i'm reading: http://mitpress.mit.edu/sicp/full-text/book/book-Z-H-11.html#%_sec_1.2 22:27:29 i.e. ideally you'd have currying, partial application that included some of the optional arguments, etc. but ultimately you have to pull the trigger so you can know if the argument is an argument to the function you are calling or the result of the function you are calling, and that is where juxtaposition-only starts to fail. plt scheme's optional args work well because you have the ) as a dispatch delimiter. 22:28:12 Piratero: Just keep in mind that you're almost always working with *values*, not *variables*. This will become more clear as you read and practice. 22:28:20 yeah 22:28:33 kind of difficult to think that way 22:28:45 TimMc: and ocaml can know that it is calling a function because you still have to pass an argument somewhere, which can serve as its delimiter. i.e. you have to pass a () or something to tell the strict function to go, you tend not to use such things in a lazy language. that was the set of parens i was referring to 22:29:17 edwardk: Ah, OK. 22:30:26 Introducing an "OK no more args" delimiter would be damn irritating for Haskell. 22:31:06 TimMc: yeah, or in the little lazy language i needed it for ;) 22:31:12 Especially since values are treated as nullary functions, no? (A little vague on this.) 22:31:38 Erm, not values, but a reference to a value. 22:31:44 TimMc: basically yeah, the base case for a value that takes optional/named arguments doesn't seem to work. 22:32:25 tagac [n=betatest@192.36.221.87.dynamic.jazztel.es] has joined #scheme 22:32:30 -!- moghar [n=user@unaffiliated/moghar] has quit [Remote closed the connection] 22:32:56 So it seems you are stuck with either A) Functions are typed by their arguments, or B) A delimiter is required. 22:33:12 TimMc: so you could perhaps annotate a function, just not a lazy thunk. which might be good enough. but that would mean you'd have to pass at least one traditional argument after all of the named parameters. 22:33:33 which leads to an odd style 22:36:22 foo --bar x --baz y () would read passably well, but a call to something might get muddled if the args to your named parameters get long 22:36:48 er the reading of a call 22:37:22 haesbaert [i=haesbaer@c925a8c5.virtua.com.br] has joined #scheme 22:40:33 All flexible argument passing mechanisms converge to Unix shell scripts? 22:43:00 -!- haesbaert [i=haesbaer@c925a8c5.virtua.com.br] has quit [Read error: 131 (Connection reset by peer)] 22:44:43 -!- mmc [n=mima@cs137104.pp.htv.fi] has quit [Read error: 110 (Connection timed out)] 22:49:41 db_dbus [n=Bob@pool-71-112-117-125.sttlwa.dsl-w.verizon.net] has joined #scheme 22:55:03 hrm... i'm having a hard time with this... 23:00:03 -!- Pepe_ [n=ppjet@78.114.110.177] has quit [Remote closed the connection] 23:00:14 Pepe_ [n=ppjet@78.114.138.72] has joined #scheme 23:01:46 kilimanjaro [n=kilimanj@70.116.95.163] has joined #scheme 23:02:12 -!- edwardk [n=edwardkm@209.6.103.127] has left #scheme 23:03:03 -!- dzhus [n=sphinx@95-24-215-227.broadband.corbina.ru] has quit [Read error: 110 (Connection timed out)] 23:03:34 -!- npe [n=npe@94-224-251-223.access.telenet.be] has quit [] 23:04:06 Piratero: What's up? 23:04:16 recursion, that's what's up :( 23:04:19 :) 23:04:43 this is a homework assignment, so i'd be cautious as to what i can and cannot ask 23:05:21 i just need to traverse through a list and square each element 23:06:04 Maple Acorn Phillip 23:06:16 Piratero: I'll give you generic help, then. :-P 1) When you write a recursive call, just trust the call to do what it says it will. Delegate "the rest of the problem", in other words. 23:06:27 -!- rcy [n=rcy@d207-6-243-119.bchsia.telus.net] has quit [Remote closed the connection] 23:06:34 yeah 23:07:08 it's difficult because this language is new to me 23:07:11 and do the "rest of the problem" last, to get tail recursion. 23:07:18 Piratero: 2) You have to reduce the size of the subproblem that you are handing off to the recursive call. 23:07:38 well first Piratero, how would you square a single number x? 23:07:47 (* x x) 23:07:48 haesbaert [i=haesbaer@c925a8c5.virtua.com.br] has joined #scheme 23:07:49 Piratero: 3) Write your base case (the simplest input) right away! 23:08:00 ok 23:08:10 (trace func) ; helps 23:08:14 Now how would you get the first element of list l? 23:08:22 (car list) 23:08:24 (first list) 23:08:29 err, (first l) 23:08:30 right 23:08:46 So to square the first element of list l? 23:08:49 i can easily add all the elements of the list 23:08:55 recursively 23:09:03 but i don't know how to return a "sentence" 23:09:10 or rather a list of the squared elements 23:09:11 Ah, so you are struggling with how to build a list. 23:09:15 yeah 23:09:31 Oh, building lists... 23:09:34 i think i came here asking about append 23:09:36 There's only one operator to use for building lists. 23:09:43 cons? 23:09:46 Yup! 23:10:12 so, i was running this constantly through stk 23:10:24 first iteration: (cons (* 2 2) '(2 4))) 23:10:29 yields: (4 4) 23:10:51 (4 2 4) 23:10:55 oh? 23:11:10 ah, you're right 23:11:14 cons just prepends an element 23:11:24 ok 23:11:56 So, if you are given '(2 7 3 0 5) and need to return '(4 49 9 0 25), how are you gonna *finish* building that result? 23:12:12 The idea is you use cons on the square, and what you got so far. Then you pass that new pair as an argument recursively, to be the new "what you got so far". 23:12:12 i'm stuck on that part 23:12:20 right 23:12:22 -!- mejja [n=user@c-49b6e555.023-82-73746f38.cust.bredbandsbolaget.se] has quit ["ChatZilla 0.9.85 [Firefox 3.5.2/20090729225027]"] 23:12:23 i was thinking 23:12:24 -!- haesbaert [i=haesbaer@c925a8c5.virtua.com.br] has quit [Read error: 104 (Connection reset by peer)] 23:12:24 when you're all done, you've got a list of all the squares, albeit in reverse order. 23:12:31 say, procedure is named "squares" 23:12:55 synx: No accumulators yet! 23:12:55 You could also use non-tail recursion to allocate that list implicitly... 23:13:06 synx: Non-tail for now, methinks. 23:13:13 (squares (cdr ((cons (* (car l) (car l)) l))) 23:13:19 accumulators are more fundamental than non-tail recursion ;_; 23:14:02 synx: Yes, but this is about teaching recursion. Piratero will be introduced to stack limits all too soon. :-P 23:14:08 heh 23:14:17 ohh fine then 23:14:28 Just basic structural recursion for now. 23:14:44 Piratero: Methinks you are going to want to apply your procedure more like just (squares l) 23:14:51 or (squares '(1 2 3 4 5)) 23:15:24 right 23:15:25 Piratero: When you start diving into that non-empty input list, the only things you have immediate access to are (car l) and (cdr l). What do you do with the first part? 23:15:39 To be fair, the accumulator would allocate just about as much stack space as that used to recurse. 23:15:53 i'm checking if the list is null 23:15:59 before i go and square anything 23:16:10 So if null, you return... 23:16:15 0 23:16:29 Are you sure? 23:16:47 oh, wouldn't i return the list of squared elements? 23:16:50 If I hand you '() and tell you to square all the elements... 23:16:59 ...I want back a list of the same length! 23:17:17 Yeah they asked for a list, not a sum of the squares or anything. 23:17:22 right 23:17:52 so if you square 0 numbers, you'll want to return a list of 0 squares, or '() 23:18:05 right, so return l would make sense 23:18:23 That's the first part of your first if clause. Now what to do if the list is not null? 23:18:24 Better to evaluate to '() than l. 23:18:31 oh 23:18:32 Just for clarity. 23:18:34 ok 23:18:53 synx: working on that now 23:18:58 so far, i'm thinking: 23:18:59 (define null '()) :p 23:19:07 (squares (cons (* (car l) (car l)) l)) 23:19:20 Piratero: Almost there! 23:19:26 close! 23:19:33 i killed the interpreter running that :) 23:19:37 I bet. 23:19:45 let's see 23:19:48 You haven't reduced the size of the subproblem, you see. 23:19:51 yeah 23:19:55 the list only grows and grows 23:20:10 Piratero: Have you worked with (let) yet? 23:20:10 You want to return a new pair, the first element being the square, and the second element being the 'rest' of the squares (which you don't know yet). 23:20:31 -!- Faed is now known as Fade 23:20:33 (squares (cons (* (car l) (car l)) (cdr l))) 23:20:40 Piratero: Even closer! 23:20:50 that still kills the interpreter 23:20:55 give me a moment... 23:21:03 If I hand you a list of length 5, what length list will you be recursing on? 23:21:27 You square the first element, what is the length of the rest which you recurse on? 23:21:36 you decrement, correct? 23:21:49 oh, it'll increase, wouldn't it? 23:22:01 well is the list going to be larger or smaller? 23:22:12 since i'm prepending, it'll be larger 23:22:21 not with the code you've written. With just thinking about the problem manually. 23:22:51 You have a list of size 5. You make a new list squaring the first element, and recursing on the rest. What is the size of the rest? 23:23:06 damn... i don't know 23:23:22 Piratero: If l is length 5, what is the length of (cdr l)? 23:23:24 oh, 6? 23:23:26 I'll give a hint... it's 1 element less than 5 elements 23:23:33 err, 4 23:24:06 Also, remember that (squares) is "guaranteed" to evaluate to a list of the same length as the one it was given. 23:24:19 if it's 6 you have a problem, because eventually you want to have nothing left over. If you always have more left over, it'll never halt. 23:24:59 right 23:25:18 So when iterating through a list, you always recurse on less of it each time, until you have null list. 23:25:31 If the "current" (squares) is given a 5-list, what size list should you pass to the recursive call to (squares) *given that you want to reduce the problem*? 23:25:35 You take a piece off the top, and recurse on the rest, consing those two together into a new list. 23:25:45 The rest being everything besides the first element of the list. 23:26:12 TimMc: 4? 23:26:14 okay 23:26:17 Absolutely. 23:26:25 so i have to remove the element from a top of the list 23:26:34 oh, no 23:26:39 Piratero: And you are correctly using cdr to do that. 23:26:40 like stated previously, cdr 23:26:55 But that's not what you're passing to squares 23:27:15 cdr lops off an element. What adds to the length? 23:27:21 yeah you only replace the now squared element after you have recursed. 23:27:35 -!- annodomini [n=lambda@wikipedia/lambda] has quit [Client Quit] 23:27:50 i guess this is where i don't know enough primitives to answer the question 23:27:57 Piratero: You do! 23:28:15 car returns the top of the list 23:28:19 you've already used everything you need. It's just a little mixed up. 23:28:42 hm... 23:28:49 Yes, car and cdr are operators that take things apart. You already know an operator that can build things. 23:28:58 Say you have a square, and a list of length 4. What procedure could combine those to produce a 5 element list? 23:28:59 right 23:29:08 cons 23:29:11 bingo 23:29:37 don't i only need to use it once? 23:29:44 So take it apart, square and recurse, then put it back together, in that order. 23:29:53 oh, hm... 23:30:02 Piratero: Have you used (let) yet? 23:30:07 i tried 23:30:13 i'm somewhat familiar with it 23:30:23 i mean, i tried using it 23:30:38 probably can just use (define) for now... 23:30:55 isn't define used for global variableS? 23:31:47 I dunno. You don't need to use either of those to finish this though. 23:31:53 ok 23:32:05 so i need to define a variable to prepend to? 23:32:13 -!- tagac [n=betatest@192.36.221.87.dynamic.jazztel.es] has quit ["/* */"] 23:32:23 no 23:33:15 okay, 23:33:23 OK so let's suppose you have a square a, and a already calculated list of squares b. You could use cons to combine those (cons a b) to create a list of squares one element larger. 23:33:34 http://codepad.org/VV9BvGcF 23:34:24 jonrafkind [n=jon@98.202.86.149] has joined #scheme 23:34:55 So if you have 5 numbers, and you square the first (a), you only need a list of the squares of the other 4 (b) and you can make a list of 5 squares. 23:35:36 and how would you get a list of the squares of those 4 numbers? 23:36:47 haesbaert [i=haesbaer@c925a8c5.virtua.com.br] has joined #scheme 23:38:14 steiger [n=steiger@20150136004.user.veloxzone.com.br] has joined #scheme 23:38:17 i'm a little confused 23:38:24 i just need some time to sort all of this out 23:39:00 maybe. just don't assume any of your code is correct, and try to understand the mechanism you're trying to get. 23:39:20 right 23:40:35 If I (define a 4) and (define b '(9 16 25 36)), then (cons a b) will give me '(4 9 16 25 36). So I can take the already calculated square a, and the already calculated list of squares b, and make a list of 5 squares. 23:40:59 This is without even defining any functions. If I just manually have those lists, I can do that. 23:41:11 so 23:41:15 i need more than one list 23:41:44 you'll be building a new list, yes. 23:42:08 okay 23:42:08 -!- haesbaert [i=haesbaer@c925a8c5.virtua.com.br] has quit [Read error: 104 (Connection reset by peer)] 23:42:11 give me a sec 23:42:31 If I start with (define l '(2 3 4 5 6)) it's pretty obvious how to calculate a. (define a (* (car l) (car l))). But how to calculate b? 23:42:52 (cdr l) is '(3 4 5 6) but it's not squared yet. 23:43:00 right 23:43:15 now... 23:43:47 If I start with (define l '(3 4 5 6)) it's pretty obvious how to calculate a. (define a (* (car l) (car l))). now a is 9. 23:43:56 (cdr l) is '(4 5 6) but it's not squared yet. 23:44:10 Can you see where I'm going with this? 23:44:24 yes 23:45:12 a needs to be appended to a new list? 23:45:24 what you want is (cons (calculate-a) (calculate-b)) where the first is obvious, and the second is recursing on the cdr. 23:45:37 ok 23:45:49 Yes I said at the beginning that you need (cons a b) to get your 5 element list of squares. 23:45:55 yeah 23:47:19 Suppose you already have a procedure that squares elements in a list. Given a 5 element list of numbers, ignoring the first element, how would you square the other 4 elements? 23:48:44 (cons (square (car l)) ...) 23:48:46 second part is 23:49:09 (cons (square (car l)) (squares (square (cdr l))) ? 23:49:42 ehe... just about right 23:49:45 (square) produces the square of a single number, right? 23:49:57 oh, that would return an error 23:50:00 yeah 23:50:07 So do you need to (square (cdr l)) or can you just pass (cdr l)? 23:50:27 it'd be better to pass just (cdr l) 23:50:38 since part a calculates the first element of the list 23:51:07 thank you two 23:51:18 remember you're only doing something to the first element, then recursing on the cdr. You'll do something to the next element on the next level of recursion. 23:51:29 i need to unlearn mostly everything i know in the other programming languages that i know 23:51:34 right 23:51:46 thank me by pasting a working example :| 23:51:50 hah 23:51:52 o 23:51:54 ok 23:52:03 *synx* cracks whip 23:52:12 http://codepad.org/AnxkNbyj 23:52:56 Works for me! 23:52:58 *synx* cheers 23:53:02 thanks 23:53:34 it's just kind of weird... 23:53:47 recursion is pretty useful in other languages too, but scheme really takes advantage of it 23:53:54 yeah 23:53:56 i can see that 23:54:06 in other languages, iteration is easier to understand 23:54:24 but recursive seems to be less code intensive in scheme 23:56:05 iteration isn't an easy thing. Most languages have special iteration constructs, but they only work right with mutable data structures. 23:56:24 ah 23:56:54 So like in python you'll create a list [] and then use l.append in each iteration of your for loop. Not the most optimizable operation... 23:57:39 bytecolor [n=user@32.157.230.101] has joined #scheme 23:57:49 Scheme takes a different approach, and you just build a new list from the elements of the old one, so you don't have to mutate anything. It ends up being just as efficient as iterating, without nasty problems like "list changed during iteration" errors. 23:58:31 i guess that's the problem i'm having 23:58:40 i'm so used to worrying about memory 23:58:58 i need to seriously drop that for the next 6 months 23:59:02 or else i'm going to sink 23:59:53 when I worry about memory I use tail recursion, then I realize all that trouble isn't really saving anything.