"Richard O'Keefe" <o...@cs.otago.ac.nz> writes:

> There's a long-known technique in functional languages
> where
>       [x1,...,xn]     => \tail -> x1:...xn:tail
>       xs ++ ys        => f . g
>       xs              => f []
>
> A correspondent mentioned to me that he couldn't find a reference
> to the idea (which I gather he had independently rediscovered).
> I know I've read about it somewhere.  Can anyone provide a reference?

They're called difference lists:
http://hackage.haskell.org/packages/archive/dlist/latest/doc/html/Data-DList.html

They allow O(1) snoc and append. I use them all the time!

G
-- 
Gregory Collins <g...@gregorycollins.net>
_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to