November 2017
Intermediate to advanced
670 pages
17h 35m
English
The thing to remember with lists is that they model non-determinism. A list of values a represents a number of different possibilities for the value of a.
|
Function |
Description |
|
filterM |
Used in place of filter inside a monad, as follows: filterM :: Applicative m => (a -> m Bool) -> [a] -> m [a] |
|
foldM |
Used in place of foldl where monadic computations built from a list are bound left-to-right, as follows: foldM :: (Monad m, Foldable t) => (b -> a -> m b) -> b -> t a -> m b |
|
join |
Used to flatten the nesting of groups, as follows: > join [[[1]]] [[1]] > join [[1]] [1]join :: Monad m => m (m a) -> m a |
|
msum |
A list based concat function that is best described by the following example: > msum [Nothing, ... |