我是函数式编程的新手,并且无法正确使用SML语法。首先,我尝试使用模式匹配创建一个仅添加列表的前两个元素的函数。完成这项工作后,我将使用递归添加其余元素。虽然,我什至似乎都无法编译这个简单的函数。

fun listAdd [_,[]] = 0
|   listAnd [[],_] = 0
|   listAnd [[x::xs],[y::ys]] = x + y;

最佳答案

fun listAdd [] = 0
  | listAdd ([]::L) = listAdd L
  | listAdd ((x::xs)::L) = x + listAdd (xs::L)

应该做你想要的样子。

另外,函数的问题似乎是在不同的子句中为函数指定了不同的名称(listAdd和listAnd)。

10-08 12:40