Elixir中的反向连续

问题描述 投票:1回答:2

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

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

erlang elixir standard-library
2个回答
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]

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]
© www.soinside.com 2019 - 2024. All rights reserved.