这个OCaml函数组合运算符定义/表达式是否正确?

时间:2012-12-03 16:55:22

标签: functional-programming ocaml function-composition

let (++) f g x = f (g x) in
    let f x = x + 1 in
    let g x = x * 2 in
    (f++g) 1;;
  1. 上述表达是否正确?
  2. 在我看来,上面的代码应该像定义f++g x = 2 * x + 1一样。我是对的吗?

1 个答案:

答案 0 :(得分:4)

您的函数组合实现是正确的,因为:

  对于X

中的所有x,

(g∘f)(x)= g(f(x))

根据wikipedia

我明白了:

- : int = 3

在ocamlktop