Elixir中的反向连续

时间:2016-06-12 18:37:52

标签: erlang elixir standard-library

在Elixir(或Erlang)中是否有标准库函数来连接其他列表前面的列表的反向?基本上我在Scala中寻找等价的reverse_:::

基本原理是在列表上实现尾递归算法时很方便。在递归过程中,您可以通过将它们添加到累加器列表的前面来保留一些元素。最后,您可以一次性将它们反向连接到汇编列表的其余部分(这应该非常有效)。

2 个答案:

答案 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/1Enum.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]