Monads
Introduction
Heard about this with a friend and never really revisited it. With my attention at home on Rust, thought I might write something down
The Maybe Monad
Well possibly the Option monad for me. To make one of these you need define something to wrap your thing with and a function which could fail that returns the wrapper type
return :: a => Maybe a
>>= :: Maybe a
What's the Point
- Same idea works for other effects, e.g. reading from environments, input/output
- Supports pure programming with effects
- Use of effects explicit in types
- Functions that work for any effect