Лучший способ отделить несколько голов из списка с помощью Erlang? - PullRequest
17 голосов
/ 23 июля 2010

Итак, работать с Эрлангом - настоящая радость, но есть одна проблема, с которой я иногда сталкиваюсь: мне интересно, есть ли лучший способ ее решения. Часто мне приходится разбивать несколько элементов из списка. Синтаксис для разделения списка на голову и хвост достаточно прост, но как насчет того, когда есть несколько элементов.

1> List = [1,2,3,4,5].
[1,2,3,4,5]
2> [Head | Tail] = List.
[1,2,3,4,5]
3> Head.
1
4> Tail.
[2,3,4,5]

Есть ли лучший способ получить, скажем, первые два элемента списка, кроме разделения на две строки?

1> List = [1,2,3,4,5].
[1,2,3,4,5]
2> [Head1 | [Head2 | Tail]] = List.
[1,2,3,4,5]
3> Head1.
1
4> Head2.
2
5> Tail.
[3,4,5]

Я знаю, что это также можно упростить, написав функции, которые рекурсивно разделяют последующие заголовки из списка, но мне интересно, есть ли более простой встроенный способ сделать это (или если на самом деле рекурсивные последующие функции разделения лучший метод для решения этой задачи)? Спасибо!

1 Ответ

30 голосов
/ 23 июля 2010
[X1, X2 | Tail] = List.
...