[Haskell] Real life examples

Tomasz Zielonka tomasz.zielonka at gmail.com
Wed Nov 24 02:07:26 EST 2004


On Tue, Nov 23, 2004 at 08:50:45PM -0800, John Meacham wrote:
> Atom.hs from ginsu..
> 
> This is perhaps the best example, and an incredibly useful piece of code
> for anyone struggling with space problems out there.
> 
> it provides
> 
> data Atom = ... (abstract)
>         
> instance Ord Atom
> instance Eq Atom
> toAtom :: String  -> Atom
> fromAtom :: Atom -> String
> 
> [...]
>
> internally, Atom has a global hash table of strings -> atoms, note that
> externally, Atom is truly purely functional. toAtom and fromAtom
> although using internal state inside are real functions. the same
> argument always returns the same (externally visible) result. This is
> because the actual integer chosen is hidden, there is no way to get at
> it outside the module. 

Just a nitpick: will this code always yield the same results?

  map fromAtom $ sort $ map toAtom $ words "Just a nitpick"

Best regards,
Tom


More information about the Haskell mailing list