00:04 lewis1711: how should I check two hashtables are the same? 00:05 lewis1711: eh forget it I'll just check they return the same thing for the same keys 00:05 mithos28: lewis1711: equal? 00:06 lewis1711: mithos28: nope :( 00:06 lewis1711: http://pastebin.com/9KQrcAkT 00:06 lewis1711: I used a hash-ref for '(1 . 2) instead 00:09 mithos28: because those are not the same hashes 00:09 mithos28: your function creates a mutable one, the one from the reader is an immutable one 00:11 mithos28: asumu: The reason that that function generates gensyms, is that it needs to in case you are instantiating B with something that contains free As 00:11 mithos28: rudybot: init typed/racket 00:11 rudybot: mithos28: your typed/racket sandbox is ready 00:12 mithos28: (: e (All (B) (All (A) (A -> B)))) 00:12 mithos28: rudybot: (: e (All (B) (All (A) (A -> B)))) 00:12 rudybot: mithos28: Done. 00:12 mithos28: rudybot: (define (e) (e)) 00:12 rudybot: mithos28: error: #:1:0: Type Checker: Expected a function of type (A -> B), but got a function with the wrong arity in: (lambda () (#%app e)) 00:12 mithos28: rudybot: (define (e x) (e x)) 00:12 rudybot: mithos28: error: Type Checker: Summary: 2 errors encountered 00:13 mithos28: rudybot: (plambda: (A) ((x : A)) (inst e A)) 00:13 rudybot: mithos28: ; Value: # 00:13 rudybot: mithos28: ; stdout: "- : (All (A) (A -> (All (g4355) (g4355 -> A)) : ((! False @ e) | (False @ e))))\n" 00:13 rudybot: mithos28: ; stderr: "Type Checker: Duplicate definition for e in: #%top-interaction\n#:1:14: Type Checker: Cannot apply expression of type (All (B) (All (A) (A -> B))), since it is not a function type in: (#%app e x)\n" 00:14 lewis1711: why the hell does make-hash take a different format than hash 00:14 mithos28: you want make-immutable-hash probably 00:14 mithos28: rudybot: init racket 00:14 rudybot: mithos28: your sandbox is ready 00:14 mithos28: rudybot (hash 'a 2 'b 3) 00:14 mithos28: rudybot: (hash 'a 2 'b 3) 00:14 rudybot: mithos28: ; Value: #hash((b . 3) (a . 2)) 00:15 asumu: mithos28: fair enough, but it could at least generate a nicer name like A4355. 00:16 mithos28: asumu: I'm gonna look at improving it to do something like that, and to use the original name if its not free in the substituted type 00:21 lewis1711: mithos28: do, looking at the guide and not reference. 00:40 (join) vu3rdd 00:40 (quit) vu3rdd: Changing host 00:40 (join) vu3rdd 00:40 (join) scott_ 00:40 (quit) scott_: Changing host 00:40 (join) scott_ 00:46 asumu: Ah, attachments. They never make it on e-mails... 00:48 lewis1711: this test driven development thing is pretty nifty 00:48 lewis1711: though it feels much less annoying in racket as I don't have to go through the trouble of subclassing things 00:49 mithos28: asumu: Its not true that if the prompts are different then the dynamic winds are different 00:49 mithos28: You can capture two different points of dynamic winds with prompt-1 being the base 00:50 mithos28: install prompt2, invoke continuation1, and then invoke continuation2 00:52 mithos28: In the current model, (2007), the dynamic winds would not be executed on invocation of continuation2 00:53 lewis1711: is there anyway to get "default values" in a hash? ie, if you hash-ref it with a key that does not exist 00:53 mithos28: rudybot: (hash-ref #hash() 'key 'default) 00:53 rudybot: mithos28: ; Value: default 00:54 lewis1711: ohhhh, right 00:54 mithos28: Does that work, or do you want the default to be part of the hash? If so you could write an impersonator or use a custom dictionary 00:56 mithos28: asumu: Do you not use gmail? It would warn you about attachments not being attached. 00:57 asumu: mithos28: I use mutt still. 00:58 asumu: Also, argh on that corner case. I should look for a test case that relies on that. 01:01 lewis1711: mithos28: that'll do the trick, I only call hash-ref in two places 01:04 (join) jeapostrophe 01:04 (quit) jeapostrophe: Changing host 01:04 (join) jeapostrophe 01:05 lewis1711: further stupid question - how do I unpack a list again? eg, (string-append "a" "b" "c"), but what to do if I have a list like '("a" "b" "c") 01:05 lewis1711: I know I could foldl but I am sure there was an easier way 01:05 mithos28: apply 01:05 lewis1711: that's the one 01:08 (quit) mceier: Quit: leaving 01:11 (quit) hash_table: Ping timeout: 240 seconds 01:12 (quit) axe_wielder: Ping timeout: 240 seconds 01:12 vu3rdd: anyone here also doing the Brown University CS173 course by Shriram Krishnamurthi starting on 5th? 01:13 mithos28: vu3rdd: I will be attempting to follow it, but unoficially 01:14 mithos28: I took the version from 4 years ago, and TA'd the version 2 years ago 01:14 asumu: mithos28: you had something like this in mind? https://gist.github.com/3616831 01:14 vu3rdd: mithos28: very cool! 01:15 vu3rdd: mithos28: I am taking it. I hope I will be able to do the final project. 01:15 mithos28: asumu: That looks about right, its a little hard to follow 01:16 asumu: I might watch the videos. I'm curious how SK teaches. I've only seen him teach in workshops. 01:16 asumu: (and that wasn't PL but HtDP, which was neat) 01:16 (quit) cataska: Read error: No route to host 01:17 asumu: mithos28: hard to construct one of these that isn't hard to follow. call/cc is just bad. 01:17 asumu: I can comment it though, at least. 01:17 mithos28: yeah, Those might help 01:19 (join) cataska 01:19 mithos28: So the other issue is when is the abort handler triggered? If you don't have the dynamic winds there, is the abort handler supposed to be called when you invoke k2 01:23 asumu: mithos28: yeah, it should. Since k2 is aborting the continuation. 01:23 asumu: (though immediately re-installs it) 01:24 mithos28: but if the dynamic winds are there, it doesn't? 01:24 (quit) Kaylin: Quit: Leaving. 01:26 asumu: That was Matthew's proposed semantics, I think. 01:28 asumu: It seems like basing whether the handler is run based on that is pretty unfortunate though. 01:29 asumu: Since you have no idea if a given procedure you call will install dynamic winds or not. 01:29 mithos28: I agree that was what he said in the email, but I think its the wrong semantics 01:29 asumu: Based on the barrier issue or anything else? 01:29 asumu: I agree it won't work for continuation barriers. 01:30 mithos28: based on that it could detect dynamic winds in a continuation without triggering them 01:32 mithos28: If the model installed a dw frame right after the prompt frame with empty spurs, I think that the semantics would be better 01:33 mithos28: then the abort handler would only happen if you were really changing out the continuation below the prompt with something entirely different 01:38 asumu: In which case, the dw frame is basically tagging the prompt frame. 01:39 mithos28: but corresponds to the continuation installed past the prompt 01:40 asumu: Right, that's neat. 01:40 mithos28: so If I capture a continuation up to p1, and then invoke it where p2 is the closest prompt, then I invoke the p2 abort handler, and then install the dw frame above p2 01:46 scott_: why does (member 2 (list 1 2 3 4)) return '(2 3 4)? when does this come in handy? 01:47 asumu: rudybot: (cond [(member 2 (list 1 2 3 4)) => (lambda (lst) (map add1 lst))]) 01:47 rudybot: asumu: ; Value: (3 4 5) 01:47 asumu: scott_: you can use the result instead of just having a boolean around that you can't do much with 01:48 scott_: yeah, I'm just wondering where that specific result is useful 01:48 mithos28: and you need it wrapped it a list so that (member #f '(#t #f)) doesn't return just #f 01:48 scott_: ah, good point 01:57 lewis1711 is pleasantly surprised at file reading in racket 01:59 lewis1711: file->lines *thumbsup* 02:00 mithos28: Also look at in-lines, if the file is too big to read in all at once 02:04 lewis1711: is there anything like remove but that doesn't stop at the first instance? 02:04 lewis1711: I could write my own very easily with filter 02:04 mithos28: remove* 02:06 lewis1711: rudybot: (remove* 1 '(1 2 1)) 02:06 rudybot: lewis1711: your sandbox is ready 02:06 rudybot: lewis1711: error: remove*: expected argument of type ; given: 1 02:07 lewis1711: rudybot: (remove* '(1) '(1 2 1)) 02:07 rudybot: lewis1711: ; Value: (2) 02:07 lewis1711: ohh, right 02:07 lewis1711: I actually read that in the docs but didn't click 02:10 (join) mceier 02:12 lewis1711: rudybot: (require racket/string) 02:12 rudybot: lewis1711: Done. 02:13 lewis1711: rudybot: string-split 02:13 rudybot: lewis1711: error: reference to an identifier before its definition: string-split in module: 'program 02:14 lewis1711: http://docs.racket-lang.org/reference/strings.html#%28part._.Additional_.String_.Functions%29 says it should be in there 02:14 rudybot: http://tinyurl.com/9hhvkn4 02:14 mithos28: rudybot: init racket 02:14 scott_: lewis1711: I believe rudybot isn't running the latest version of racket 02:14 rudybot: mithos28: your sandbox is ready 02:15 lewis1711: ohh, there's a new version 02:15 lewis1711: cool 02:17 (join) gciolli 02:42 (quit) jeapostrophe: Ping timeout: 276 seconds 02:45 (quit) jonrafkind: Ping timeout: 240 seconds 02:56 (join) dsantiago 02:57 (quit) scott_: Quit: Leaving 02:57 (join) bitonic 02:59 (join) scott_ 02:59 (quit) scott_: Changing host 02:59 (join) scott_ 03:04 (quit) scott_: Quit: Leaving 03:05 (join) scott_ 03:05 (quit) scott_: Changing host 03:05 (join) scott_ 03:10 (join) djcoin 03:14 (quit) cdidd: Read error: Operation timed out 03:22 (quit) jackhammer2022: Quit: Textual IRC Client: http://www.textualapp.com/ 03:47 (join) jesyspa 03:57 (quit) zurtik: Ping timeout: 252 seconds 03:57 (quit) sklentikle: Ping timeout: 252 seconds 03:57 (quit) popaya: Ping timeout: 252 seconds 03:57 (quit) jyc: Remote host closed the connection 03:58 (quit) romtank: Ping timeout: 252 seconds 03:58 (join) popaya 03:58 (join) zurtik 03:58 (join) sklentikle 03:58 (join) romtank 04:12 (quit) mithos28: Quit: mithos28 04:23 (join) noelw 04:31 lewis1711: actual: (set 'c) 04:31 lewis1711: expected: # 04:31 lewis1711: any idea what that means? output of rackunit test 04:31 lewis1711: oh nevermind, quoting things wrong 04:31 noelw: Context? 04:37 (join) Jeanne-Kamikaze 04:49 lewis1711: http://pastebin.com/PPS76E3r any idea why line 124 loops over and over again and prints (set "q") ? test case on 148 shows expected behaviour. am I misunderstanding how foldl works in racket? 04:52 lewis1711: ok, so just after I post it I figure it out. I was folding with states and states never changes 04:52 lewis1711: sorry, I swear I was looking at it for ages before this 04:54 (join) majoh 04:54 (quit) scott_: Quit: Leaving 04:55 lewis1711: actually no that doesn't really help. agh 04:59 noelw: Looks like you're not reducing the size of the list before you make the recursive call 05:00 noelw: If I was Matthias I'd tell you to write out your contracts and use the design recipe 05:00 lewis1711: reducing the size of the list? what do you mean? 05:01 noelw: In the recursive call to eclose 05:01 noelw: the states are getting any smaller 05:01 noelw: the size of the set of states, that is 05:02 lewis1711: oh right 05:02 lewis1711: because even when eclose returns the empty set 05:02 lewis1711: it's still going to continually perform set-union 05:02 lewis1711: right? or did you mean something else? 05:06 Haffe: Hmmm. Another question. 05:06 Haffe: Is there a philosophical reason that the mouse handling event inside a canvas in the racket gui is called on-event? 05:07 Haffe: It seems to me that it would be more intuitive to call it on-mouse-event or on-mouse-acitivity. 05:36 (join) MayDaniel 05:45 lewis1711: noelw: just in case you were dyeing to know, I am 90% sure I have it right now :) http://pastebin.com/MwkydjPA 05:55 (join) bitonic` 05:56 (quit) bitonic: Disconnected by services 05:56 (nick) bitonic` -> bitonic 06:10 (join) masm 06:11 noelw: Groovy 06:15 (join) molbdnilo 06:28 (quit) molbdnilo: Quit: molbdnilo 06:30 (join) molbdnilo 06:58 lewis1711: http://pastebin.com/GZxsKQtH how can I check for the exception without actually triggering it and halting the interprter? 11 is my attempt 06:58 (join) add^_ 07:13 noelw: (check-exn exn:fail? (lambda () blah blah blah)) 07:14 noelw: l8rs 07:14 (quit) noelw: Quit: noelw 07:22 (join) bamaung 07:24 (join) ncw 07:29 (quit) bamaung: Quit: ERC Version 5.3 (IRC client for Emacs) 07:54 (quit) molbdnilo: Quit: molbdnilo 07:55 (join) DeadPanda 07:56 (part) lewis1711 08:24 (join) kanak 08:48 (join) getpwnam 08:49 (join) hash_table 08:53 (quit) MayDaniel: Read error: Connection reset by peer 09:03 (join) jeapostrophe 09:03 (quit) jeapostrophe: Changing host 09:03 (join) jeapostrophe 09:03 (join) add^_^ 09:04 (quit) add^_: Read error: Connection reset by peer 09:04 (nick) add^_^ -> add^_ 09:04 (join) molbdnilo 09:08 (join) noelw 09:19 (quit) ncw: Remote host closed the connection 09:26 (quit) hash_table: Ping timeout: 248 seconds 09:26 (quit) getpwnam: Ping timeout: 248 seconds 09:31 (join) add^_^ 09:33 (nick) add^_^ -> add^_ 09:38 (join) jao 09:38 (quit) jao: Changing host 09:38 (join) jao 09:48 (join) jschuster 09:49 (join) cdidd 09:54 (quit) molbdnilo: Quit: molbdnilo 10:00 (quit) jeapostrophe: Ping timeout: 244 seconds 10:10 (join) molbdnilo 10:10 (quit) molbdnilo: Client Quit 10:12 (quit) mceier: Quit: leaving 10:14 (quit) vu3rdd: Ping timeout: 276 seconds 10:18 (join) Kaylin 10:18 (quit) jrslepak: Quit: What happened to Systems A through E? 10:22 (quit) Jeanne-Kamikaze: Quit: Did you hear that ? 10:28 (join) jrslepak 10:32 (quit) jrslepak: Ping timeout: 244 seconds 10:38 (join) getpwnam 10:39 (join) hash_table 10:39 (join) Jeanne-Kamikaze 10:51 (quit) Jeanne-Kamikaze: Quit: Did you hear that ? 10:58 (quit) DeadPanda: Quit: Leaving 10:59 (join) ncw 11:02 (join) Jeanne-Kamikaze 11:03 (join) MayDaniel 11:06 (join) jrslepak 11:07 (quit) ncw: Remote host closed the connection 11:10 (quit) dnolen: Ping timeout: 248 seconds 11:21 (join) MightyFoo 11:22 MightyFoo: i just completed an euler problem which required some very precise floating point operations 11:22 MightyFoo: i got an answer which was 3e-10 out (so i *ahem* guessed at the last digit) 11:23 MightyFoo: are floating point numbers in racket less precise than their cousins in other languages 11:23 MightyFoo: (or am i just a shabby coder)? 11:23 (nick) MightyFoo -> tim-brown 11:24 ianjneu: They are machine floats. 11:25 tim-brown: that's "double float"? 11:25 tim-brown: rather than "long doubles" or any such? 11:25 ianjneu: The default is double. You have to specifically ask for single-flonums 11:25 ianjneu: I don't think the compiler does semantics changing transformations that assume associativity, like some compilers do. 11:25 (join) nilyaK 11:26 tim-brown: hmm, maybe i'm doing too many precision-lossy operations 11:26 ianjneu: Ya, we don't have a flonum linear interval analysis to tell you theoretical ranges of your bindings. 11:29 (join) anRch 11:30 (join) mceier 11:31 (join) jeapostrophe 11:31 (quit) jeapostrophe: Changing host 11:31 (join) jeapostrophe 11:33 (quit) djcoin: Ping timeout: 246 seconds 11:33 (quit) jeapostrophe: Read error: Connection reset by peer 11:34 (join) jeapostrophe 11:34 (quit) jeapostrophe: Changing host 11:34 (join) jeapostrophe 11:41 (join) jrslepak_ 11:42 (join) djcoin 11:43 (quit) jrslepak_: Client Quit 11:51 (join) jrslepak_neu 11:59 (join) jeapostr1phe 11:59 (quit) jeapostrophe: Read error: Connection reset by peer 12:09 (join) mithos28 12:17 (quit) djcoin: Ping timeout: 252 seconds 12:19 tim-brown: night all 12:22 (quit) gciolli: Quit: Leaving. 12:30 (join) flying_rhino 12:31 (join) jonrafkind 12:34 (quit) anRch: Quit: anRch 12:41 (join) anRch 12:42 (quit) noelw: Quit: noelw 12:46 (quit) jeapostr1phe: Ping timeout: 260 seconds 12:52 (join) noelw 12:55 (quit) noelw: Client Quit 13:09 (join) noelw 13:09 (quit) noelw: Client Quit 13:28 (join) Shviller 13:35 (quit) mithos28: Quit: mithos28 13:36 (join) eli 13:36 (quit) eli: Changing host 13:36 (join) eli 13:44 (join) mye 13:53 (join) jeapostrophe 13:53 (quit) jeapostrophe: Changing host 13:53 (join) jeapostrophe 13:55 (quit) anRch: Quit: anRch 14:11 (join) mye_ 14:14 (quit) mye: Ping timeout: 244 seconds 14:21 Haffe: Yawn. 14:22 stamourv: Tired? 14:23 (join) noelw 14:23 (quit) jeapostrophe: Ping timeout: 255 seconds 14:25 (quit) noelw: Client Quit 14:29 (join) jeapostrophe 14:29 (quit) jeapostrophe: Changing host 14:29 (join) jeapostrophe 14:37 (nick) ameoba__ -> ameoba 14:46 (join) gciolli 14:46 (quit) nilyaK: Ping timeout: 240 seconds 14:48 (join) nilyaK 14:49 (join) anRch 14:53 (join) noelw 14:56 (quit) jonrafkind: Ping timeout: 240 seconds 15:00 (quit) Nisstyre_: Quit: Leaving 15:01 (join) Nisstyre 15:02 (nick) Nisstyre -> Nisstyre_ 15:28 (quit) spanner: Ping timeout: 264 seconds 15:32 (join) mye__ 15:33 (join) spanner 15:35 (quit) MayDaniel: Read error: Connection reset by peer 15:36 (quit) mye_: Ping timeout: 260 seconds 15:41 (quit) hash_table: Ping timeout: 252 seconds 15:41 (quit) getpwnam: Ping timeout: 252 seconds 15:44 (join) jonrafkind 15:46 (join) MayDaniel 15:49 (quit) anRch: Quit: anRch 16:04 (quit) dsantiago: Quit: Computer has gone to sleep. 16:06 (join) add^_ 16:19 (quit) kanak: Ping timeout: 240 seconds 16:30 (quit) nilyaK: Quit: Leaving. 16:33 (join) getpwnam 16:34 (join) hash_table 16:51 (quit) jeapostrophe: Ping timeout: 268 seconds 16:52 (join) jeapostrophe 16:52 (quit) jeapostrophe: Changing host 16:52 (join) jeapostrophe 17:00 (join) bitonic 17:02 (quit) MayDaniel: Read error: Connection reset by peer 17:42 (join) RacketCommitBot 17:42 RacketCommitBot: [racket] plt pushed 2 new commits to master: http://git.io/p1NWjQ 17:42 RacketCommitBot: [racket/master] ffi/unsafe: change `cast' to avoid pitfalls for you - Matthew Flatt 17:42 RacketCommitBot: [racket/master] racket/class: add `dynamic-get-field' and `dynamic-set-field!' - Matthew Flatt 17:42 (part) RacketCommitBot 17:53 (join) jackhammer2022 17:54 (quit) karswell: Remote host closed the connection 18:00 (quit) jeapostrophe: Ping timeout: 245 seconds 18:04 (join) karswell 18:07 (quit) jesyspa: Quit: leaving 18:11 (quit) noelw: Quit: noelw 18:18 (quit) Jeanne-Kamikaze: Quit: Did you hear that ? 18:21 (join) juanfra 18:22 (join) lewis1711 18:24 (join) mye_ 18:27 (quit) mye__: Ping timeout: 276 seconds 18:30 (quit) jrslepak: Quit: What happened to Systems A through E? 18:38 (quit) gciolli: Quit: Leaving. 18:39 (quit) jonrafkind: Ping timeout: 246 seconds 18:51 (join) dsantiago 18:52 (quit) karswell: Remote host closed the connection 18:53 (join) karswell 18:53 (join) jyc 18:54 (join) dnolen 18:54 (join) billyoc` 18:55 (join) Nisstyre_ 18:55 (quit) billyoc`: Remote host closed the connection 18:55 (quit) billyoc: Ping timeout: 252 seconds 19:12 (quit) masm: Quit: Leaving. 19:25 lewis1711: how can I make the accessors of a struct public? ie, provide them outside the module. do i have to do it explicitly for each one? 19:37 (join) jrslepak 19:39 lewis1711: http://docs.racket-lang.org/reference/require.html#%28form._%28%28lib._racket/private/base..rkt%29._struct-out%29%29 got it :) 19:39 rudybot: http://tinyurl.com/cs5zt3q 19:42 (quit) dnolen: Remote host closed the connection 19:46 (quit) dsantiago: Quit: Computer has gone to sleep. 19:56 (quit) popaya: Quit: Konversation terminated! 19:56 (quit) sklentikle: Read error: Connection reset by peer 19:56 (quit) romtank: Read error: Connection reset by peer 19:56 (quit) zurtik: Read error: Connection reset by peer 19:57 (join) dsantiago 19:59 (join) jeapostrophe 19:59 (quit) jeapostrophe: Changing host 19:59 (join) jeapostrophe 20:00 (join) romtank 20:00 (join) sklentikle 20:00 (join) zurtik 20:01 (join) popaya 20:05 (quit) dsantiago: Quit: Computer has gone to sleep. 20:09 (join) dsantiago 20:09 (quit) dsantiago: Client Quit 20:15 (join) dnolen 20:17 (quit) bitonic: Ping timeout: 245 seconds 20:29 (quit) karswell: Remote host closed the connection 20:39 (join) karswell 20:44 (join) dnolen` 20:48 (quit) dnolen: Ping timeout: 276 seconds 20:52 (join) dsantiago 20:58 (join) yours_truly 20:58 (join) Fare 20:58 (quit) Nisstyre_: Ping timeout: 264 seconds 21:00 (quit) yours_truly: Read error: Connection reset by peer 21:00 Fare: Hum. How do I do epigrams in scribble? 21:01 Fare: i.e. a quote that's specially typeset on a block that vastly indented, at the start of a chapter. 21:01 offby1: beats me 21:02 (quit) juanfra: Quit: juanfra 21:05 (join) Nisstyre_ 21:08 (quit) mye_: Ping timeout: 245 seconds 21:16 (quit) add^_: Quit: add^_ 21:18 (quit) jeapostrophe: Ping timeout: 252 seconds 21:19 lewis1711: what sort of a function can I use to fold a list into a smaller list, but not an atom? 21:19 lewis1711: ie I don't want to fold all of it, but maybe just two elements based on some condition 21:20 offby1: well, "fold" is pretty general 21:21 offby1: I use for/fold all the time. Or I did, back when I actually wrote Racket code 21:21 lewis1711: as a stupid example, I have a list of numbers '(1 1 2 3 4). and I want to add all numbers that are eq? to 1, to get '(2 2 3 4) 21:27 lewis1711: rudybot: (for/fold ([n '(1 1 2 3 4)]) #:when (>= n 1) +) 21:27 rudybot: lewis1711: error: #:1:0: for/fold: bad syntax in: (for/fold ((n (quote (1 1 2 3 4)))) #:when (>= n 1) +) 21:30 lewis1711: rudybot: (for/fold ([sum 0]) 21:30 lewis1711: ([n '(1 1 2 3 4)] 21:30 lewis1711: #:when (>= 1 n)) 21:30 lewis1711: (+ sum n)) 21:30 rudybot: lewis1711: DrRacket doesn't indent for/fold correctly 21:33 bremner: rudybot: eval 'something 21:33 rudybot: bremner: your sandbox is ready 21:33 rudybot: bremner: ; Value: something 21:47 lewis1711: wish there was a find duplicates 21:51 (join) scott_ 21:51 (quit) scott_: Changing host 21:51 (join) scott_ 21:53 lewis1711: I've got it - partition the list, fold one of the partitions, then append the two lists. 22:06 (quit) dnolen`: Remote host closed the connection 22:12 (join) dnolen 22:33 (quit) Fare: Ping timeout: 246 seconds 22:40 (join) jeapostrophe 22:40 (quit) jeapostrophe: Changing host 22:40 (join) jeapostrophe 22:40 (join) dnolen` 22:42 (quit) dnolen: Ping timeout: 244 seconds 22:46 (quit) Shviller: Ping timeout: 264 seconds 23:12 (join) mithos28 23:14 (quit) dnolen`: Ping timeout: 244 seconds 23:19 (join) jonrafkind 23:33 lewis1711: well, that was the post painful list-processing I have done in quite some time :) 23:35 (join) vu3rdd 23:35 (quit) vu3rdd: Changing host 23:35 (join) vu3rdd 23:36 asumu: lewis1711: finding duplicates? 23:37 lewis1711: asumu: no, folding only some elements in a collection if they meet some criteria and passing the rest unhindered 23:37 lewis1711: I implemented haskells groupBy 23:37 lewis1711: that helped 23:38 asumu: Oh okay. Racket has a group-by. Also check-duplicate. 23:38 asumu: rudybot: (require unstable/list) 23:38 rudybot: asumu: Done. 23:38 asumu: rudybot: doc group-by 23:38 rudybot: asumu: http://docs.racket-lang.org/unstable/list.html#(def._((lib._unstable%2Flist..rkt)._group-by)) 23:38 asumu: rudybot: doc check-duplicate 23:38 rudybot: asumu: http://docs.racket-lang.org/unstable/list.html#(def._((lib._unstable%2Flist..rkt)._check-duplicate)) 23:39 lewis1711: why were you not here an two hours ago :( 23:41 lewis1711: the API of check-duplicate is very confusing 23:41 asumu: Sorry. :p At least you got some exercise though. 23:42 lewis1711: that's true 23:43 (join) dnolen 23:56 (part) lewis1711 23:59 (quit) scott_: Remote host closed the connection