我正在尝试在 SML 中编写一个函数来计算交替谐波级数的部分和,而对于我来说,我无法弄清楚为什么编译器说其中一种情况是多余的。我以前没有使用过 case 语句(或本地的,就此而言),但这些 case 的顺序对我来说似乎是正确的。
local
fun altHarmAux (x:int, y:real) =
case x of
1 => 1.0
| evenP => altHarmAux(x-1, y - y/(real x))
| oddP => altHarmAux(x-1, y + y/(real x))
in
fun altHarmonic (a:int) = altHarmAux(a, real a)
end