【问题标题】:can't seem to get composing functions right似乎无法正确地编写函数
【发布时间】:2014-05-21 03:21:00
【问题描述】:

我在 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

是函数的给定签名,因此我无法更改它。

【问题讨论】:

    标签: function ml


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-09-10
      • 2017-09-10
      • 1970-01-01
      相关资源
      最近更新 更多