Monads: Difference between revisions
Jump to navigation
Jump to search
Created page with "=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 <syntaxhighlight lang="hs"> return :: a => Maybe a >>= : Maybe a </syntaxhighlight> =What's the Point= *Same idea works for other effects *Supports pure programming with effects *Use of effects explicit in types *Functions that work for..." |
|||
Line 2: | Line 2: | ||
Heard about this with a friend and never really revisited it. With my attention at home on Rust, thought I might write something down | 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= | =The Maybe Monad= | ||
Well possibly the Option monad for me. To make one of these you need | 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 | ||
<syntaxhighlight lang="hs"> | <syntaxhighlight lang="hs"> | ||
return :: a => Maybe a | return :: a => Maybe a | ||
>>= : Maybe a | >>= :: Maybe a | ||
</syntaxhighlight> | </syntaxhighlight> | ||
=What's the Point= | =What's the Point= |
Revision as of 01:46, 10 February 2025
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
- Supports pure programming with effects
- Use of effects explicit in types
- Functions that work for any effect