我有以下列表
L = [2, 4, 6, 8, 10]
我正在尝试编写一个复制列表中每个元素的函数,因此最终结果将是
L = [2, 2, 4, 4, 6, 6, 10, 10]
我的职能是
fun duplicateList(nil) = nil
| duplicateList([a]) = [a]
| duplicateList(L) =
let val copy = L
in hd(L)::hd(copy)::duplicateList(tl(L))
end;
但我收到的错误是Error: syntax error: replacing END with EQUALOP
这意味着什么,我该如何避免呢?
答案 0 :(得分:1)
您可以按如下方式编写您的功能
fun duplicateList nil = nil
| duplicateList (x::xs) = x :: x :: duplicateList xs;
这样你就不会制作副本而只需要担心两个案例。
答案 1 :(得分:1)
也许你可以做类似下面的事情:
val L = [2, 4, 6, 8, 10]
val D = foldr (fn (a, b) => a::a::b) [] L