Erlang入門(三)列表的常用操作
阿新 • • 發佈:2018-12-09
一、列表的拼接與刪減
“++”代表列表的拼接,”–”代表列表的刪減,如:
1> [1,2,3] ++ [4,5].
[1,2,3,4,5]
2> [1,2,3] -- [1,3].
[2]
對於多個–或者++操作來說,操作是從右向左進行的,如:
1> [1,2,3] -- [1,2] -- [3].
[3]
2> [1,2,3] -- [1,2] -- [2].
[2,3]
二、列表推導式
在這裡先舉一個數學集合的例子,比如{x | x > 0,x∈R}的含義就是x為所有大於0的實數的集合。
再來舉個例子, {x | x % 2 = 0, x∈H}, H = {1, 2, 3, 4, 5},這裡的含義為x是1-5中所有偶數的集合 改寫成列表推導式,[X || X <- [1,2,3,4,5], X rem 2 =:= 0] “<-“代表”∈”, “||”代表”|”,外部的花括號被中括號代替
抽象出來就是: [ Expree || Pattern <- List, Condition1,Condition2,…,ConditionN ]
列表推導式的結果是一個符合給定條件的列表,下面舉幾個例子:
1> [{X1,X2 * 2} || {X1,X2} <- [{orange,10},{banana,6},{apple,2}]].
[{orange,20},{banana,12},{apple,4}]
2> [X + Y || X <- [1,2],Y <-[3,4]].
[4,5,5,6]
三、列表的常用函式
lists:append(List1,List2)
拼接列表,返回拼接後的列表
> lists:append("abc", "def").
"abcdef"
lists:concat(List)
將列表中的元素拼接成字串
> lists:concat([1,2,3,a,b]).
"123ab"
lists:delete(Elem,List1)
如果Elem存在列表中,則刪除列表中第一個匹配的元素
> lists:delete(5, [1,2,3,4,5]).
[1,2,3,4]
lists:seq(From, To) 與lists:seq(From, To, Incr)
生成一個列表,第三個參賽為增量,預設為1
> lists:seq(1,10).
[1,2,3,4,5,6,7,8,9,10]
> lists:seq(1,10,2).
[1,3,5,7,9]
lists:sort(List)
給列表排序
> lists:sort([4,2,7,3,9,1]).
[1,2,3,4,7,9]