00:05 (quit) dnolen: Quit: dnolen 00:58 (join) jonrafkind 01:11 (join) samth 01:12 rrenaud: i want to make a list with a bunch of random elements, and i am tempted to do something like (map generate-random (make-list n)), but it seems wasteful/wrong to generate a dummy list when all i need is the size, and to totally ignore the parameters in in generate-random 01:14 jonrafkind: (for/list ([n (in-range 1 n)]) (generate-random))) 01:27 (quit) samth: Ping timeout: 250 seconds 01:43 (quit) em: Ping timeout: 260 seconds 01:51 (join) em 01:58 rrenaud: i am trying to randomly shuffle a list 01:58 rrenaud: convinently, it is mentioned in the docs 01:58 rrenaud: (sort '(1 2 3) #:key (lambda (x) (random)) #:cache-keys? #t) 01:58 rrenaud: . . sort: no case matching 1 non-keyword argument; arguments were: '(1 2 3) #:cache-keys? #t #:key # 01:58 rrenaud: but i still can't manage to get it right 01:59 rrenaud: i see 01:59 rrenaud: i omitted the compare function 02:00 (quit) jonrafkind: Ping timeout: 252 seconds 02:04 (join) acon 03:03 (quit) acon: Quit: acon 03:30 (quit) qha: Remote host closed the connection 03:50 (join) qha 04:29 (join) samth 04:39 (quit) samth: Ping timeout: 240 seconds 05:23 (join) RaceCondition 05:55 (join) masm 08:12 (join) dnolen 08:25 (join) lucian 09:19 (join) MayDaniel 09:33 (quit) MayDaniel: Read error: Connection reset by peer 09:45 (join) carleastlund 10:18 (quit) dnolen: Quit: dnolen 10:27 (join) tauntaun 11:10 (join) anRch 11:14 (quit) lucian: Remote host closed the connection 11:18 (join) ckrailo 11:34 (join) lucian 11:41 (join) samth 11:50 (quit) RaceCondition: Quit: RaceCondition 11:52 samth: rrenaud, you can also use `build-list' 11:52 samth: rudybot, doc build-list 11:52 rudybot: samth: your sandbox is ready 11:52 rudybot: samth: error: help: no documentation found for: build-list provided by: "/usr/local/racket-textual/collects/scheme/main.rkt" 11:52 samth: rudybot, doc build-list racket 11:52 rudybot: samth: expecting: doc 11:53 samth: rudybot, init racket 11:53 rudybot: samth: your racket sandbox is ready 11:53 samth: rudybot, doc build-list 11:53 rudybot: samth: error: help: no documentation found for: build-list provided by: "/usr/local/racket-textual/collects/racket/main.rkt" 11:53 samth: grrr, rudybot 12:00 tauntaun: Does PLT have any plans to implement a faster immutable hashtable? 12:01 (join) RaceCondition 12:01 tauntaun: Let me phrase it more honestly: would PLT consider it? 12:05 (quit) samth: Ping timeout: 250 seconds 12:08 bremner_: can haz code? 12:18 (join) mceier 12:24 (quit) tauntaun: Quit: Ex-Chat 12:31 (quit) anRch: Quit: anRch 12:32 (join) MayDaniel 12:47 (join) anRch 13:03 (quit) rudybot: Ping timeout: 252 seconds 13:06 (join) tauntaun 13:09 carleastlund: tauntaun: are our immutable hashtables excessively slow? 13:10 (quit) anRch: Quit: anRch 13:19 tauntaun: carleastlund: For my present purposes, the immutable hash is fine. But I'm trying to keep a small community interested in Racket, and I sense (maybe wrongly) that they would prefer something asymptotically better. 13:27 (join) samth 13:28 samth: tauntaun, definitely 13:33 tauntaun: samth: I'm actually not sure what the "definitely" refers to. :-) You saying PLT would definitely be interested in improving the hash? 13:33 samth: tauntaun, yes 13:34 samth: irc as async medium :) 13:35 (join) dnolen 13:35 tauntaun: So I'm curious: is there any particular data structure you had in mind? 13:36 dnolen: is it possible to select the language you want to use from the REPL? 13:53 eli: tauntaun: What would you use other than a balanced tree? 13:53 eli: dnolen: You can use the `-I' flag, if your question is about the racket command line. 13:54 samth: eli, there are a bunch of better data structures 13:54 samth: Clojure has a good one, for example 13:54 eli: OK, but that doesn't answer my question... 13:55 samth: no, i mean a better immutable hash table data strucutre 13:55 dnolen: eli: like, 'racket -I r5rs' ? 13:55 eli: dnolen: yes. 13:55 dnolen: eli: thx 13:56 eli: samth: My question is *what* structure? 13:56 eli: (I'm not arguing, I just am pretty out of touch with that stuff.) 13:57 eli: s/just am/am just/ 13:57 samth: eli, Hari's thesis describes Clojure's data structure (hash lists) 13:57 samth: that's what I'd try first, if I were tauntaun 13:58 eli: samth: Is there a quick description of that? 13:59 eli: (There is a wikipedia page, which is on something else.) 14:00 rrenaud: wow, log(N) for hash lookup seems pretty slow/scary/lame to me 14:02 samth: eli, P. Bagwell. Fast Functional Lists, Hash-Lists, Deques and Variable Length Ar- 14:02 samth: rays 14:02 eli: rrenaud: log time is "practically constant", I suspect that the advantages would be in creating the hash. 14:03 rrenaud: an in other news, quicksort is O(N)? 14:03 tauntaun: eli: a patricia trie? bitmapped vector trie? I really don't know, as I'm (quite purposely) not a data structures buff. 14:04 samth: rrenaud, have you benchmarked you use of racket functional hash tables? 14:04 eli: rrenaud: Huh? Obviously not. 14:05 rrenaud: i've barely used racket, it just surprised me that someone would be happy with a library implementation of hash tables that are as slow as O(log(n)) for lookup 14:05 tauntaun: One of those has an access time of log_32(n), which is pretty close to constant, IMO. 14:06 eli: rrenaud: That's the *immutable* version, mutable hash tables are what you'd expect. 14:07 rrenaud: in my mind, an immutable version should be at least as fast as a mutable version 14:07 rrenaud: take a data structure, remove some constraints from it, it should be no worse 14:08 (quit) tauntaun: Quit: Ex-Chat 14:09 eli: rrenaud: That's certainly possible: you're talking about implemnting the immutable hash table as a mutable one with a bit set that forbids modifying it. 14:10 eli: But the problem with that is adding an item to the hash, or "modifying" it (in the sense of creating a new one with a different mapping for one value). 14:10 eli: If you implement it as a regular hash with a read-only bit, these operations become an extremely expensive copy operation for the whole table. 14:11 eli: samth: The abstract of that thing is talking about vlists... 14:13 eli: (Which is a good point in itself, BTW -- I never thought about replacing conses with something like that as the fundamental type for lists, and it sounds like they did it.) 14:13 rrenaud: i mean, i can see how to make a mutable hash backed by an immutable hash such that those things are still fast 14:14 rrenaud: i guess i am mostly in from the procedural world, where immutable -> mostly static 14:15 eli: rrenaud: The problem is implementing *immutable* hash tables, not mutable ones. 14:15 eli: I can see how coming from an imperative world would make things confusing... 14:15 eli: Think about creating a hash table in steps of adding one item at a time. 14:16 eli: You start with an empty table H0, then you add one item, and the result is H1 that has that item, etc etc. 14:16 rrenaud: right 14:16 eli: You end up with Hn, which is the table of everything you wanted to put in. 14:16 rrenaud: i mean, i can see vaguely see how to do this, but seems like the structure is much more like a tree than a hash 14:16 eli: But the whole point is doing that in a "functional" way, which means that you should still have access to H1, H2, H3, ..., Hn-1 14:17 rrenaud: a hash is a big flat list with some collision resolution mechanism 14:17 eli: And if the implementation is a conventional hash table, then that means that you now have n hash tables in memory -- and that is definitely not a good idea. 14:22 (quit) martinhex: Read error: Connection reset by peer 14:25 (join) martinhex 14:30 (quit) martinhex: Write error: Connection reset by peer 14:33 (join) LarryNY 14:33 (part) LarryNY 14:36 (join) martinhex 14:43 (quit) MayDaniel: Read error: Connection reset by peer 14:46 (quit) martinhex: Read error: Connection reset by peer 14:47 (join) martinhex 14:51 (join) saint_cypher 14:52 (quit) saint_cypher: Remote host closed the connection 14:54 (join) saint_cypher 15:23 (quit) martinhex: Read error: Connection reset by peer 15:24 (join) martinhex 16:13 (join) mceier_ 16:14 (quit) mceier: Ping timeout: 250 seconds 16:25 samth: eli, ping 16:26 samth: eli, please update svn permissions 16:36 samth: clklein, one other thing 16:37 samth: here's a hack to get more space @nocopyrightspace 16:37 (quit) ckrailo: Quit: Computer has gone to sleep. 16:38 eli: samth: I just saw it now, and did it. 16:39 clklein: samth: sneaky :) Thanks! 16:39 samth: thanks, eli -- works now 16:39 samth: clklein, makes your life harder if you get in, but that the good kind of problem :) 16:40 clklein: heh 17:05 samth: clklein, another space saver -- cut the gui elements from the screenshot (the font size etc) 17:14 (join) ckrailo 17:26 (join) anRch 17:26 (join) tauntaun 18:04 (join) PLT_Notify 18:04 PLT_Notify: racket: master Robby Findler * 99e9bd9 (3 files in 2 dirs): exported arrow->pict 18:04 PLT_Notify: racket: master Robby Findler * 85b846f (1 files in 1 dirs): added one more accented char to scribble 18:04 PLT_Notify: racket: master commits 8793475...85b846f - http://bit.ly/fkxQbl 18:04 (part) PLT_Notify 18:14 (quit) lucian: Ping timeout: 248 seconds 18:15 (join) lucian 18:17 (quit) ckrailo: Quit: Computer has gone to sleep. 18:22 (join) PLT_Notify 18:22 PLT_Notify: racket: master Vincent St-Amour * 2e81106 (1 files in 1 dirs): Add the capital version of an accented character to Scribble. - http://bit.ly/gRY4T8 18:22 (part) PLT_Notify 18:24 (quit) anRch: Quit: anRch 18:25 clklein: stamourv: Trying to one-up Robby, eh? 18:26 (quit) tauntaun: Quit: Ex-Chat 18:26 DT``: how can I get a byte string from a signed byte, like with integer->integer-bytes? 18:27 stamourv: clklein: my knowledge of odd characters is my pride 18:27 stamourv: did you know that unicode has a character for the zero-thirds fraction? 18:27 stamourv: it's used in japanese baseball to count the number of outs, so of course, it had to go into unicode 18:28 clklein: obviously 18:28 clklein: What else are going going to do with all those bits? 18:29 stamourv: well, they _are_ being somewhat conservative 18:29 stamourv: for instance, I believe they're still adamantly opposed to including the klingon alphabet 18:29 stamourv: which is, as you would expect, the source of much chagrin in some corners of the internet 18:30 clklein: :) 18:30 (join) ckrailo 18:33 (part) rrenaud 18:59 (join) acon 19:18 (quit) mceier_: Quit: leaving 19:26 (quit) dnolen: Ping timeout: 252 seconds 19:26 (quit) acon: Quit: acon 19:46 (quit) ckrailo: Quit: Computer has gone to sleep. 19:50 (quit) saint_cypher: Ping timeout: 240 seconds 20:08 (quit) masm: Quit: Leaving. 20:12 (quit) samth: Ping timeout: 252 seconds 20:47 (join) tauntaun 20:56 (join) dnolen 21:00 tauntaun: Two questions. First, sorry if I'm being a nag about this, but is no one else lamenting the loss of four days of IRC logs? Second, would PLT be interested in my presenting my burgeoning text-based RPG at Racket Days, or is that a bit passe? (Question 2b: is there a deadline for Racket Days?) (Question 2c: Can I attend Racket Days just as a spectator, without contributing/presenting?) 21:14 (join) saint_cypher 21:16 carleastlund: tauntaun: I can answer 2a and 2c; the answer to both is yes. Feel free to present any Racket program if you think other Racketeers might find it interesting. On the other hand, if you don't want to present, you can still absolutely attend. 21:16 (quit) carleastlund: Quit: carleastlund 21:57 (quit) DT``: Ping timeout: 248 seconds 22:00 (quit) tauntaun: Quit: Ex-Chat 22:09 (join) DT`` 22:20 (join) tauntaun 22:28 (quit) RaceCondition: Quit: RaceCondition 23:04 (join) samth 23:08 (join) ckrailo 23:09 (quit) ckrailo: Remote host closed the connection 23:10 (join) ckrailo 23:20 (quit) tauntaun: Quit: Ex-Chat 23:23 (quit) qha: Ping timeout: 240 seconds 23:25 (join) qha 23:25 samth: clklein, you still working? 23:33 (quit) DT``: Ping timeout: 255 seconds 23:46 (join) DT``