Skip to content

Instantly share code, notes, and snippets.

@michelrandahl
Created March 12, 2017 02:28
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save michelrandahl/5126b5d607aae1750bf5a3f2d2dc290b to your computer and use it in GitHub Desktop.
Save michelrandahl/5126b5d607aae1750bf5a3f2d2dc290b to your computer and use it in GitHub Desktop.
-- Attempting to implement my own Maybe monad using the Option type naming from F#
data Option x = None
| Some x
Functor Option where
map f None = None
map f (Some x) = Some (f x)
Applicative Option where
pure x = Some x
(<*>) f None = None
(<*>) None (Some x) = None
(<*>) (Some f) (Some x) = Some (f x)
Monad Option where
(>>=) = ?stuff
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment