2010-07-23 14 views
17

Yani, Erlang çalışmak için gerçek bir keyif, ama ara sıra karşılaştığım bir problem var, çözülmenin daha güzel bir yolu olup olmadığını merak ediyorum. Çoğu zaman, kendimi bir listeden birkaç öğeyi bölmek zorunda kalıyorum. Bir listeyi bir Başlığa ve Kuyruk'a bölmek için kullanılan sözdizimi yeterince ileriye doğrudur, ancak ne zaman birden fazla öğe olduğu.Erlang ile bir listeden birkaç kafaları bölmenin en iyi yolu?

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] 

diyelim ki, almak için daha iyi bir yolu var mı, iki kez satır içi bölme dışındaki bir listenin ilk iki unsur?

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] 

Bu da yinelemeli bir listeden müteakip başlarını bölünmüş fonksiyonlarını yazarak basitleştirilmiş edilebileceğini biliyorum ama bunu yapmak için daha basit bir satır içi yol olup olmadığını merak (veya aslında eğer, özyinelemeli ediyorum sonraki bölünmüş işlevler, bu görevi yerine getirmenin en iyi yöntemleri yoludur)? Teşekkürler!

+0

sen http://www.erlang.org/doc/getting_started/seq_prog.html#id2252255 kısmındaki "Erlang başlarken" yı mı? – Zed

cevap

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

Teşekkürler, neden böyle düşünmediğime emin değilim! –

İlgili konular