I want to know which libraries, functions, and concepts I definitely should know about and how to use. Monad and the functions there is the typical example, but there are other good primitives to use in coding, like Arrows, Applicative, ... Who are they?
btw, I want to be up-to-date in the Haskell world, learning the new concepts, how is this done?
(the original title was: "Library primitives for coding", but this was changed)
That is not an accident. Nothing prevents the monad author from allowing it using functions specific to the monad. For instance, values can be extracted from the Maybemonad by pattern matching on Just xor using the fromJustfunction. By not requiring such a function, the Haskell Monadclass allows the creation of one-way monads.
By not requiring such a function, the Haskell Monad class allows the creation of one-way monads. One-way monads allow values to enter the monad through the return function (and sometimes the fail function) and they allow computations to be performed within the monad using the bind functions >>= and >>,...
Some of the documentation for these monads comes from the excellent Haskell Wiki. In addition to the monads covered here, monads appear many other places in Haskell, such as the Parsecmonadic combinator parsing library. These monads are beyond the scope of this reference, but they are thoroughly documented on their own.
although the recommended order is to define return as pure if the two would otherwise end up being the same. Nondeterminism using List monad to represent carrying multiple values In order to improve the look of code that uses monads, Haskell provides a special form of syntactic sugar called do -notation. For example, the following expression:
The best way to start your Haskell experience is to install The Haskell Platform, which has many of the libraries we think are important.
If you look at what abstractions ship in the base system, you'll see some things worth learning:
And don't forget the powerful tools:
Basic libraries to know:
Common data-centric libraries:
Packaged concepts that you should know:
Semi-advanced concepts:
Testing, benchmarking, and infrastructure:
External tools, GHC helpers, GHC
Type-centric knowledge
How to stay up-to-date on Haskell without asking a stack-overflow question:
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With