use*_*383 5 functional-programming sml smlnj
定义一个函数,该函数计算给定的整数列表列表中所有整数的总和。没有“if-then-else”或任何辅助功能。
我是函数式编程的新手,并且在使用 SML 的正确语法方面遇到了麻烦。为了解决这个问题,我尝试使用模式匹配创建一个函数,该函数只添加列表的前两个元素。完成这项工作后,我将使用递归来添加其余元素。虽然,我什至无法编译这个简单的函数。
fun listAdd [_,[]] = 0
| listAnd [[],_] = 0
| listAnd [[x::xs],[y::ys]] = x + y;
Run Code Online (Sandbox Code Playgroud)
fun listAdd [] = 0
| listAdd ([]::L) = listAdd L
| listAdd ((x::xs)::L) = x + listAdd (xs::L)
Run Code Online (Sandbox Code Playgroud)
应该做你想做的事。
另外,您的函数问题的一部分似乎是您在不同的子句中为函数指定了不同的名称(listAdd 和 listAnd)。