2010-07-23 2 views
17

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

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] 

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

+0

Проверяли ли Вы "Начало работы с Erlang" в http://www.erlang.org/doc/getting_started/seq_prog.html#id2252255? – Zed

ответ

29
[X1, X2 | Tail] = List. 
+0

Спасибо, не знаю, почему я об этом не думал! –