IRC channel logs
2014-12-04.log
back to list of logs
<cky>sneek: later tell davexunit Re string-set!, at least R7RS does not require an O(1) implementation. So you can use a totally write a read-optimised, write-unoptimised string implementation. <davexunit>/me reads about "Relaxed Radix Balanced Trees" <sneek>Welcome back davexunit, you have 1 message. <sneek>davexunit, cky says: Re string-set!, at least R7RS does not require an O(1) implementation. So you can use a totally write a read-optimised, write-unoptimised string implementation. <cky>davexunit: So, for example, it seems like you can make your strings copy-on-write. <cky>davexunit: Also string-ref is not required to be constant-time either, in R7RS. This allows implementations to use UTF-8 or UTF-16 underlying representations. <davexunit>I mean, it's easy to use guile's strings as if they were immutable, much like we do with lists. <davexunit>but it would be great if they just *were* immutable. <cky>With lists, it's easy to argue for immutable, since lists are persistent data structures. <davexunit>though other imperative languages have immutable strings. <cky>Hmm, I notice that the newly-released Xcode 6.1.1 uses clang 600.0.56 (as opposed to 600.0.54 in Xcode 6.1). Wonder if that fixes anything for Guile. <cky>davexunit: Yes, that's true. <davexunit>but yeah, I understand your point. building an entirely new string after each op without being able to re-use parts of the old one kind of sucks. <ArneBab>davexunit: AFAIK Python does just that. <ArneBab>davexunit: and python is knows for being good at string handling (mostly by having lots of convenience functions) <sneek>civodul, you have 1 message. <civodul>neat, bikeshedding can now reach higher levels ;-) <davexunit>has anyone done work on an immutable vector implementation for guile? *mario-goulart is surprised GNALD is not there <davexunit>which offer "effectively constant time" operations <civodul>davexunit: vlists are sort of "immutable vectors" <civodul>that said, you should check ijp's "pfds" library <davexunit>pfds has hash array mapped tries, which this paper mentions <davexunit>this paper builds on that to provide a structure that improves upon concatenation and inserts while not changing the time complexity of the other operations. <civodul>right, so that's better than vlist in this respect <davexunit>I should read how the vlists are implemented. <davexunit>it would be cool for things like HAMTs to make it to core guile, no? <civodul>a vlist is a list of vectors of exponentially increasing size <civodul>i think some/most of pfds would be nice in core Guile <davexunit>I should use that for my minesweeper clone I'm writing <cky>ArneBab: Re knows->known, are you a Dvorak typist? :-D <cky>civodul: Re ijp's pfds and what not, I wonder how Guildhall is coming along. :-) <ArneBab>cky: I’m using a self-optimized keyboard layout ☺ it’s called cry and I completed my 3 year test 2 months ago, so it should be time for my evaluation and a last optimization run. But I didn’t yet get to do that… <cky>ArneBab: Interesting. I'm not quite that adventurous yet, but I've been using Dvorak for 11 years. <civodul>cky: well, guildhall is still working AFAICS :-) <ArneBab>cky: for english dvorak is really good, but it sucks for german