[Haskell-cafe] Pure hashtable library

Jules Bean jules at jellybean.co.uk
Thu Aug 28 15:55:36 EDT 2008


Jason Dusek wrote:
> Jules Bean <jules at jellybean.co.uk> wrote:
>> Jason Dusek wrote:
>>> Jules Bean <jules at jellybean.co.uk> wrote:
>>>> Jason Dusek wrote:
>>>>> I would much rather have a pure Trie that is foldable.
>>>>> If we have a Trie, we get a space efficient sorted list,
>>>>> too.
>>>> Well, Data.Sequence can be used as a space efficient
>>>> sorted list which is Foldable - if you make the decision
>>>> to insert elements into it in a sorted way, obviously.
>>>>
>>>> What advantages would a Trie have over Data.Sequence?
>>> A trie is guaranteed sorted -- so using a trie amounts to a
>>> "type level" guarantee for binary search and any other
>>> algorithm that relies on sortedness.
>> ...No more so than a simple wrapper over a Data.Sequence which
>> puts the elements in the right place.
> 
>   If by a wrapper you mean a function, well that's not type
>   level at all. A binary search that insists on tries will, with
>   a correct trie implementation, behave correctly on every
>   input; a binary search that works with `Data.Sequence` will
>   fail on a substantial portion of the inputs accepted by the
>   type system, regardless of the data structure's correctness.

No. I meant a newtype with a non-exported constructor and exporting only 
methods which preserve sortedness.

Jules


More information about the Haskell-Cafe mailing list