用Erlang拆分列表中的几个元素的最佳方法是什么?

18

所以,Erlang是一个非常愉快的工作语言,但我有时会遇到一个问题,想知道是否有更好的方法来解决。经常情况下,我需要从列表中拆分多个项目。将列表拆分为Head和Tail的语法足够简单,但如果有多个项目呢?

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]

我知道这个问题也可以通过编写递归拆分列表中后续元素的函数来简化,但我想知道是否有更简单的内联方式来完成此任务(或者说,递归拆分函数实际上是完成此任务的最佳实践方式)?谢谢!


你是否查看了 http://www.erlang.org/doc/getting_started/seq_prog.html#id2252255 上的“Erlang入门”? - Zed
1个回答

32
[X1, X2 | Tail] = List.

谢谢,不确定为什么我没想到那个! - SEVEN YEAR LIBERAL ARTS DEGREE

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接