00:02 (quit) mheld: Quit: mheld 00:16 (quit) Fare: Ping timeout: 240 seconds 00:42 (quit) mwolfe: Remote host closed the connection 00:42 (quit) parcs: Ping timeout: 240 seconds 00:43 (join) parcs 03:29 (join) Sgeo 03:37 Sgeo: Are there alternate PLaneTs? How easy/difficult would it be to use one? 03:42 jonrafkind: there are no other ones, in theory i guess its not super hard to set up 03:42 jonrafkind: you need postgres and trac 03:46 Sgeo: How would someone use an alternate planet? 03:48 (quit) askhader: Remote host closed the connection 03:48 (join) askhader 03:54 jonrafkind: im not sure of the planet source is publicaly available though.. 03:55 jonrafkind: there is a planet url somewhere in your racket configuration stuff 04:01 Sgeo: Hmm 04:02 Sgeo: Can individual source files override that? 04:02 jonrafkind: im not sure if its a parameter 04:03 jonrafkind: but i guess it could be made so 04:13 (quit) jonrafkind: Ping timeout: 276 seconds 04:45 (join) aLeSD 04:48 aLeSD: hi all 04:51 Sgeo: Hi 05:37 (quit) martinhex: Ping timeout: 240 seconds 05:38 (join) martinhex 05:48 (join) Fare 05:58 (quit) Fare: Quit: Leaving 06:07 (quit) martinhex: Remote host closed the connection 06:07 (join) martinhex 06:17 (quit) martinhex: Read error: Connection reset by peer 06:17 (join) martinhex 06:18 (quit) aLeSD: Ping timeout: 264 seconds 06:28 (quit) martinhex: Ping timeout: 240 seconds 06:38 Sgeo: Why can't I find any actor-based concurrency stuff? 06:38 (join) martinhex 06:38 (quit) martinhex: Remote host closed the connection 06:39 (join) martinhex 06:50 (quit) martinhex: Ping timeout: 255 seconds 07:01 (join) martinhex 07:02 Sgeo: "A type for Racket?s native Unicode strings, which are in UCS-4 format." 07:02 Sgeo: n/m 07:06 (quit) martinhex: Ping timeout: 255 seconds 07:16 (join) martinhex 07:23 (join) masm 07:36 (quit) martinhex: Ping timeout: 240 seconds 07:39 (join) martinhex 07:46 (quit) martinhex: Ping timeout: 240 seconds 07:47 (join) martinhex 08:02 (join) pmurias 08:02 pmurias: why do frtime programs freeze after a while? 08:53 (join) stis 08:54 (quit) martinhex: Ping timeout: 250 seconds 08:58 (join) martinhex 09:04 (join) martin_hex 09:05 (quit) martinhex: Disconnected by services 09:05 (nick) martin_hex -> martinhex 09:08 (join) _p4bl0 09:09 _p4bl0: hi everyone 09:09 (quit) martinhex: Ping timeout: 240 seconds 09:09 (join) martinhex 09:10 _p4bl0: I'm developing a GUI using Racket. I'd like to have an area% (in fact it's a canvas%) that is stretchable but keep a ratio width/height of 10/21. The canvas% is in a horizontal-panel%. Is this possible? 09:18 (quit) martinhex: Ping timeout: 240 seconds 09:28 (join) martinhex 09:31 (quit) martinhex: Excess Flood 09:31 pmurias: did any one here use frtime for anything? 09:31 (join) martinhex 09:36 (quit) martinhex: Ping timeout: 272 seconds 09:38 (join) MayDaniel 09:41 (join) martinhex 09:48 (quit) martinhex: Ping timeout: 264 seconds 09:50 (join) martinhex 09:55 (quit) martinhex: Read error: Connection reset by peer 10:07 Lajla: R6 is actually pretty cool. 10:12 pmurias: R6? 10:12 (join) martinhex 10:12 cky: pmurias: R6RS, perhaps. 10:14 Lajla: Well, of course. 10:14 Lajla: I would like to see a split in it though as they proposed. 10:14 Lajla: Like, declare some libraries 'optional' 10:15 Lajla: Because it's perhaps a bit too extensive. 10:15 Lajla: Also, requiring the whole numerical tower is just madness. 10:15 Lajla: I always liked the fact that they didn't. 10:15 Lajla: Some implementations can be geared towards tasks that have no need for exact numbers or complex numbers 10:16 (quit) martinhex: Read error: Connection reset by peer 10:16 (join) martinhex 10:40 (join) molbdnilo 10:43 (join) corruptmemory 10:47 (quit) MayDaniel: Read error: Connection reset by peer 10:47 (join) mheld 11:08 (quit) martinhex: Ping timeout: 246 seconds 11:10 (join) martinhex 11:12 (quit) molbdnilo: Quit: molbdnilo 11:13 (part) pmurias 11:20 (join) martin_hex 11:20 (quit) martinhex: Disconnected by services 11:20 (nick) martin_hex -> martinhex 11:29 (quit) martinhex: Remote host closed the connection 11:29 (join) martinhex 11:34 (quit) martinhex: Ping timeout: 264 seconds 11:36 (join) martinhex 11:40 (join) mceier 11:44 (quit) martinhex: Remote host closed the connection 11:45 (join) martinhex 11:47 (quit) masm: Quit: Leaving. 11:49 (quit) martinhex: Ping timeout: 255 seconds 11:50 (quit) bremner: Read error: Operation timed out 11:51 (join) bremner 11:53 (join) martinhex 12:02 (quit) martinhex: Ping timeout: 272 seconds 12:03 (join) martinhex 12:06 (quit) martinhex: Excess Flood 12:26 (join) MayDaniel 12:26 (join) masm 12:42 (quit) mheld: Quit: mheld 13:16 (join) mheld 13:24 (join) Demosthenes 13:24 (quit) MayDaniel: 13:31 (join) jonrafkind 13:34 clklein: jonrafkind: I think I figured out yesterday's mystery. 13:34 jonrafkind: oh nice 13:35 clklein: http://paste.lisp.org/display/118118 13:35 clklein: call-with-exception-handler handlers run in the context of the raise 13:36 clklein: I'm guessing that the uncaught-exception-handler does the same 13:37 jonrafkind: yea 13:37 jonrafkind: i guess there is some reason for things being that way.. but it sure is confusing 13:39 clklein: Yea, it caught me off guard 13:39 (join) samth 13:48 (join) martinhex 14:03 Lajla: jonrafkind, 14:03 Lajla: you did an argument from ignorance. 14:03 Lajla: I thought I'd just wait about 10 hours after. 14:03 Lajla: to tell you that. 14:03 Lajla: Because it has been itching since. 14:04 jonrafkind: about planet? 14:04 Lajla: jonrafkind, yeah 14:04 Lajla: I see you remember your own arguments from ignorance 14:04 jonrafkind: its in the chat logs 14:04 jonrafkind: it wasn't an argument, i was trying to be helpful. no one else was responding 14:05 jonrafkind: i tried to find where the planet source is but i couldnt find it. i thought it was in iplt 14:05 jonrafkind: i attempted to set up my own planet instance once, which is why i sort of know one or two things 14:05 Lajla: I am so good with this, like, yesterday, I messaged a linguist whom I once talked to in a café 3 years prior per text message with the text 'It's not a third person passive imperative, it's a fourth person active imperative, which actually makes sense', I wish I could see the look on his face. 14:05 Lajla: Well, then you should say 'not that I know off' 14:05 Lajla: And I know you were. 14:06 Lajla: But it has been itching since. 14:06 Lajla: So I thought I'd tell you. 14:08 (join) anRch 14:10 (quit) martinhex: Read error: Connection reset by peer 14:10 (join) martinhex 14:45 (quit) Lajla: Ping timeout: 276 seconds 15:12 (quit) anRch: Quit: anRch 15:23 (join) Lajla 15:26 (join) MayDaniel 16:18 (quit) jonrafkind: Ping timeout: 265 seconds 16:26 (quit) MayDaniel: Read error: Connection reset by peer 16:42 (quit) mheld: Quit: mheld 17:02 (quit) tv|z: Ping timeout: 240 seconds 17:04 (join) tv|z 17:37 (join) mheld 17:51 Sgeo: Why doesn't Racket have actors? 17:52 samth: Sgeo, actors are, in most modern languages, a programming pattern rather than a feature 17:52 samth: you can certainly use threads as actors in Racket 18:02 Lajla: Aren't actors basically just functions in CPS. 18:02 Lajla: Or am I missing my theory. 18:02 samth: Lajla, actors also involve concurrency 18:03 Lajla: Hmm 18:03 Lajla: I rephrase 18:03 samth: in a sequential setting, actors = cps functions 18:03 Lajla: Aren't actors basically functions in a lazy language. 18:03 samth: no, lazyness != concurrency != CPS 18:03 Lajla: And isn't the case that if you defined your functions in such a way that they don't depend on any order that it comes down to the same. 18:03 Lajla: CPS can't work with laziness? 18:04 samth: no, it can, but they aren't the same thing 18:04 Lajla: Oh yeah 18:04 Lajla: No, I mean lazy + CPS 18:04 Lajla: At least, then you have your basic building blocks of that they can only send messages and accept them and all that. 18:04 samth: no, actors are a strict but nondeterministic and concurrent paridigm 18:05 Lajla: You don't say. 18:05 Lajla: Then I have totally gotten this wrong. 18:07 (join) danbrown 18:12 Lajla: samth, is concurrency a formal concept? 18:13 samth: yes 18:14 Lajla: samth, do you have a formal definition, because my google skills are insufficient at tihs juncture. 18:15 _p4bl0: Lajla: here is an entry point to formal concurrency: http://en.wikipedia.org/wiki/Pi_calculus :-) 18:17 samth: Lajla, there are lots of formal models of concurrent systems, _p4bl0 has pointed to one influential one 18:17 Lajla: _p4bl0, I know that, but that is not a formal definition of concurrency. 18:17 Lajla: It is a formal description of concurrent models. 18:17 samth: it's not clear what a formal definition of concurrency would mean 18:17 Lajla: Well, yeah 18:17 Lajla: it wasn't to me either. 18:17 samth: what's the formal definition of computation? 18:17 _p4bl0: samth: yup that's why I said it's only an entry-point 18:18 Lajla: I would not say that computation is a formal category. 18:18 samth: concurrency is like computation 18:18 Lajla: I don't know a formal definition that can seperate a computation from a non-computation. 18:18 Lajla: Ah, so like, these models basically for sake of argument assume that 'all is concurrent' in the same way that ZFC assumes that all is a set? 18:18 Lajla: All they can describe 18:19 Lajla: * 18:19 samth: no, that's not right at all, either about concurrency or about zfc 18:19 Lajla: I am pretty sure that the interpretation of ZFC is that every object in it is a set and ZFC does not assume the existence of non-sets. 18:20 samth: no, zfc is a collection of axiom schemes for describing set formation and relations between sets 18:20 samth: it doesn't make any assumptions 18:20 Sgeo: Do people often type the unicode lambda, or is plain lambda preferred? 18:20 Lajla: THat is saying the same thing, like I said, ZFC does not assume non sets. 18:20 Lajla: samth, not assuming a non set is part of not making assumptions. 18:20 Lajla: And different from assuming that there are no 'non sets' 18:21 Lajla: It does not treat the quaestion what is a set and what not. 18:21 samth: Sgeo, people regularly use the unicode lambda 18:21 samth: DrRacket even has a keybinding for it: Ctrl-\ 18:26 _p4bl0: BTW, I'm studiying computer science (in France, I'm in master 1, that's the 4th year of uni) and I'm currently looking for an internship in the US for 4 to 6 month starting mid-march 2011, I'd like to work on programming languages. I already contacted Guy Steele at the Sun Labs (now Oracle) to work in the Programming Langue Research Group (currently working on Fortress), he said he's reading my résumé but he doesn't know yet if the 18:26 _p4bl0: group will take intern next year. So if anyone here knows of another place where I could go, I'm interrested :-) 18:26 Sgeo: Suppose I only wanted to do a define in a certain condition (say, a version number passed in earlier was greater than something). I'd make a macro that may or may not expand into define? 18:27 samth: _p4bl0, i recommend contacting MS Research in redmond as well, and Mozilla Labs (they do a bunch of language stuff) 18:27 samth: Sgeo, i don't recommend doing that 18:27 _p4bl0: Oh and I'd love to work in an academic research team but I'll need to be paid to be able to live in the US, that's why I primarily look at companies 18:27 samth: how would you know when you could refer to the variable? 18:28 _p4bl0: samth: Mozilla is a good idea! MS research work too much on type system from what I heard, and I have enough of that in France if you know what I mean 18:28 Sgeo: The calling code should know that that variable doesn't exist in the older version 18:29 Lajla: Sgeo, some people would say it is safer to always defined it to #f and set! it. 18:32 Sgeo: Hmm 18:32 Sgeo: Safer how, exactly? 18:32 Sgeo: Easier, I guess, since it doesn't involve macros, but safer? 18:32 Sgeo: s/doesn't involve/doesn't rely on/ 18:33 Sgeo: Probably easier for me as implementor to use macros anyway 18:33 samth: Sgeo, i don't recommend set!, but it's better to have your scope readily apparent 18:33 Lajla: Sgeo, well, like samth said, how would you know if you can refer to it. 18:33 Lajla: Well, some people would also say that you should be hung by the throat for using set! =) 18:34 Sgeo: I'm thinking of wrapping a C API which gets new functions frequently 18:34 Sgeo: If some code says that the intended version is 77, it either doesn't know of, or otherwise can't use, functions defined later than that 18:35 Lajla: Sgeo, a much simpler way though is just use something like (define da-var (cond ((version-seven? vers) 7) ((version-eight? vers) 8))) or soemthing like that. 18:35 Lajla: Making it #void (I believe) when none is true. 18:35 samth: i would define it to a version that dynamically errors when the function is not available 18:36 Sgeo: Whatever I do, I'd probably write a macro that expands into it, for simplicity? 18:37 samth: Sgeo, i'd write it the long way first, and then write a macro to abstract over the common parts 18:44 (nick) samth -> samth_away 18:51 Lajla: Sgeo, another thing re-reading that part, at what point is the version number known. 18:51 Lajla: Like, you enter it statically into the macro context as parametre. 18:53 Sgeo: Hmm, not entirely sure 18:53 Sgeo: Can you pass arguments into modules? 18:53 Sgeo: Can the parameter stuff do that? 18:54 Lajla: Well, macros can only operate on information that is known at compile time as far as I know. 18:54 Lajla: At least, in what way they expand. 18:54 Lajla: If they expand to some form that features a conditional in it, I'm sure you could hack around. 18:54 Sgeo: Huh, didn't realize that 18:56 (quit) corruptmemory: Ping timeout: 240 seconds 19:02 (join) jonrafkind 19:14 Lajla: Sgeo, well, that is what a macro does. 19:14 Lajla: But to be hones,t I'm trying to make an example. 19:14 Lajla: But for some reason it doesn't work and I'm not sure why 19:14 Lajla: http://codepad.org/mO19cRmF 19:14 Lajla: BAsically, if you do (version 3.5) or any non integer, it starts to cry, whic is what I wanted. 19:15 Lajla: But availability flag is still unbound it says. 19:15 Lajla: But jonrafkind probably knows what's wrong. 19:15 Lajla: Because he has this omniscient click wheel he can ask quaestions 19:15 Lajla: When I check the expansion and macro stepper it looks fine 19:16 Sgeo: I'm fairly knew with Racket 19:16 Sgeo: Read about Scheme before, got discouraged by all the implementations and inconsistencies between such 19:17 Sgeo: s/knew/new/ 19:18 Lajla: Sgeo, R6RS actually does better at unifying it. 19:18 Lajla: the main thing is that there are multiple scheme standards. 19:18 Lajla: And an implementation can like claim to support R5, R6, and SRFI 1 through 30 19:18 jonrafkind: it works if you use #'vers instead of #'_ 19:18 jonrafkind: hm, im not exactly sure why 19:19 jonrafkind: maybe because #'_ isn't really bound 19:19 jonrafkind: also you don't need to rebind define 19:19 Lajla: jonrafkind, in the availability flag? 19:19 jonrafkind: yea 19:19 jonrafkind: also you should use syntax-local-introduce instead of datum->syntax 19:19 Lajla: jonrafkind, oh yeah, it searches for the binding in the enviroment where the syntax case lay. 19:19 Lajla: jonrafkind, the whot? 19:20 Sgeo: I kind of only skimmed the stuff about macros >.> 19:20 Lajla: This is why I don't understand syntax-case. 19:20 Sgeo: I was reading Racket stuff all night instead of sleeping 19:20 Lajla: I just use it and it usually works, it's my very own C++ 19:20 Lajla: Sgeo, ahh 19:20 Lajla: well, macros happen at compile time. 19:20 Lajla: THey cannot access runtime information 19:20 Lajla: And syntax-case is pretty difficult an macro system. 19:20 Lajla: a* 19:21 Lajla: Hmm 19:21 Lajla: actually 19:21 Lajla: I should in all means not rebind define. 19:21 jonrafkind: yes if you're just starting with macros you should stick to syntax-rules 19:21 Lajla: It would like break the syntax in (let ((define +)) ...) 19:21 Lajla: Well, sytnax rules doesn't dow hat he wants. 19:21 Lajla: He wants to extract the version numer. 19:21 Lajla: number 19:22 Sgeo: extract? 19:22 Lajla: Well, feed it to the syntax transformer. 19:22 Lajla: Give it access to it. 19:22 jonrafkind: (define availability-flag (if (> version 4) #t #f)) whats wrong with that 19:22 Lajla: Sgeo, but the thing with scheme standards is that contrary to CL, in Scheme standards and ideas sort of prove their worth and fight for acceptance. 19:23 Lajla: Whereas in CL some autocratic organ seems to decide most. 19:23 jonrafkind: rudybot: eval (define-syntax-rule (make-available name flag) (define name (if (> flag 4) #t #f)) 19:23 rudybot: jonrafkind: error: eval:1:0: read: expected a `)' to close `(' 19:23 jonrafkind: rudybot: eval (define-syntax-rule (make-available name flag) (define name (if (> flag 4) #t #f))) 19:23 rudybot: jonrafkind: Done. 19:23 Lajla: jonrafkind, it doesn't check for exactness and integerness. 19:23 jonrafkind: rudybot: eval (begin (make-available f1 8) f1) 19:23 rudybot: jonrafkind: ; Value: #t 19:24 jonrafkind: rudybot: eval (begin (make-available f2 2) f2) 19:24 rudybot: jonrafkind: ; Value: #f 19:24 Lajla: And I also felt demonstrating just how cool syntax ase is, but I failed. =( 19:24 Lajla: Luckily the click wheel helped me out. 19:24 jonrafkind: its true it lacks the ability to do compile-time checking of values 19:24 jonrafkind: for that you could use syntax-parse 19:24 jonrafkind: syntax-case is quite poor at doing checks 19:25 jonrafkind: syntax-parse is closer to syntax-case though, im not sure if there is an analog to syntax-rules, or define-syntax-rule 19:25 Lajla: syntax case is quite unexpressive for soemthing hat was the standard so long I guess. 19:25 Lajla: I wonder who invented it. 19:25 jonrafkind: no its quite expressive 19:25 jonrafkind: its just a pain to use 19:25 Lajla: Ehh 19:25 Lajla: syntax-rules. 19:25 Lajla: pardon 19:25 jonrafkind: yea 19:26 (quit) stis: Remote host closed the connection 19:26 Lajla: But say, jonrafkind what if you were like 'let's create a hygienic macro system!' 19:26 Lajla: Would you then invent syntax-rules? 19:26 jonrafkind: its a good starting point 19:26 Lajla: Wouldn't you like when it was done kind of had the idea 'This is unfinished work' 19:26 Lajla: But like, it couldn't even insert ... in expansions in the first stages. 19:26 Lajla: I mean, it's kind of a big hack, how it worked. 19:27 Lajla: Especially its treatment of the symbol ... 19:27 jonrafkind: i mean its almost trivial once you understand the parts, transcription + hygiene 19:27 Lajla: I'm stlil not quite sure I like how syntax-case uses it. One could argue that it is the 'Scheme way' to let peope choose their epilipses. 19:28 Lajla: (syntax-case x ... () 19:28 Lajla: jonrafkind, but like, would you really make it like that? 19:29 Sgeo: Is Racket hotswappable at all? 19:29 Lajla: I find it kind of hard to believe what went to the person's mind who stopped at that part. 19:29 Lajla: Sgeo, wat's that? 19:29 jonrafkind: are you wondering why syntax-case has some special support for ellipses? 19:29 Lajla: jonrafkind, well, some would say that letting people choose their own symbol for that is a better practice. 19:29 jonrafkind: syntax-parse allows that 19:29 Lajla: Ahh 19:29 jonrafkind: and in racket, you can choose a different symbol for ellipses with syntax-case 19:29 Lajla: Never heard of that. 19:29 Lajla: How? 19:29 Sgeo: Lajla, changing any code of a running system while it's running, I think 19:29 jonrafkind: (require (rename-in racket/base [... my-ellipses])) 19:30 jonrafkind: its just an identifier 19:30 Lajla: As you all know, I know nothing of racket. 19:30 jonrafkind: like anything else 19:30 Lajla: Ah 19:30 Lajla: But that doesn't work either. 19:30 Lajla: I mean, per expansion 19:30 Lajla: So that you can est them inside each other. 19:30 jonrafkind: you can escape ellipses 19:30 Lajla: Without having to make really clumsy escape. 19:30 jonrafkind: (... ...) inside a template becomes ... 19:30 Lajla: Yeah, I know. 19:30 jonrafkind: yea, i sort of hate that too 19:30 jonrafkind: but such is life 19:30 Lajla: But still, wouldn't you say it would be more scheme if you could just choose it? 19:30 Lajla: Sgeo, ehh 19:30 Lajla: you mean self-modifying code? 19:31 Lajla: And yeah, to some extend. 19:31 Lajla: Lisp traditionally has a close correspondence between code and data. 19:31 Lajla: The line between code and the data it operates on is somewhat opaque. 19:31 Sgeo: Lajla, not... quite self-modifying, although I guess with some work, that can enable it. Programmer-modifyable, while the program's running 19:31 jonrafkind: if you used eval you could do it 19:31 Lajla: Sgeo, you mean with I/O? 19:32 Lajla: jonrafkind, well, apply is also a light example. 19:32 Lajla: Sgeo, are you familiar with eval in most languages? 19:32 Sgeo: I mean, like Smalltalk or Erlang 19:32 Sgeo: Lajla, yes 19:32 Lajla: Because in Lisp, it is slightly different. 19:32 Lajla: Well, in Lisps, eval does not evaluate strings. 19:32 Lajla: But data. 19:32 Lajla: (+ 1 2) is a scheme program, it's also a list of one symbol and two numbers as a data structure. 19:33 Lajla: Scheme programs are data. So (eval (list '+ 1 2)) considers that datastructure as a program. 19:33 Sgeo: That's great. Anyone built a system that, if I have a long running Racket program, I can make a change without stopping it? 19:33 Sgeo: eval would probably be an important party 19:34 Lajla: You can do funky stuff like (eval (list (if some-condition '+ '*) 1 2)) 19:34 Lajla: Sgeo, overuse of eval is considered bad practice though. 19:36 Sgeo: Suppose, in a program, I (define (double x) (+ x x x)) 19:36 Sgeo: And I'm running some program 19:36 Sgeo: Then realize the mistake, and want to fix it without stopping the program 19:37 Lajla: Sgeo, that is not soemthing anyone would recommend doing with eval. 19:37 Lajla: Just use (set! double johnrafkind) 19:37 Lajla: And even set! is frowned upon. 19:37 Lajla: In SCheme, we don't make mistakes. 19:37 Sgeo: Lajla, and can I do that to a running program? 19:37 Lajla: You can have a running program that does that. 19:38 Lajla: Or you can make a program that accepts untrusted input and considers it code. 19:38 Lajla: You can make a program that has an input which takes code and modifies some parts of itself yeah 19:38 Sgeo: Lajla, is there some library or framework in Racket to make that easy? 19:39 Lajla: Sgeo, I am not sure. 19:39 Lajla: Most people would tell you that that is generally not what you want to do. 19:39 Sgeo: In Newspeak, there was an issue in the IDE that I wanted to fix. The code of the IDE was running, I went and fixed it, and saw the change immediately 19:40 Lajla: Sgeo, that would be an interpreter and not a compiler then I guess. 19:40 Lajla: That has little to do with any language. 19:40 Lajla: It's more that the interpreter supports modyfing code at runtime. 19:40 Lajla: Which is pretty dangerous 19:40 Lajla: Racket is mainly a compiler. 19:41 Lajla: You produce an executable. 19:42 Sgeo: Can my code at least load or reload modules dynamically? 19:43 Lajla: I'm not sure. 19:43 Lajla: Depends on how hey are compiled I suppose. 19:43 Lajla: I see no reason why dynamic linking should not be able o happen 19:44 Sgeo: I appear to have caused an infinite loop of crashiness in DrRacket 19:44 Lajla: How? 19:45 Sgeo: Tried to insert a fraction right after #lag racket without any space between fraction and racket 19:45 Sgeo: Exact fraction was 5 1/4 19:45 Sgeo: Though I don't think that matters 19:48 (quit) Sgeo: Read error: Connection reset by peer 19:49 (join) Sgeo 19:49 Sgeo: Anything happen after Though I don't think that matters 19:49 Sgeo: ? 19:49 jonrafkind: no 20:07 (quit) masm: Quit: Leaving. 20:16 Sgeo: Do most libraries that expose objects leave (send) as something the client has to do? 20:17 jonrafkind: yea I think so 20:17 jonrafkind: which libraries are you looking at? 20:17 Sgeo: Just wondering in general 20:17 jonrafkind: anything that uses classes will most likely use `send' 20:45 Sgeo: Does the graphical stuff like XML boxes actually see use? 20:47 (join) dnolen 20:47 jonrafkind: no idea 20:47 jonrafkind: a lot of the stuff in drracket is designed to use in the classroom 20:48 Lajla: jonrafkind, I got it. 20:48 Lajla: _ and ... are special identifiers. 20:48 Lajla: So you can't just use #' on it 20:48 jonrafkind: well ... is defined in some module by `define-syntax' 20:49 jonrafkind: well yes they are special to the expander 20:49 Lajla: I mean that my define syntax didn't work because I used #'_ 20:49 jonrafkind: and (syntax blah) invokes the expander on blah 20:49 jonrafkind: yea 20:49 Lajla: I always thought it was just a dummy used for the first to say 'I don 20:49 Lajla: care' 20:49 jonrafkind: im not sure exactly what the expander does with _ 20:49 jonrafkind: i thought it usually threw an error or something 20:51 Lajla: Sgeo: http://codepad.org/5vN0MXsd 20:52 Lajla: This one owns. 20:52 Lajla: It works 20:53 Sgeo: What's that k? 20:53 Sgeo: I don't remember much about syntax-case 20:53 Sgeo: Or anything, actually 20:53 Lajla: Sgeo, k can basically be anything except ... or _ 20:53 Lajla: Which have speciual meaning 20:53 Lajla: You can replace the k with VOTE-PALIN-2012 20:54 Lajla: And it will go fine 20:54 Lajla: As long as you do it everywhere 21:43 (quit) Demosthenes: Quit: leaving 21:53 (quit) parcs: Ping timeout: 240 seconds 21:55 (join) parcs 22:07 dnolen: in Racket what is the equivalent of range where (range 10) -> (0 1 2 3 4 5 6 7 8 9) ? 22:08 jonrafkind: (in-range 0 10) 22:09 jonrafkind: is a sequence, not a list though 22:09 dnolen: how do I get a list from that ? 22:10 jonrafkind: rudybot: (stream->list (in-range 0 10)) 22:10 rudybot: jonrafkind: error: reference to undefined identifier: stream->list 22:10 jonrafkind: cmon.. 22:10 dnolen: nice 22:10 jonrafkind: rudybot: (require racket/stream) (stream->list (in-range 0 10)) 22:10 rudybot: jonrafkind: error: default-load-handler: cannot open input file: "/usr/local/plt/collects/racket/stream.rkt" (No such file or directory; errno=2) 22:11 jonrafkind: well if rudybot wasn't so old you could use stream->list 22:12 Sgeo: So streams are like Haskell lazy lists? 22:12 Sgeo: s/So/Are/ 22:13 jonrafkind: yea 22:13 Sgeo: :D 22:13 jonrafkind: you can make an infinitely long straem and just get parts of it that you want 22:13 jonrafkind: there is an entire lazy language in racket if you want real laziness 22:13 jonrafkind: #lang racket/lazy I think 22:13 Sgeo: in #lang racket, do you need to use a special map? 22:14 jonrafkind: to map over streams? 22:14 Sgeo: yes 22:14 Sgeo: Lazily 22:14 jonrafkind: yea, http://docs.racket-lang.org/reference/sequences.html?q=stream#(def._((lib._racket/stream..rkt)._stream-map)) 22:15 jonrafkind: most constructs in racket are eager by default 22:16 Sgeo: Can I make my own non-list thing that works with regular map? 22:16 jonrafkind: I guess not, map uses cdr to get the next item in your list 22:16 jonrafkind: ive read that clojure has some ISeq interface that any data structure can implement 22:17 Sgeo: And how does cdr work? 22:17 jonrafkind: but racket has no such thing 22:17 Sgeo: Oh, n/m 22:17 Sgeo: Misread you 22:17 jonrafkind: cdr operates on the primitive datatype, pairs 22:17 jonrafkind: you can always throw out map entirely and just use sequences 22:18 jonrafkind: you can use the `for' forms to iterate over them 22:18 jonrafkind: list comprehensions is their name 22:19 (join) Demosthenes 22:22 Sgeo: I guess I was more interested in the general question of functions that don't care about the underlying implementation 23:08 (join) evhan 23:29 (part) evhan 23:56 (join) offby1