Skip to content

Instantly share code, notes, and snippets.

@caasi
Created July 3, 2017 20:46
Show Gist options
  • Save caasi/425ddecaf969d14c8578250210578c51 to your computer and use it in GitHub Desktop.
Save caasi/425ddecaf969d14c8578250210578c51 to your computer and use it in GitHub Desktop.
# v1.5.0
StringMonoid =
concat: (a, b) -> "#a#b"
str = let @ = StringMonoid
\foo `@concat` \bar `@concat` \baz
console.log str
ArrayMonad =
bind: (m, f) -> Array::concat.apply [], (m.map f)
return: (x) -> [x]
arr = let @ = ArrayMonad
x <~ @bind [1, 2, 3]
y <~ @bind [2, 3, 4]
@return x + y
console.log arr
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment