this post was submitted on 04 Dec 2023
3 points (100.0% liked)
Haskell
6 readers
1 users here now
**The Haskell programming language community.** Daily news and info about all things Haskell related: practical stuff, theory, types, libraries, jobs, patches, releases, events and conferences and more... ### Links - Get Started with Haskell
founded 1 year ago
you are viewing a single comment's thread
view the rest of the comments
view the rest of the comments
I think Idris' bang notation for performing effects in a do-block is pretty, it could look like this:
Today, you'd have to come up with a new variable name or figure out the right combinator names:
But unfortunately there are more complicated cases:
In a strict language with built-in short-circuiting logical operations the
getLine
would never be performed, but in Haskell||
is just a normal function that happens to be lazy in its second argument. The only reasonable way to implement it seems to be to treat every function as if it was strict and always perform thegetLine
:Do you think this is confusing? Or is the bang notation useful enough that you can live with these odd cases? I'm not very happy with this naive desugaring.
@jaror