这与在列表尾部找到最大值相同吗?

时间:2013-09-19 19:14:29

标签: functional-programming sml smlnj

我想知道这是否会被认为是在尾端而不是头部开始比较?

fun maxTail [] = raise Empty 
 | maxTail [x] = x
 | maxTail (x::xs) =
      let 
        val y = maxTail xs
      in
        if x > y then x else y
      end

1 个答案:

答案 0 :(得分:0)

是的,你正在做的是类似于正确的折叠,如果这就是你的意思。请注意,右侧折叠(以及您正在执行的操作)不是尾递归的,因此最好使用左侧折叠。