Do you know about the Church encoding? I don't quite understand your encoding. Consider your cons function: cons = \x xs f z. f (\_. x) (\f' _. xs f' z); 1. Why do you pass (\_. x) instead of x to f? This looks like an attempt to delay evaluation of x, but by the time cons is applied, x must have been evaluated already due to CBV. 2. Why do you ask for a new f' but ignore the new z' (as compared to f and z)? Also, your interpreter doesn't seem to finish in a reasonable time on your own input. Roman * flicky frans <flickyfrans@gmail.com> [2014-02-12 00:46:47+0300]
Hello. I am currently writing lists with lazy semantics in the pure lambda-calculus with call-by-value reduction strategy. Here is an example: http://pastebin.com/SvQ5hCSD Here is a simple interpetator: http://pastebin.com/mejCWqpu Am I reinventing the wheel? Are there some sources, from where i can learn more about lazy evaluation in the strict languages? _______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe