使用另一个函数在SML中编写函数

使用另一个函数在SML中编写函数,sml,Sml,我已经在SML中编写了一个函数sumF,它执行以下操作: fun inc x = x+1; val inc = fn : int -> int sumF inc 3; 9 : int (i.e. inc 3+inc 2+ inc 1+ 0) 萨姆夫 现在我想用sumF写一个函数sumsq(平方和),但我不能这样做。这就是我所做的 fun sumsq 0 = 0 | sumsq n = n*n + sumsq (n-1); val sumsq = fn : int -> int su

我已经在SML中编写了一个函数sumF,它执行以下操作:

fun inc x = x+1;
val inc = fn : int -> int
sumF inc 3;
9 : int (i.e. inc 3+inc 2+ inc 1+ 0)
萨姆夫

现在我想用sumF写一个函数sumsq(平方和),但我不能这样做。这就是我所做的

fun sumsq 0 = 0 |
sumsq n = n*n + sumsq (n-1);
val sumsq = fn : int -> int
sumsq 3;  
val it = 14 : int
这是无法提供所需输出的代码:

fun sumF f 0 = 0 |
sumF f n = f n*n + sumF f (n-1);
val sumF = fn : (int -> int) -> int -> int
sumF sumsq 3;
val it = 53 : int // wrong output

您的
sumsq
函数已经提供了平方和,但它没有按照
sumF
定义。你的后一个代码不是这个(我假设)家庭作业问题中所问的,它没有意义,因为它现在计算平方和或类似的总和

你想要的是这样的:

fun sumsq n = sumF ? n

我让您来决定填写什么来代替

谢谢您的帮助,先生,有一点疑问-我应该在这里使用部分应用的概念吗@AndreasRossberg@rm4596,当然可以,如果你愿意的话。
fun sumsq n = sumF ? n