2016-06-12 3 views
1

Есть ли стандартная функция библиотеки в Elixir (или Erlang), чтобы объединить обратную сторону списка перед другим списком? В основном я ищу эквивалент reverse_::: в Scala.Обратный concat в Elixir

Обоснование заключается в том, что это удобно при реализации алгоритма хвостового рекурсивного поиска в списке. Во время рекурсии вы удерживаете некоторые элементы позже, добавляя их на передний план списка аккумуляторов. В конце концов вы можете перестроить их на оставшуюся часть собранного списка за один раз (что должно быть довольно эффективно).

ответ

1

Вы можете сделать обратный и concat в Эрланге, используя lists:reverse/2.

Я думаю, что документация объяснения и примеры достаточно ясно:

reverse(List1, Tail) -> List2.

Возвращает список с элементами в List1 в обратном порядке, с хвостом Tail прилагается.

> lists:reverse([1, 2, 3, 4], [a, b, c]). 
[4,3,2,1,a,b,c] 
+2

Мы также имеем [ 'Enum.reverse/2'] (http://elixir-lang.org/docs/stable/elixir/Enum.html#reverse/2) в эликсир. – whatyouhide

+0

Это именно то, что я искал. Благодарю. Я раньше не видел версию с двумя аргументами. – MigratoryMonkeyMaster

 Смежные вопросы

  • Нет связанных вопросов^_^