News for hackers. Stuff that matters.
Re:Haskell GHC 9.0.1-alpha by sullyj3 on Wednesday September 30, 2020 @11:51AM (#24640047)
knowledge about haskell tends to be presented in a "first principles" fashion for whatever reason, which is unfortunate. It's not a very pedagogically sound method. I think it has to do with the systematic temperament of most haskell programmers. But motivation and example should really come first.

The important thing is to not be intimidated. You can really get away with just mimicing code:

  main = do x <- getLine
            putStrLn ("Hello, " ++ x)  
for quite a while before you find that you actually need a proper understanding of the underlying concepts of eg. what monads are and how they work. This is enough to get your classic beginner command line programs running. You can do useful stuff with a very basic understanding. And yet you see people trying to start with

  (>>=) :: m a -> (a -> m b) -> m b
  pure  :: a -> m a
as if that's supposed to be in any way meaningful or useful to a newcomer. The trick is to find the good tutorials that give examples for concepts first, and do a good job of demonstrating why abstracting those examples is a useful thing to do.
Re:Haskell GHC 9.0.1-alpha by tome on Wednesday September 30, 2020 @01:26PM (#24641213)
The problem is that if you start with something simple like your do block then people start complaining "but what is a monad???".
Re:Haskell GHC 9.0.1-alpha by dpratt71 on Wednesday September 30, 2020 @07:44PM (#24645492)
It's an abstraction to facilitate writing do blocks. Mostly tongue in cheek.
Re:Haskell GHC 9.0.1-alpha by tome on Thursday October 01, 2020 @03:28AM (#24648330)
I find this a surprisingly simple and convenient explanation!