我是函数式编程的新手,并且无法正确使用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)。