Skip to content

Instantly share code, notes, and snippets.

@vasily-kirichenko
Created May 4, 2013 18:26
Show Gist options
  • Save vasily-kirichenko/5518295 to your computer and use it in GitHub Desktop.
Save vasily-kirichenko/5518295 to your computer and use it in GitHub Desktop.
let validateNumber n =
returnM n
<* evenNumber n
<* notEqual 3 n
let validateNumber' n =
returnM (fun _ _ -> n)
<*> evenNumber n
<*> notEqual 3 n
let validateNumber'' n =
returnM (konst2 n)
<*> evenNumber n
<*> notEqual 3 n
let validateNumber''' n =
konst2 n
<!> evenNumber n
<*> notEqual 3 n
let validateNumber'''' n =
returnM (konst2 n)
|> ap (evenNumber n)
|> ap (notEqual 3 n)
let validateNumber''''' n =
konst n
<!> (evenNumber >=> notEqual 3) n
let validateNumber'''''' n =
returnM n <* sequence [evenNumber n; notEqual 3 n]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment