我的任务是获取一个列表,然后使用一个参数递归地反转它。我得到的是这个解决方案:
def reverse(l) do
[head | tail] = l
cond do
tail == [] ->
head
true ->
[reverse(tail) , head]
end
end
Run Code Online (Sandbox Code Playgroud)
我尝试过 | 而不是 true 语句中的逗号,但无济于事。该解决方案的问题在于,当输入 [1,2,3,4,5] 时,它会打印出以下内容:
[[[[5, 4], 3], 2], 1]
Run Code Online (Sandbox Code Playgroud)
除了返回列表的最终值之外,它实际上并不将头部添加到列表中。(在本例中为 5)