TBH it’s the default laziness that I like about Haskell at the momenthttps://twitter.com/vamchale/status/1034550145847906305 …
-
-
Replying to @alexelcu
Yeah, lazy languages give us a real-world fix-point operator whose nature is clear with just a glance. I'll admit to not having too strong a persuation, though. Often times I don't think of evaluation policy. If I'm living on the edge, I welcome suggestions.
0 replies 0 retweets 0 likes -
This Tweet is unavailable.
-
Googling I found a slide deck, but that only had a passing comment towards the end. Is there a paper about this lenient policy? Also, I couldn't figure out what ld 90 is.
1 reply 0 retweets 0 likes -
Lenient = wrap all computations in futures and evaluate asynchronously as inputs arise. Same evaluation order as eager in the case that no results are accessed before they’re produced.
1 reply 0 retweets 3 likes -
Replying to @TimSweeneyEpic @alexelcu
Yeah, but now if I want a really tidy fix-point or to think in terms of infinite lists, I'm going to need or want escape blocks from the defaults. It's hard to put a pin in the "common case," so I'm glad that Haskell exists to prove how far non-eager evaluation can take us.
1 reply 0 retweets 0 likes -
Lenient code looks exactly like lazy evaluation and behaves exactly the same as lazy would if all unevaluated thunks were kept around and eventually evaluated. The two interesting bits are - lenient evaluation integrates recursion and effects more cleanly than fixIO.
2 replies 0 retweets 1 like
And for optimizing thinks/futures away, recursive dependency analysis is much more permissive than strictness analysis.
Loading seems to be taking a while.
Twitter may be over capacity or experiencing a momentary hiccup. Try again or visit Twitter Status for more information.