From: Chris Barker Date: Sun, 31 Oct 2010 14:22:58 +0000 (-0400) Subject: edits X-Git-Url: http://lambda.jimpryor.net/git/gitweb.cgi?p=lambda.git;a=commitdiff_plain;h=f10b70d2b7589e44135dd0e47c87d3965ee08918 edits --- diff --git a/week7.mdwn b/week7.mdwn index f5114046..3336a496 100644 --- a/week7.mdwn +++ b/week7.mdwn @@ -114,17 +114,17 @@ val unit : 'a -> 'a option = - : int option = Some 2 - The parentheses is the magic for telling Ocaml that the +The parentheses is the magic for telling Ocaml that the function to be defined (in this case, the name of the function is `*`, pronounced "bind") is an infix operator, so we write `m * f` or `( * ) m f` instead of `* m f`. * Associativity: bind obeys a kind of associativity, like this: - (m * f) * g == m * (fun x -> f x * g) + `(m * f) * g == m * (fun x -> f x * g)` - If you don't understand why the lambda form is necessary, you need - to look again at the type of bind. This is important. + If you don't understand why the lambda form is necessary (the "fun + x" part), you need to look again at the type of bind. For an illustration of associativity in the option monad: