Лучший способ разделить несколько голов из списка с Erlang?

17

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

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]

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

    
задан SEVEN YEAR LIBERAL ARTS DEGREE 23.07.2010 в 20:17
источник
  • Вы проверили «Начало работы с Erlang» по адресу erlang.org/doc/getting_started/seq_prog.html#id2252255? –  Zed 23.07.2010 в 20:37

1 ответ

29
[X1, X2 | Tail] = List.
    
ответ дан rkhayrov 23.07.2010 в 20:27
  • Спасибо, не знаю, почему я об этом не думал! –  SEVEN YEAR LIBERAL ARTS DEGREE 23.07.2010 в 20:28