filter(Fun, Q1 :: queue(Item)) -> Q2 :: queue(Item)
類型:
Fun = fun((Item) -> boolean() | [Item])
返回隊列 Q2
,它是對 Q1
中的所有項目調用 Fun(Item)
的結果。
如果 Fun(Item)
返回 true
,則將 Item
複製到結果隊列。如果它返回false
,則不複製Item
。如果它返回一個列表,則將列表元素而不是 Item
插入到結果隊列中。
示例 1:
1> Queue = queue:from_list([1,2,3,4,5]).
{[5,4,3],[1,2]}
2> Queue1 = queue:filter(fun (E) -> E > 2 end, Queue).
{[5],[3,4]}
3> queue:to_list(Queue1).
[3,4,5]
因此, Fun(Item)
返回 [Item]
在語義上等同於返回 true
,就像返回 []
在語義上等同於返回 false
。但是返回一個列表比返回一個原子會產生更多的垃圾。
示例 2:
1> Queue = queue:from_list([1,2,3,4,5]).
{[5,4,3],[1,2]}
2> Queue1 = queue:filter(fun (E) -> [E, E+1] end, Queue).
{[6,5,5,4,4,3],[1,2,2,3]}
3> queue:to_list(Queue1).
[1,2,2,3,3,4,4,5,5,6]
相關用法
- erlang filter(Pred, Orddict1)用法及代碼示例
- erlang filter(Pred, MapOrIter)用法及代碼示例
- erlang filtermap(Fun, Q1)用法及代碼示例
- erlang filtermap(Fun, MapOrIter)用法及代碼示例
- erlang filtermap(Fun, List1)用法及代碼示例
- erlang file_read用法及代碼示例
- erlang file_size用法及代碼示例
- erlang find用法及代碼示例
- erlang find(Key, Orddict)用法及代碼示例
- erlang find(Key, Map)用法及代碼示例
- erlang find(String, SearchPattern)用法及代碼示例
- erlang field(BinRel)用法及代碼示例
- erlang float用法及代碼示例
- erlang from_list用法及代碼示例
- erlang fun2ms(LiteralFun)用法及代碼示例
- erlang float(Number)用法及代碼示例
- erlang float_to_binary(Float, Options)用法及代碼示例
- erlang float_to_list(Float, Options)用法及代碼示例
- erlang floor(Number)用法及代碼示例
- erlang fun_to_list(Fun)用法及代碼示例
- erlang fold(Fun, Acc0, Q :: queue(Item))用法及代碼示例
- erlang fetch(Key, Orddict)用法及代碼示例
- erlang fetch_keys(Orddict)用法及代碼示例
- erlang fold(Fun, Acc0, Orddict)用法及代碼示例
- erlang foldl(Fun, Acc0, Archive)用法及代碼示例
注:本文由純淨天空篩選整理自erlang.org大神的英文原創作品 filter(Fun, Q1 :: queue(Item)) -> Q2 :: queue(Item)。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。