00:22 (join) jonrafkind 00:29 Demosthenes: what is it about racket.... i'm just so productive.... 00:29 Demosthenes: its more addicitive than perl 01:08 offby1: I haven't produced much in racket, but it is indeed fun 01:14 (quit) mheld: Quit: mheld 01:41 (quit) parcs: Ping timeout: 245 seconds 01:42 (join) parcs 02:42 Lajla: Demosthenes, perl being addictive would be the ultimate proof that mind-crippling substances generally are 02:44 (quit) martinhex: Remote host closed the connection 02:47 (quit) jonrafkind: Ping timeout: 240 seconds 02:54 (join) martinhex 03:19 (join) kingping 03:19 kingping: (moin) 03:44 Lajla: (cps-moin Lajla) 03:50 kingping: .) 03:51 Lajla: kingping, continuation passing style is the future baybe. 03:52 kingping: Lajla: Heheh I haven't understood it yet. 03:52 kingping: Though seen it used in example for Erlang. 04:00 Lajla: kingping, I have, it's actually not that hard as people make it to be. 04:00 Lajla: That, or I'm just brilliant. 04:00 Lajla: I've also used the style in descriptive mathematics. 04:00 kingping: :] 04:00 Lajla: As it no longer requires you to arbitrarily deep embed expressions into each other, but you can just define a series of equations where one function call is identical to another. 04:01 kingping: I will learn them someday. 04:01 Lajla: Like forall k : factorial(k,0) := factorial(k,1) 04:01 Lajla: kingping, good boy. 04:01 Lajla pats kingping. 04:02 kingping: :-D 04:03 kingping: If they can be used in Haskell, there no way for them to escape me. 04:03 Lajla: kingping, they can, but call/cc is some extremely complex monad whose exact semanics has eluded me. 04:03 Lajla: But the cool part is that in CPS, call/cc becomes a pure function. 04:03 Lajla: (define (cps-call/cc k proc) (proc k k)) 04:04 kingping: A combinator! 04:04 Lajla: Yeah 04:04 Lajla: I had not even realized that. 04:05 kingping: .) 04:05 Lajla: No doubt someone has already shown or noted that its type in fact corresponds to some logical axiom. =P 04:06 kingping: Heh likely 04:51 Lajla: kingping, one thing I don't get though 04:52 Lajla: say you haskell it cpsCallCC k proc = proc k k 04:52 Lajla: Like, Haskell functions are technically all single-argument, no? 05:03 (join) masm 05:28 kingping: Lajla: They are :) 05:29 kingping: I think you might need to specify type explicitly if you try to implement your continuations in Haskell though. 05:30 Lajla: kingping, yeah, so how does cps then work? 05:30 Lajla: Because the function MUST return I think. 05:30 Lajla: Like, say you have (+) SomeRandomContinuation 1 2 05:31 kingping: Heheh I dunno, haven't looked into CPS actually. 05:31 Lajla: THen the ((+) SomeRandomContinuation) must return its value, that is, an addition function which has some continuation. 05:31 Lajla: kingping, I think you should, for meeee? 05:32 kingping: That's why I said you would probably need to specify type explicitly, because it would be impossible to infer the type. It's my opinion. 05:32 kingping: I would :-) I'm doing my research on the other thing at the moment ;-) 05:34 kingping 's going through http://en.wikipedia.org/wiki/Continuation 05:35 Lajla: kingping, I thought it was proven that Haskell could infer a type for any function? 05:36 Lajla: kingping, say you have a return statement in a function. 05:36 Lajla: But this is presented to you as a function. 05:36 Lajla: What that return function does when given an argument is basically, as a function, with I/O and all that shebang, do exactly with that value what would happen if the function would that return it. 05:36 Lajla: That function is the continuation of the function call. 05:36 Lajla: Which is just necessarily different on each call. 05:37 Lajla: So like, say, you have a return-lambda, which in its body binds the variable 'return to that function. 05:37 kingping: Lajla: kingping, I thought it was proven that Haskell could infer a type for any function? // I would say it's possible. 05:37 Lajla: That is then basically the continuation of the function call. 05:39 kingping: You're unable to compile recur x = recur $ x + 1 05:40 Lajla: Hmm 05:40 kingping: GHC knows that x is an instance of the Num typeclass, but it doesn't and cannot know what is the type of recur x 05:40 Lajla: because it's badly typed? 05:40 Lajla: So that gives you an ininite type or something? 05:40 kingping: That's why you would need to specify type explicitly, for example recur :: (Num a) => a -> a 05:41 Lajla: Ahhh 05:41 kingping: That would give me something useless :-D 05:41 kingping: Which's being used could result in memory overflow ! :-D 05:41 Lajla: Can Haskell handle foo x = x foo by the way? 05:41 Lajla: kingping, isn't that tail recursive? 05:43 kingping: Well, if this could be something like both foo would be something like (a -> a -> a) I think it's possible to say `foo x` and `x foo`. 05:44 kingping: Yes, as Scheme does, Haskell has the notion of tail recursion, too. 05:44 kingping: But it's rarely used. 05:44 kingping: Instead folds are leveraged. 05:44 kingping: And other higher-order funs. 05:44 Lajla: Hugs says foo x = x foo gives infinite type 05:44 kingping: Or list comprehensions. 05:45 Lajla: But then it wouldn't overflow memory right? 05:45 Lajla: Because it ś tail recursive 05:45 kingping: If it said it has infinite type, then it couldn't infer it. I wouldn't recommend using Hugs, but GHCi instead. 05:45 kingping: This is the case, when you have to specify the type manually IMO. 05:46 kingping: I'm neither Haskell expert, nor native english speaker. #Haskell for the rescue ;-D 05:46 Lajla: #haskell banned me a loooong time ago for inappropriate humour 05:47 kingping: Heheheh can't even imagine. 05:47 Lajla: I don't like GHCi to be honest. 05:47 Lajla: What do you mean? 05:47 kingping: Can't imagine how would you joke, so that you've been banned :) 05:47 kingping: There's Helium, or what it called. 05:48 kingping: If you want to be acquianted with Haskell. 05:49 kingping: It has more detailed error/warning messages in case something goes wrong during compilation. 05:49 kingping: Haven't tried though. 05:50 Lajla: kingping, someone asked what the difference between Haskell and Scheme was I said 'Haskell is used to fund terrorists and threatend the Free World Under God whereas Scheme ensures that your healthcare will never be free, obviously better' and they bannd me. 05:50 kingping: OMGLOL 05:50 Lajla: I get banned a lot though, after all, I'm generally not very helpful with those remarks. 05:50 Lajla: It depends on the operator and the people who ask the quaestion. 05:50 kingping: Heheh 05:51 Lajla: On #xml this one guy said he liked how I kept him entertained even though I didn't know the answer to his quaestion and told him to wait until ankh showed up. I'm on terribly thin ice here too though. 05:52 kingping: :] 05:52 Lajla: But kingping you're a haskellator trying to learn scheme? 05:52 kingping: Never seen a girl interested in xml, haskell, scheme. 05:53 kingping: Lajla: I'm doing my graduate work in Scheme. 05:53 kingping: One lib is already done http://bitbucket.org/yasir/scheme-bert 05:53 kingping: Now I'm doing a logical continuation of it in Racket. 05:54 Lajla: I'm actually not a girl though. 05:54 Lajla: Though, if I were, no doubt people would pardon my bad taste in humour, so maybe I should fake it. 05:54 Lajla: Ahh 05:54 Lajla: kingping, what is that work? 05:54 kingping: But yess, I liked the way Haskell deals the things, its type system. I've also seen there's typed Scheme thing in Racket. 05:55 kingping: Oh, sorry, I thought it were you who was a girl in #racket. 05:55 kingping: It's just a Scheme implementation for http://bert-rpc.org/ 05:56 kingping: (typed scheme docs.plt-scheme.org/ts-guide/) 05:56 kingping: Maybe I'll give it a try some day. 05:57 Lajla: Ahhh 05:57 Lajla: Yeah, there is a typed racket. 05:57 Lajla: I'm not a big fan of static typing myself, but a Hindly-Milder type system does make it less of a pain than how Java or C types. 05:58 kingping: However I'm doubting it's actively developed, and there are typeclasses like ones found in Haskell. 05:59 kingping: Lajla: I've noticed you make less errors, if you do in typed language. 06:00 Lajla: Maybe, but the time you spend extra in making your code conform to the type system seems to be more than your recuperate from the errors. 06:01 Lajla: Also, it's kind of annoying to know that your program is safe, but the compiler not accepting it because IT can't prove that it is. 06:02 kingping: Lajla: I won't argue, but when I did some Erlang, I specified types manually and used dialyzer, the things that are outside of the language. In Haskell you leverage its type system which _is_ a part of the language. It's unlikely to make an error. 06:04 kingping: Lajla: You're not required to specify types all the way, just those functions whose types could not be infered. :) 06:04 Lajla: Yeah, I know that. 06:04 Lajla: I don't mean specifying them. 06:04 Lajla: I mean that untyped languages can do some things that typed languages can't. 06:04 kingping: So, when you get used to typing, you do it automatically. 06:05 kingping: Untyped, or dynamically.. ah, Scheme seems to be untyped. 06:05 Lajla: Yeah, I think the term 'dynamic typing' is nonsense, it's untyped for me. 06:05 kingping: Wait, it's dynamically typed.. You cant (+) 2 "foo" 06:05 kingping: No? 06:05 kingping: ewps, (+ 2 "foo") 06:05 Lajla: You can do (+ 2 "foo"), it just produces an error, which is also I/O 06:06 kingping: ah 06:06 Lajla: In that way itś similar to (display 2 (current-error-port)) 06:06 Lajla: I see no reason why both would be fundamentally different, yet many people would say the former is a 'typer error' while the latter is not. 06:07 kingping: THere are some subtleties, indeed. 06:08 Lajla: But static typing is basically just a grammar thing. 06:08 Lajla: A way to view it is that statically typed languages are simply not context free in grammar. 06:09 Lajla: And that (+) 2 "foo" is simply 'ingrammatical' and a syntax error. 06:09 Lajla: Since this is checked statically, I don't really see a real reason except for some naïve human 'conceptualism' to say it is anything other than a syntax error. 06:09 kingping: :) 06:10 Lajla: So what you basically arrive at is saying that scheme has a context free grammar, while Haskell does not as the only real difference. 06:10 kingping: Probably. I expect advantages and disadvantages to be in both worlds. 06:10 kingping: If you compare. 06:11 Lajla: YEah, if one had only advantages, the other wouldn't exist of course. 06:12 Lajla: I mean, the fact that you don't have to rewrite age old badly written code is still an advantage of using COBOL. =) 06:12 kingping: Heheh, and disadvantage of its reader and maintainer :) 06:15 Lajla: I once read some argument in favour of COBOL, found it quite amsuing. 06:15 Lajla: what I don't get though is LaTeX 06:15 Lajla: It's popularity and sense of superiority of the users who use it, while it's a godawfully designed specification language for documents and layout. 06:16 kingping switched to docbook for code documentation 06:16 Lajla: Hmm, what is that, never heard of it? 06:17 kingping: Uhm, it's a set of XSL templates which define a number of tags, e. g. ,
, , and allow you to compose your document source in XML. 06:17 kingping: Then you can compile the source document which is in XML to HTML, PDF etc. 06:18 kingping: It's convenient to have your code in repo. 06:18 kingping: code + doc source 06:19 Lajla: Ahh, yeah. 06:19 Lajla: I make those things myself I guess when I author pages. 06:19 kingping: We're using FOP for that purpose. 06:19 Lajla: I tend to work in XML for it and sometimes make some program that translates it to latex. 06:20 Lajla: I think latex is a godawful language for specifying the structure or layout of a document. 06:20 Lajla: Also, I hate PDF as a format, I don't think that things like font size, line hight, font family and all those layout and legibility stuff should be a property of the document, but of the viewer. 06:20 kingping: Well, I think it's reasonnable to use latex when you've got a bunch of formulae. 06:21 Lajla: People are different, they should be able to configure their viewer to display it as they find it the most readable themselves. 06:21 Lajla: Well, that's the only reason it still used, and not for the specificatoin language, but because the program really outputs quite aesthetic formulae. 06:21 Lajla: but the language to input those formulae is a disaster. 06:21 kingping: I used it a bit, indeed :) 06:22 kingping: Haven't tried a WYSIWYG editor MilkTex though. 06:22 Lajla: Debugging latex is also a pain, one small typo can completely screw it up and the error messages are more cryptic than what exactly the crimes commited by Assange are. 06:22 kingping: :-D 06:22 Lajla: hmm, there's also LyX I guess. 06:22 kingping: Ah, LyX, I could mix them up. 06:23 Lajla: But I think a document specificaiton language should mainly be concerned with he structure of a document, not the layout, I also think a document format should reserve the viewer the liberty to change that. 06:23 Lajla: kingping, like, have you ever read those papers who use basically 1em line hight. 06:23 Lajla: Like, they have an empty line between each line. 06:23 kingping: Lajla: Then.. DocBook + HTML + CSS :-) 06:23 Lajla: YEah 06:24 Lajla: I'd kill to have a switch on the PDF viewer to turn that off. 06:24 Lajla: Such things should really be a property of the viewer, not of the document. 06:24 kingping: Red Hat and other companies use this in production. 06:24 Lajla: I like it. 06:24 Lajla: I think PDF should be replaced, or used only to send information to printers. 06:24 Lajla: But really not to send out documents in digital form to be read on a screen. 06:25 kingping: .) 07:26 (join) mceier 07:43 (join) MayDaniel 08:02 (quit) kingping: Quit: Vale. 08:07 (join) mheld 08:42 (quit) corruptmemory: Quit: Leaving 08:51 (quit) MayDaniel: 08:52 (join) MayDaniel 09:56 (quit) mceier: Quit: leaving 09:57 (join) sunnyps 10:08 (quit) mheld: Quit: mheld 10:10 (join) mheld_ 10:14 (quit) mheld_: Client Quit 11:43 (join) stis 12:05 (join) corruptmemory 12:48 (quit) MayDaniel: 12:51 (quit) sunnyps: Ping timeout: 264 seconds 13:01 (quit) martinhex: Remote host closed the connection 13:02 (join) martinhex 13:20 (join) jonrafkind 13:21 (join) mceier 13:45 (join) MayDaniel 14:00 (quit) Lajla: Ping timeout: 260 seconds 14:02 (join) mheld 14:10 (join) mheld_ 14:12 (quit) mheld: Ping timeout: 245 seconds 14:12 (nick) mheld_ -> mheld 14:24 (join) mheld_ 14:25 (join) anRch 14:27 (quit) mheld: Ping timeout: 276 seconds 14:27 (nick) mheld_ -> mheld 14:29 (join) Lajla 14:36 (quit) mceier: Quit: leaving 14:39 (quit) MayDaniel: Read error: Connection reset by peer 14:42 (quit) mheld: Ping timeout: 240 seconds 14:48 (quit) jonrafkind: Ping timeout: 264 seconds 15:23 (join) mheld 15:32 (quit) masm: Ping timeout: 240 seconds 15:34 (quit) anRch: Quit: anRch 15:38 (join) masm 16:03 (join) amacleod 16:04 amacleod: Is it common to have to run 'make install' multiple times on a multi-core machine running Linux? (racket-5.0.2) 16:22 clklein: amacleod: no 17:01 (quit) tv|z: Ping timeout: 245 seconds 17:03 (join) tv|z 17:14 (join) philo234 17:14 philo234: hi i am trying to build a vector filled with random value 17:14 philo234: (make-vector 8 ((lambda () (random 6)))) doesnt work as expected 17:15 amacleod: Hm.. I don't know what's going wrong. I keep getting match:error in different places. The only google results suggest problems with parallel build or running out of memory. 17:15 philo234: someone have a better method ? 17:16 amacleod: What're the input values for make-vector? 17:16 philo234: just want it filled with random value 17:16 philo234: values 17:17 philo234: i have this (vector-map (lambda (x) (random 8)) (make-vector 6)) , but seems ineficient no ? 17:18 amacleod: Hmm.. (make-vector k fill). I think fill is just supposed to be a value, not a function that generates fill values. 17:18 amacleod: philo234, how big of a vector do you want, and what sort of random numbers do you want in it? 17:19 philo234: random integer number 17:19 philo234: up to a specifed max 17:19 philo234: the vector would be pretty bbig like 1 000 000 entries 17:21 amacleod: Well, one benefit of vectors is that they're mutable. You could do something like (set! x (make-vector 5000)) and then loop over that vector, filling in random values. 17:21 philo234: that's what i was trying to avoid 17:21 philo234: but seems i have no choice 17:22 amacleod: philo234, why were you trying to avoid that? 17:22 amacleod: Aesthetics? 17:22 philo234: yes 17:23 philo234: pretty much 17:23 amacleod: You could generate a list and then use list->vector, but that would take longer since you have to generate the list and then the conversion presumably has to traverse the entire list. 17:23 philo234: if i use (vector-map (lambda (x) (random 8)) (make-vector 6)) 17:23 philo234: would the compiler be smart enought not to generate two copy of the vector ? 17:25 amacleod: Maybe, maybe not. 17:32 amacleod: (define (vector-generate k gen) (do ((v (make-vector k)) (i 0 (+ i 1))) ((= i k) v) (vector-set! vec i (gen)))) 18:10 (quit) parcs: Ping timeout: 255 seconds 18:10 (quit) stis: Remote host closed the connection 18:11 philo234: thanks 18:11 (join) parcs 18:13 (join) jonrafkind 18:46 (join) MayDaniel 19:03 (join) jao 19:03 (quit) jao: Changing host 19:03 (join) jao 19:14 (quit) MayDaniel: Ping timeout: 245 seconds 19:30 (quit) corruptmemory: Ping timeout: 245 seconds 20:09 (join) mceier 20:09 (quit) mceier: Client Quit 20:10 (join) mceier 20:57 (quit) mceier: Quit: leaving 21:26 (quit) philo234: Ping timeout: 265 seconds 22:46 (quit) masm: Ping timeout: 265 seconds 22:48 (quit) amacleod: Quit: amacleod -> sleep 23:19 (quit) mheld: Quit: mheld 23:22 (join) mheld_ 23:48 (join) sunnyps