如何编写一个获得2个函数之和的函数?

Gho*_*ost 0 ocaml

我必须编写一个代码来创建一个函数,让我们说"f"计算2个函数的总和,我们说"h"和"g".我这样写的:

let h x = x + 2;;
let g x = x + 4;;
let f h x g x = h x + g x;;
Run Code Online (Sandbox Code Playgroud)

但是当我输入时,我们会说它f h 2 g 4;;显示我14错了因为它应该告诉我12.为什么?

我也可以以某种方式使我可以选择在运行代码时要求总和哪些函数,或者我需要在每次之前设置函数?

gle*_*nsl 5

您正在影响x参数f,因此f h 2 g 4将评估为h 4 + g 4.您需要做的就是将其他参数命名为其他参数,例如y:

let f h x g y = h x + g y;;
Run Code Online (Sandbox Code Playgroud)