我试图分裂这个名单二郎 - 斯普利特列表到列表基于价值
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