function - OCaml: Currying without defined values -
i have 2 functions f , g , trying return f(g(x))
not know value of x , not sure how go this.
a more concrete example: if have functions f = x + 1
, g = x * 2
, trying return f(g(x))
should function equal (x*2) + 1
it looks have right, f(g(x))
should work fine. i'm not sure why have return
keyword there (it's not keyword in ocaml). here correct version,
let compose f g x = f (g x)
the type definition is,
val compose : ('b -> 'c) -> ('a -> 'b) -> 'a -> 'c = <fun>
each, 'a,'b,'c abstract types; don't care are, need consistent in definition (so, domain of g
must in range of f
).
let x_plus_x_plus_1 = compose (fun x -> x + 1) (fun x -> x * 2)
Comments
Post a Comment