Monads, the promised land of functional programming. Or at least with all the hype they'd better be! Come join the cast as we demystify this overhyped structure that has become an indispensable part of many functional programmer's toolkits.
Episode 18 patrons:
Pluton
Tim Buckley
Huge shout out to Marcus Nielsen
Show Notes:
bind :: m a -> (a -> m b) -> m b
Example of do syntax vs using bind aka >>=:
main = do
foo <- doMonadyThing
foo2 <- doOtherMonadyThing foo
pure (whatever foo foo2)
main = doMonadyThing
>>= (\foo -> doOtherMonadyThing foo
>>= (\foo2 -> pure (whatever foo foo2))
)
Extracting a value from a Maybe
extract :: Just Int -> Int
extract foo = case foo of
Just num -> num
Nothing -> 0
Railroad oriented programming talk by Scott Wlaschin
fsharpforfunandprofit.com/rop/
FP Chat Slack Community: https://fpchat-invite.herokuapp.com