Fun blog post on the subtleties of lazy IO in Haskell: https://ianthehenry.com/2016/3/9/lazy-io/
Related Posts
I'm having fun writing a simple type checker, but I'm learning firsthand why syntax-directed checking doesn't work. It prevents inference.
My checker catches real bugs, but it can't handle cases like this:
[1, 2].map(fun(x) { x + 1; })
I think I need bidirectional checking.
Do any tech streamers try new software live? It'd be a really fun way of doing UX testing.
It's odd how lazy evaluation is generally seen as a niche design choice, yet the vast majority of languages treat `foo() || bar()` as short-circuiting.