How to read Haskell
Jump to navigation
Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.
This stub is intended to become a tutorial on reading Haskell. It's aimed at the non-Haskeller who probably doesn't care too much about trying to write code, but wants to understand it.
The tutorial
...needs to be written
-- insert here some horrible (for the non-Haskeller) long example
-- something we can work through slowly (and show why we find it beautiful)
Hint: order doesn't matter
Outside of a monad, it really doesn't matter what order things in Haskell code appear. So if you see something like this...
foo = whatTheHeckIsBar
you should take into account that whatTheHeckIsBar
may be defined somewhere below foo
- scope in a nutshell
- except for monads? explain
Hint: use type signatures
When you see stuff like this
-- example please!
foo :: Bar Ping Pong -> Baz Zed Dubya -> IO (DoublePlus Good)
...don't fight it! These are type signatures and they are an incredibly useful way of getting a rough idea what a function is supposed to do.
- elaborate
What confuses non-Haskellers
Since this tutorial is not yet written, we encourage you to note here the things which confuse non-Haskellers about the code code.
- layout instead of semicolons?
- super-super-concise stuff (things using liftM and liftM2)
- the difference between and
x <- foo
x = foo