14 Oct
2005
14 Oct
'05
2:13 a.m.
Dylan Thurston wrote:
The defining equations are: if flst is a value of a type |FR a|, then unFR flst f z = z if flst represents an empty list unFR flst f z = f e (unFR flst' f z) if flst represents the list with the head 'e' and flst' represents the rest of that list
Presumably you noticed that this is isomorphic to the representation of a list in lambda calculus, right?
Sorry I didn't point out the previous discussion and relevant work: http://www.haskell.org/pipermail/haskell-cafe/2005-July/010875.html http://pobox.com/~oleg/ftp/Computation/Continuations.html#cdr-fstream especially the reference therein: Corrado Boehm and Alessandro Berarducci: Automatic Synthesis of Typed Lambda-Programs on Term Algebras