News for hackers. Stuff that matters.
Re:Monads Schmonads: Functional Input Without Tears (PYFL) by tromp on Sunday May 23, 2021 @05:51PM (#27258933)
> And you end up writing stuff like main = do { putStrLn "Hello, World!" ; return () } which to me looks like C. There must be a more functional approach.

It looks imperative because that's what Haskell's do-notation was designed to. But it's merely syntactic sugar for the functional equivalent

    main = putStrLn "Hello, World!" >> return ()
which btw is equivalent to simply

    main = putStrLn "Hello, World!"
Re:Monads Schmonads: Functional Input Without Tears (PYFL) by Choc13 on Monday May 24, 2021 @05:10AM (#27262372)
Yes! I've written about this from an F# perspective, which calls them 'computation expressions' instead of 'do notation', here https://dev.to/choc13/grokking-monads-imperatively-394a

If the author really doesn't like the "imperative" syntactic sugar then it's always possible to write equivalent code without it, but it quickly becomes painful for more complex situations.

'do notation' is just a more generalised version of what async/await does. No one wants to go back to writing async code with callbacks / continuations.