Duncan Coutts wrote:
On Fri, 2005-06-03 at 10:53 +0200, Gracjan Polak wrote:
As intern behaves like id and does not have any side effects, I thought
its interface should be purely functional. But I do not see any way to
do it :( I'll end up with a monad, probably.
In related question: does anybody here have experience/benchmarks/tests
how/if is PackedString better (uses less memory) than String in parsing
tasks?
GHC itself uses a rather low level thing it calls FastString which is
basically a pointer into a character array with a length and a unique
id. The unique ids are allocated by entering each FastString into a
global hash table which also provides sharing if the same string is seen
more than once (like your itern feature).
I thought FastString was first incarnation of PackedString, thanks for
the hint it could be something more.
Does HaXml use any such optimization for XML element name handling?
It is all very low level and ghc-specific however and probably only
makes sence in a compiler-like application.
Exactly my setting.
Duncan
--
Gracjan
_______________________________________________
Haskell-Cafe mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/haskell-cafe