[Haskell-cafe] Lazy lists with with call-by-value reduction strategy.

Roman Cheplyaka 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
   and z)?

Also, your interpreter doesn't seem to finish in a reasonable time on
your own input.

Roman

* 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
> http://www.haskell.org/mailman/listinfo/haskell-cafe
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: Digital signature
URL: <http://www.haskell.org/pipermail/haskell-cafe/attachments/20140212/a2595610/attachment.sig>


More information about the Haskell-Cafe mailing list