4 ms·
The Haskell introductory landscape has definitely changed. Learn You A Haskell for great good (http://learnyouahaskell.com http://learnyouahaskell.com) is an e
by hardwaresofton 9y ago
The Haskell introductory landscape has definitely changed.
Learn You A Haskell for great good (http://learnyouahaskell.com http://learnyouahaskell.com) is an excellent introductory book to read to get started with Haskell.
A drier but more in-depth read is http://book.realworldhaskell.org/ http://book.realworldhaskell.org/
Also, when you hit monads again, the best advice I can give you to understanding them (99% of Haskell guides out there seem to be about monads) is to take this path:
Functors -> Applicatives -> Monads
And check out this link:
http://adit.io/posts/2013-04-17-functors,_applicatives,_and_monads_in_pictures.html http://adit.io/posts/2013-04-17-functors,_applicatives,_and_...
I'm not sure those resources were around when last you tried haskell, but they're worth giving a read.
Haskell has M:N threading, and a strictness about types and semantics that's very refreshing to me. Yes, I could have written my most recent web project in some other language that would have been quicker (because it would have been simpler and likely more imperative), but I trust my codebase so much more with Haskell. Ironically it's my own understanding and clarity of thinking that I sometimes doubt now, but that's a good problem as far as I'm concerned, makes me think clearer.
[EDIT] - Can't believe I forgot, but Erik Meijer's series on Haskell is actually one of the first resources that actually got me really into it, it is absolutely fantastic, I actually watched the whole series before I read learn you a Haskell.
https://channel9.msdn.com/Series/C9-Lectures-Erik-Meijer-Functional-Programming-Fundamentals/Lecture-Series-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-1 https://channel9.msdn.com/Series/C9-Lectures-Erik-Meijer-Fun...
- jabl 9y agoI'm learning myself some Haskell (so I'm far from an expert, so take this with a grain of salt...), but AFAIK the current recommended introductory resources are described here: https://github.com/bitemyapp/learnhaskell https://github.com/bitemyapp/learnhaskell tl;dr: 1) If you want to buy a book, http://haskellbook.com/ http://haskellbook.com/ is supposed to be good 2) If you instead want to learn from free online sources, a) cis194 spring 2013 followed by b) The data61 course (links in the github link above).
- bulldoa 9y agoI am always curious why monad is important in functional language, isn't it accurate to say that monad is just a wrapper class?
- hardwaresofton 9y agoIn my opinion they're important to pure functional languages (like Haskell) because they're the abstraction that IO is isolated into (IO doesn't require monads, and monads don't always mean that IO is happening, but that's the abstraction they chose). The monadic pattern is just extremely common (and desirable), here's what the wiki (https://wiki.haskell.org/Monad https://wiki.haskell.org/Monad) says: > Monads in Haskell can be thought of as composable computation descriptions. The essence of monad is thus separation of composition timeline from the composed computation's execution timeline, as well as the ability of computation to implicitly carry extra data, as pertaining to the computation itself, in addition to its one (hence the name) output, that it will produce when run (or queried, or called upon). This lends monads to supplementing pure calculations with features like I/O, common environment or state, etc. If I were to try and paraphrase that, it's because it is such a good abstraction for all the things you have to do that aren't as simple as pure functions. In other languages, just about any function can do anything, so they're understandably less important