在Elixir(或Erlang)中是否有标准库函数来连接其他列表前面的列表的反向?基本上我在Scala中寻找等价的reverse_:::
。
基本原理是在列表上实现尾递归算法时很方便。在递归过程中,您可以通过将它们添加到累加器列表的前面来保留一些元素。最后,您可以一次性将它们反向连接到汇编列表的其余部分(这应该非常有效)。
答案 0 :(得分:0)
您可以使用lists:reverse/2
在Erlang中执行反向和连接。
我认为文档说明和示例足够清楚:
reverse(List1, Tail) -> List2
。以相反的顺序返回一个包含
List1
中元素的列表 尾Tail
附加。
> lists:reverse([1, 2, 3, 4], [a, b, c]).
[4,3,2,1,a,b,c]
答案 1 :(得分:0)
在Elixir中反转列表的功能是Enum.reverse/1
,Enum.reverse/2
可用于反转和连接:
iex> Enum.reverse([1,2,3])
[3, 2, 1]
iex> Enum.reverse([1,2,3], [:a, :b, :c])
[3, 2, 1, :a, :b, :c]