00:13 (quit) jeapostrophe: Ping timeout: 240 seconds 00:27 RacketCommitBot: [racket] plt pushed 2 new commits to master: http://git.io/fkea7g 00:27 RacketCommitBot: [racket/master] Lightened icon outlines - Neil Toronto 00:27 RacketCommitBot: [racket/master] Removed the animated GIF of the running stickman :( - Neil Toronto 01:11 (join) ambrosebs 01:14 ambrosebs: whats does "unify" in the infer-dummy namespace do in typed-racket? https://github.com/plt/racket/blob/master/collects/typed-racket/infer/infer-dummy.rkt 01:14 rudybot: http://tinyurl.com/7addzta 01:15 ambrosebs: or, it's being used in the types/subtype namespace, what am I missing? 01:31 (quit) jrslepak: Ping timeout: 248 seconds 01:36 (join) jrslepak 01:49 (join) jonrafkind 01:57 (quit) jrslepak: Quit: Leaving 02:02 (quit) AlbireoX: Read error: Connection reset by peer 02:02 (join) AlbireoX 02:21 (quit) realitygrill: Quit: realitygrill 03:09 (quit) karswell: Read error: Connection reset by peer 03:12 (join) gciolli 03:31 (join) Blkt 03:31 (join) karswell 03:38 (quit) karswell: Ping timeout: 240 seconds 03:44 Twey: 193624 < jonrafkind> well, what sorts of errors do type systems prevent? only the class that gives the wrong kind of data to an operation 03:45 jonrafkind: 193624 < jonrafkind> well, what sorts of errors do type systems prevent? only the class that gives the wrong kind of data to an operation 03:45 Twey: jonrafkind: Spoken like someone who has not played with one of the newer static languages ;) 03:45 jonrafkind: like what 03:46 Twey: In something like Haskell you can encode all sorts of useful invariants in the type system 03:46 Twey: (like that a handle is closed after it's used, or that a matrix is square) 03:46 jonrafkind: can you emulate const from c++? 03:47 jonrafkind: well I know about sub-structural type systems 03:47 jonrafkind: im pretty sure you can't emulate java's synchronized in haskell's type system 03:47 Twey: In a dependently-typed language like Agda or ATS, you can encode even more, like a proof that the function always outputs what you expect it to output given the allowed inputs 03:47 jonrafkind: yea ive used agda 03:47 jonrafkind: that is an insane system.. 03:47 Twey: Haskell's pure, so everything's const anyway 03:48 Twey: Have you played with STM? 03:48 jonrafkind: no, is it in haskell? 03:48 Twey: That does the equivalent of Java's ‘synchronized’. 03:48 Twey: Yes 03:48 Twey: (well, it's a general concept, but the research was done with Haskell) 03:48 Twey: (AFAIK) 03:49 jonrafkind: well you have to explicitly put expressions inside STM blocks for it to work, with java you can declare a variable sycnrhonized 03:50 Twey: That's not really an issue that can be compared with Haskell, though, since variables are immutable 03:50 jonrafkind: so what do you need STM for at all then in haskell 03:51 (quit) Shviller: Ping timeout: 260 seconds 03:51 Twey: You can construct programs that modify state 03:51 Twey: But it's not done with the usual Haskell idea of ‘variables’ 03:51 (join) Shviller 03:51 Twey: Instead you have a type that's explicitly mutable like IORef or MVar; if you use a TVar (the STM mutable threadsafe variable type) it's ‘synchronized’ by the implementation 03:52 jonrafkind: ok well in any case I would claim that haskell's and agda's type system are not really useable.. that is only experts can use them properly 03:52 jonrafkind: so even though they have the power to do complex things its not worth it 03:53 Twey: http://www.ats-lang.org/EXAMPLE/ — the big scary block of code at the bottom is an implementation of the boring old Fibonacci function that proves at compile-time that it will always return the Fibonacci number for the given input 03:53 Twey: Haskell's type system is not that scary 03:53 (quit) gciolli: Quit: Leaving. 03:53 jonrafkind: ive gotten some frustrating type errors in haskell 03:53 Twey: Agda's and ATS's maybe. Dependent types can get a bit hairy. But like anything it depends what you're doing with them. 03:54 jonrafkind: i mean ocaml is like an order of magnitude easier and that has stumped me for quite some time before 03:54 Twey: If you're a newbie then anything is frustrating *shrug* 03:54 jonrafkind: who said im a newbie? 03:54 jonrafkind: you just assume so because i dont like those systems 03:55 Twey: You didn't know about STM & apparently weren't aware of how variables in Haskell work; I infer that you're not that experienced with Haskell 03:55 Twey: Which is fine; I'm not judging you for that, I'm just saying that, as with any language, it will be confusing until you're familiar with it 03:55 jonrafkind: those things are basically orthogonal to the type system which i have played with 03:56 Twey: Perhaps more than usual, because it's significantly dissimilar to other languages you probably know 03:56 Twey: I'd disagree with that totally. Writing actual programs is what the typesystem is meant for. 03:57 Blkt: good morning everyone 03:57 Twey: Good morning, Blkt 03:57 jonrafkind: psh, write a type for the y combinator 03:57 jonrafkind: type systems get in the way 03:57 Twey: jonrafkind: http://r6.ca/blog/20060919T084800Z.html 03:57 (join) ahinki 03:58 Blkt: :D 03:59 jonrafkind: oh, I heard somewhere that the y combinator was untypeable 03:59 Twey: It's untypeable in the simply-typed lambda calculus 03:59 Twey: Higher-order type systems have no problem with it 04:05 Twey: Oh, pardon, polymorphic lambda calculus can't do it either — you need at least system F-omega 04:05 (quit) jonrafkind: Ping timeout: 245 seconds 04:48 (join) bluezenix 04:49 (quit) bluezenix: Client Quit 04:49 (join) bluezenix 04:52 (join) sindoc 05:03 (join) karswell 05:05 (join) abbe_ 05:07 (join) shachaf_ 05:07 (quit) Gertm: *.net *.split 05:07 (quit) shachaf: *.net *.split 05:07 (quit) abbe: *.net *.split 05:08 (join) Gertm 05:10 (join) masm 05:14 (nick) shachaf_ -> shachaf 05:15 (quit) karswell: Ping timeout: 252 seconds 05:16 (join) karswell 05:27 (join) noelw 05:45 (quit) karswell: Ping timeout: 240 seconds 05:55 (quit) helisz: Quit: Phallic Illuminatus 06:11 (join) mceier 06:47 (quit) bluezenix: Quit: Leaving. 06:56 (join) Lajla 06:58 (quit) ahinki: Read error: Connection reset by peer 06:58 (join) ahinki_ 06:58 (nick) ahinki_ -> ahinki 07:01 (quit) abbe_: Changing host 07:01 (join) abbe_ 07:02 (nick) abbe_ -> abbe 07:06 (quit) abbe: Quit: Bee Wright Back 07:16 (join) abbe 07:17 (quit) abbe: Client Quit 07:22 (join) abbe 07:24 (join) dous 07:31 (join) bluezenix 08:30 (join) karswell 08:38 (quit) Blkt: Ping timeout: 240 seconds 08:38 (quit) karswell: Ping timeout: 272 seconds 08:43 (quit) rudybot: Remote host closed the connection 08:49 (join) karswell 08:50 (join) Blkt 08:52 (join) jao 08:56 (join) jeapostrophe 09:07 Twey: Is there a function to compare lists somewhere in Racket? 09:09 Twey: Or a generic comparison function, for that matter? (define (compare x y) (cond ((equal? x y) 0) ((< x y) -1) (else 1))) or so 09:21 sindoc: (andmap equal? '(1 4 2) '(1 4 2)) 09:25 RacketCommitBot: [racket] plt pushed 4 new commits to master: http://git.io/VhqYpQ 09:25 RacketCommitBot: [racket/master] Debian squeeze is back, and a typo. - Eli Barzilay 09:25 RacketCommitBot: [racket/master] Guide proofread - daniel watson 09:25 RacketCommitBot: [racket/master] correction for performance.scrbl - Danny Yoo 09:26 sindoc: Twey: if you want a single truth value to be returned after comparing the two lists, then use andmap; should you need a list of truth values for each pair of elements in both lists, then use map tout court ;) 09:28 (quit) noelw: Quit: noelw 09:29 Twey: sindoc: That doesn't work if the lists aren't the same size, though 09:31 sindoc: It depends on the semantics of your program; one possibility is to return #f before considering per-element comparison i.e. (andmap equal? lst-a lst-b) 09:31 sindoc: Also note that this only works for flat lists 09:32 sindoc: so if you have nested cycle-free lists (aka. trees) then you should consider a deep-map 09:57 RacketCommitBot: [racket] plt pushed 1 new commit to master: http://git.io/PnBRCw 09:57 RacketCommitBot: [racket/master] adjust two 2htdp test files so they don't run in drdr (they are interactive) - Robby Findler 09:58 Gertm: what's the best way to zero-fill numbers when converting them to a string? 09:59 Gertm: 4 -> "04" 10:11 RacketCommitBot: [racket] plt pushed 1 new commit to master: http://git.io/sZSC2w 10:11 RacketCommitBot: [racket/master] clear the "what was the last language?" state when moving out of the module language - Robby Findler 10:26 RacketCommitBot: [racket] plt pushed 20 new commits to release: http://git.io/AATGmA 10:26 RacketCommitBot: [racket/release] Removed accidental dependence of images/icons/stickman on racket/gui - Neil Toronto 10:26 RacketCommitBot: [racket/release] fix `find-files' to convert an initial string into a path - Matthew Flatt 10:26 RacketCommitBot: [racket/release] Union types instead of clobbering them in the type table. - Vincent St-Amour 10:27 bremner: Gertm: I dunno about best, but maybe use format 10:31 (nick) chaozzbubi -> ChaozZBubi 10:31 (join) noelw 10:33 Gertm: bremner: I just wrote a little function that solved my specific case :) no biggie 10:46 Twey: Is format Turing-complete yet? ;) 10:46 (join) jrslepak 10:49 (quit) ahinki: Quit: ChatZilla 0.9.88 [Firefox 10.0/20120111092507] 10:51 bremner: probably. Hence it is the answer to every question ;) 10:55 (nick) jschuster_away -> jschuster 11:19 (quit) veer: Remote host closed the connection 11:38 (quit) SeanTAllen: Write error: Connection reset by peer 11:52 (join) SeanTAllen 11:55 (join) grettke 12:15 (quit) bluezenix: Quit: Leaving. 12:21 (join) realitygrill 12:23 (quit) Blkt: Quit: ERC Version 5.3 (IRC client for Emacs) 12:30 (join) Rye_ 12:37 (quit) SeanTAllen: Remote host closed the connection 12:37 RacketCommitBot: [racket] plt pushed 2 new commits to master: http://git.io/swpLug 12:37 RacketCommitBot: [racket/master] added pad-handler facility - Matthias Felleisen 12:37 RacketCommitBot: [racket/master] added documentation for pad-handler facility - Matthias Felleisen 12:50 (nick) samth_away -> samth 12:50 (quit) grettke: Ping timeout: 248 seconds 12:58 (join) SeanTAllen 13:02 (quit) offby1: Remote host closed the connection 13:14 (quit) jrslepak: Quit: This computer has gone to sleep 13:20 (join) jonrafkind 13:26 (join) bluezenix 13:31 (quit) bluezenix: Client Quit 13:34 (quit) SeanTAllen: Remote host closed the connection 13:47 (join) add^_ 13:50 (join) sindoc1 13:50 (quit) sindoc: Read error: Connection reset by peer 13:53 (quit) add^_: Quit: add^_ 13:53 (join) anRch 13:54 (join) SeanTAllen 13:58 (quit) anRch: Quit: anRch 14:04 (join) bluezenix 14:38 (quit) bluezenix: Quit: Leaving. 14:48 (quit) noelw: Quit: noelw 14:52 RacketCommitBot: [racket] plt pushed 1 new commit to master: http://git.io/H3uFrg 14:52 RacketCommitBot: [racket/master] Icon fixes: - Neil Toronto 14:57 (topic) -: Racket -- http://racket-lang.org -- logs @ http://racket-lang.org/irc-logs 14:57 (names) -: gabot dsantiago jschuster Fulax jamessan ChaozZBubi SeanTAllen sindoc1 jonrafkind Rye_ realitygrill jeapostrophe jao karswell dous Lajla mceier masm Gertm shachaf Shviller AlbireoX ambrosebs kmc dgs zerokarmaleft Twey acarrico freakazoid_ em sethalve_ ChibaPet petey SHODAN rapacity PfhorSlayer chandler stchang danking samth stamourv carleastlund rsimoes bfulgham Shvillr Oxryly Mathieu kanak ernst cataska kandinski mario-goulart aidy hyko ozzloy m4burns 14:57 (names) -: jrslepak_ dspt elliottcable bremner cipher snorble tauntaun mattmight _p4bl0 eMBee asumu offby1_ cky tonyg @ChanServ 14:57 (notice) card.freenode.net: [freenode-info] if you're at a conference and other people are having trouble connecting, please mention it to staff: http://freenode.net/faq.shtml#gettinghelp 14:57 (join) abbe 14:58 (join) gf3 14:59 (quit) offby1_: Ping timeout: 252 seconds 15:01 (quit) Rye_: Ping timeout: 258 seconds 15:03 (quit) jeapostrophe: Ping timeout: 240 seconds 15:04 (join) offby1 15:08 (join) eli 15:12 (join) anRch 15:19 (join) bluezenix 15:38 RacketCommitBot: [racket] plt pushed 1 new commit to master: http://git.io/NQ4Vng 15:38 RacketCommitBot: [racket/master] this creates a repeatable cored dump in drracket - Matthias Felleisen 15:46 (part) sindoc1 16:02 (quit) anRch: Quit: anRch 16:07 (join) jeapostrophe 16:11 (join) EmmanuelOga 16:17 RacketCommitBot: [racket] plt pushed 1 new commit to master: http://git.io/bfD3Ew 16:17 RacketCommitBot: [racket/master] fixing silly mistake, plus test; please merge - Matthias Felleisen 16:22 (nick) samth -> samth_away 16:36 (quit) jeapostrophe: Ping timeout: 252 seconds 16:40 (join) jeapostrophe 16:42 (nick) freakazoid_ -> freakazoid 16:45 (quit) jeapostrophe: Ping timeout: 255 seconds 16:52 (quit) EmmanuelOga: Ping timeout: 244 seconds 16:54 (quit) realitygrill: Quit: realitygrill 17:11 (join) jeapostrophe 17:11 RacketCommitBot: [racket] plt pushed 1 new commit to master: http://git.io/yc0PCw 17:11 RacketCommitBot: [racket/master] macro-stepper: fix relative require bug (set current-directory) - Ryan Culpepper 17:16 (nick) ChaozZBubi -> chaozzbubi 17:25 (join) dnolen 17:28 (join) Nanakhiel 17:28 (quit) jeapostrophe: Ping timeout: 252 seconds 17:31 (quit) Lajla: Ping timeout: 240 seconds 17:31 (join) sindoc 17:33 (join) sindoc1 17:33 (quit) sindoc1: Client Quit 17:33 (quit) sindoc: Read error: Connection reset by peer 18:11 (nick) jschuster -> jschuster_away 18:16 (quit) mceier: Quit: leaving 18:19 (join) jrslepak 18:27 (join) realitygrill 19:03 (join) platinuum 19:18 (quit) bluezenix: Quit: Leaving. 19:19 (join) rudybot 19:23 (join) offby1` 19:23 (quit) offby1`: Changing host 19:23 (join) offby1` 19:26 (quit) offby1: Disconnected by services 19:27 (join) offby1 19:27 (quit) offby1: Disconnected by services 19:27 (nick) offby1` -> offby1 19:28 (join) offby1_ 19:30 (quit) karswell: Ping timeout: 240 seconds 19:33 (join) karswell 19:38 (quit) masm: Quit: Leaving. 19:40 (quit) ambrosebs: Remote host closed the connection 19:40 (join) ambrosebs 19:51 (quit) jonrafkind: Ping timeout: 245 seconds 19:56 (join) mintsoup 20:00 mintsoup: If I have a pre-existing dc, is there a way to simply draw it on a canvas? Or am I required to invoke methods on the dc within the paint-callback? 20:16 (join) EmmanuelOga 20:22 (quit) karswell: Ping timeout: 252 seconds 21:06 RacketCommitBot: [racket] plt pushed 6 new commits to release: http://git.io/vShSpQ 21:06 RacketCommitBot: [racket/release] added pad-handler facility - Matthias Felleisen 21:06 RacketCommitBot: [racket/release] added documentation for pad-handler facility - Matthias Felleisen 21:06 RacketCommitBot: [racket/release] Icon fixes: - Neil Toronto 21:07 (join) Daemmerung 21:27 (quit) Daemmerung: Quit: Smoove out. 22:11 (join) jonrafkind 22:25 (quit) zerokarmaleft: Quit: leaving 22:38 (quit) SeanTAllen: Read error: Connection reset by peer 22:50 (join) racketnewbie 22:53 racketnewbie: How can I use relative paths to organize R6RS libraries? Like section 6.1.1 in the manual: http://docs.racket-lang.org/guide/module-basics.html?q=libraries 22:53 (join) veer 22:53 (join) SeanTAllen 22:55 (nick) Nanakhiel -> MrsBadAtom 23:36 asumu: racketnewbie: http://docs.racket-lang.org/r6rs/libpaths.html explains how R6RS module paths are converted. 23:43 asumu: racketnewbie: You may also want to use the ++path option to use the current directory as a collection path. 23:49 (quit) EmmanuelOga: Ping timeout: 244 seconds 23:52 (quit) racketnewbie: Ping timeout: 258 seconds 23:55 (quit) jrslepak: Quit: This computer has gone to sleep