我想知道这是否会被认为是在尾端而不是头部开始比较?
fun maxTail [] = raise Empty
| maxTail [x] = x
| maxTail (x::xs) =
let
val y = maxTail xs
in
if x > y then x else y
end
答案 0 :(得分:0)
是的,你正在做的是类似于正确的折叠,如果这就是你的意思。请注意,右侧折叠(以及您正在执行的操作)不是尾递归的,因此最好使用左侧折叠。