小编Sig*_*ion的帖子

Elixir 中的递归反转列表

我的任务是获取一个列表,然后使用一个参数递归地反转它。我得到的是这个解决方案:

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)

recursion list elixir

3
推荐指数
1
解决办法
834
查看次数

标签 统计

elixir ×1

list ×1

recursion ×1