【发布时间】:2015-09-24 04:56:11
【问题描述】:
我在 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)
总和
fun sumF f 0 = 0 |
sumF f n = f n + sumF f (n-1);
现在我想使用 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
【问题讨论】:
标签: sml