[Haskell-cafe] Lazy lists with with call-by-value reduction strategy.
roma at ro-che.info
Tue Feb 11 23:31:05 UTC 2014
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
Also, your interpreter doesn't seem to finish in a reasonable time on
your own input.
* flicky frans <flickyfrans at 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 at haskell.org
-------------- next part --------------
A non-text attachment was scrubbed...
Size: 819 bytes
Desc: Digital signature
More information about the Haskell-Cafe