4

我有两个函数 f 和 g 我正在尝试,return f(g(x))但我不知道 x 的值,我不确定如何去做。

一个更具体的例子:如果我有函数f = x + 1并且g = x * 2我正在尝试return f(g(x))我应该得到一个等于的函数(x*2) + 1

4

1 回答 1

5

看起来你做对了,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) 
于 2010-04-29T04:14:05.937 回答