我試圖分裂這個名單二郎 - 斯普利特列表到列表基於價值
List = [[<<"5">>, <<"54">>], [<<"00">>], [<<"35">>, <<"54">>, <<"45">>, <<"55">>], [<<"00">>],[ <<"5">>]]
到
List = [[<<"5">>, <<"54">>], [<<"35">>, <<"54">>, <<"45">>, <<"55">>], [<<"5">>]]
基本上基礎上,< < 「00」 >>
什麼是最好的BIF去做這件事,我有一些代碼,但它馬虎,我試圖學習。
由於
編輯:
試過以下,不工作
Done2 =列表:splitwith([< < 「00」 >>],DONE1)
EDIT : This Line works!
7> lists:splitwith(fun(A) -> A == [<<"00">>] end, List).
{[],
[[<<"5">>,<<"54">>],
[<<"00">>],
[<<"35">>,<<"54">>,<<"45">>,<<"55">>],
[<<"00">>],
[<<"5">>]]}
不過,我需要的東西多一點複雜:當DELIM爲[< < 「00」 >>,< < 「23」 >>]像
9> List = [[<<"5">>,<<"54">>], [<<"00">>,<<"23">>], [<<"35">>,<<"54">>], [<<"5">
>], [<<"00">>, <<"23">>]].
[[<<"5">>,<<"54">>],
[<<"00">>,<<"23">>],
[<<"35">>,<<"54">>],
[<<"5">>],
[<<"00">>,<<"23">>]]
10> lists:splitwith(fun(A) -> A == [<<"00">>] end, List).
{[],
[[<<"5">>,<<"54">>],
[<<"00">>,<<"23">>],
[<<"35">>,<<"54">>],
[<<"5">>],
[<<"00">>,<<"23">>]]}
11> lists:splitwith(fun(A) -> A == [<<"00">>,<<"23">>] end, List).
{[],
[[<<"5">>,<<"54">>],
[<<"00">>,<<"23">>],
[<<"35">>,<<"54">>],
[<<"5">>],
[<<"00">>,<<"23">>]]}
12>
沒有運氣
根據這個鏈接http://www3.erlang.org/doc/man/lists.html#split-2,你需要使用splitwith – 2010-08-16 06:38:58
它似乎並不是'lists:splitwith(fun(A) - > A == [<<"00">>] end,List).'返回你在你的問題中要求的內容。結果與第二個'List'中的結果不同。第二份清單根本沒有吐露。這似乎與'[<<"00">>]'被刪除。你能更精確地定義你想要的東西嗎? – 2010-08-16 09:47:33