标准ML中的elseif语句?

jfi*_*isk 3 sml smlnj

我做一个功课问题,使函数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);
Run Code Online (Sandbox Code Playgroud)

pad*_*pad 12

您的函数未编译,因为elseif它不是SML中的关键字.改变过去elseifelse和其他elseifelse if应该修正这个错误.

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

fun sumOdd n = if n = 0 then 0 
               else if n mod 2 = 0 then sumOdd(n-1) 
               else n + sumOdd(n-1)
Run Code Online (Sandbox Code Playgroud)