我正在做一个家庭作业问题,使函数 sumOdd 计算前 n 个奇数整数的总和,但我似乎找不到任何类型的 elseif 类型语句来这样做。我试图做的是下面,但当然不起作用:

fun sumOdd n = if n=0 then 0 elseif (n mod 2)=0 then sumOdd(n-1) elseif n + sumOdd(n-1);

最佳答案

您的函数未编译,因为 elseif 不是 SML 中的关键字。将最后一个 elseif 更改为 else,将其他 elseif 更改为 else if 应该可以修复错误。

此外,该函数在以下格式中更具可读性:

fun sumOdd n = if n = 0 then 0
               else if n mod 2 = 0 then sumOdd(n-1)
               else n + sumOdd(n-1)

关于sml - 标准 ML 中的 elseif 语句?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9056624/

10-09 15:33