使用其他函数在SML中编写函数

时间:2015-09-23 18:20:58

标签: 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

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

1 个答案:

答案 0 :(得分:1)

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

你想要的是这样的:

fun sumsq n = sumF ? n

我留给你找出要填写的内容?