似乎没有正确的组合功能

时间:2014-04-08 12:22:21

标签: function ml

我在ML

中编写功能时遇到了问题
local
    fun add(g:int->int,f:int->int,m:int,x:int,sum:int):int=
    if m>x then sum
           else add(g,g o f,m+1,x,sum+(g f x))             
in
    fun sum f g x=
    if x=0 then f x
           else add(g,g o f,1,x,f x)  
end;

现在,我试图做的基本上是f(x)+ g(f(x))+ g(g(f(x)))+ ... + g ^ x(f( X)) 但我无法做到。我不断收到操作数和操作员不同意的错误。有人可以指出我做错了什么,也许我该如何解决?

fun sum f g x

是函数的给定签名,因此我无法对其进行更改。

1 个答案:

答案 0 :(得分:0)

我认为错误不在g o f,而在g f x。这不是类型检查,因为g不是两个参数的函数。你的意思是g(f x)吗?