我有两个函数 f 和 g 我正在尝试,return f(g(x))
但我不知道 x 的值,我不确定如何去做。
一个更具体的例子:如果我有函数f = x + 1
并且g = x * 2
我正在尝试return f(g(x))
我应该得到一个等于的函数(x*2) + 1
看起来你做对了,f(g(x))
应该可以正常工作。我不确定你为什么在return
那里有一个关键字(它不是 ocaml 中的关键字)。这是一个正确的版本,
let compose f g x = f (g x)
这个的类型定义是,
val compose : ('b -> 'c) -> ('a -> 'b) -> 'a -> 'c = <fun>
每个,'a,'b,'c 都是抽象类型;我们不在乎它们是什么,它们只需要在定义中保持一致(因此, 的域g
必须在 的范围内f
)。
let x_plus_x_plus_1 = compose (fun x -> x + 1) (fun x -> x * 2)