2010-07-23 12 views
17

Quindi, Erlang è una vera gioia lavorare con, ma c'è un problema che mi capita di tanto in tanto, che mi chiedo se c'è un modo migliore per risolvere. Spesso mi ritrovo a dover dividere diversi oggetti da una lista. La sintassi per dividere una lista in un Head and Tail è abbastanza semplice, ma per quanto riguarda quando ci sono più elementi.Il modo migliore per dividere più teste da una lista con 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] 

C'è un modo migliore per ottenere, ad esempio, i primi due elementi di una lista diversi da dividere per due volte in linea?

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] 

So che questo può anche essere semplificata funzioni che in modo ricorsivo spaccano teste successive da un elenco di scrittura, ma mi chiedo se c'è un modo in linea più semplice per farlo (o se in realtà, il ricorsiva le successive funzioni divise sono il modo migliore per eseguire questo compito)? Grazie!

+0

Hai controllato "Iniziare con Erlang" presso http://www.erlang.org/doc/getting_started/seq_prog.html#id2252255? – Zed

risposta

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

Grazie, non sono sicuro del perché non ci ho pensato! –

Problemi correlati