The Fixed Point: Laziness, Recursion and Fixed Points in Haskell
rebeccaskinner.net
rebeccaskinner.net
On the other hand, it allows for many programs to be written in nicer, more direct and declarative ways. As well as allowing for weirdness like in this article. But maybe a lot of that is more coming from code transformations enabled by purity and something like clojure-style lazy sequences (or strict if they are finite) plus aggressive inclining and stream fusion would be sufficient.
I quite like how Haskell does it now, and reasoning about its performance honestly isn't bad. And that's worn GHC optimizing like crazy (which is actually what makes Haskell performance wonky to think about - not laziness.)
[0] https://en.wikibooks.org/wiki/Haskell/Denotational_semantics
Fixed points are also an important part of the technique described in the paper "Abstracting Definitional Interpreters" https://arxiv.org/pdf/1707.04755.pdf
https://github.com/rebeccaskinner/rebeccaskinner.github.io/b...