Created by orbitzN 2015-09-25 View revision File applicative.ml Added Side-by-side diff More Ignore whitespace Hide word diff +let app f_opt v_opt = + match (f_opt, v_opt) with + | (Some f, Some v) -> Some (f v) + | _ -> None +;; + +let ( <*> ) = app +;; + +let fmap f = function + | Some v -> Some (f v) + | None -> None +;; + +let ( <$> ) = fmap +;; + +(+) <$> Some 1 <*> Some 2 +;;