3
嗨,这是我的第一篇文章,希望你们一切都好。所以我只是开始erlang,我遇到了一个问题,我不知道如何解决。ERLANG - 将列表拆分成子列表
所以我有一个二进制我在
<<56, 23, 67, 34, 45, 78, 01, 54, 67, 87, 45, 53, 01, 34, 56, 78>>
我的目标形式recieving是基于01
对于它拆分成子列表(或二进制如果更有效)例如上面应该出来找这样的:
<<56, 23, 67, 34, 45, 78>> <<54, 67, 87, 45, 53>> <<34, 56, 78>>
- 或 -
[[56, 23, 67, 34, 45, 78], [54, 67, 87, 45, 53], [34, 56, 78]]
01是分离标签,它不需要包含在最终输出中。
我曾尝试一些这样:(请忽略是否有更好的方法)
parse1([]) -> [];
parse1(1) -> io:format("SOHSOHSOHSOHSOHSSOHSOHS");
parse1(Reply) -> parse1({Reply, []});
parse1({Reply, nxtParse}) ->
[H | T] = Reply,
case H of
_ when H > 1 ->
[H | nxtParse],
io:format("Reply 1 = ~p~n", [H]),
parse1({T, nxtParse});
_ when H == 1 ->
io:format("SOHSOHSOHSOHSOHSSOHSOHS");
[] ->
ok
end.
这是不是真的干净的一切,都什么职业的写不相似。我敢肯定,当有人提示我时,我会把我的脑袋“嘟”一声。
我意识到肯定有多个解决方案,但最好的解决方案是什么。看起来ERL有很多BIF和做事情的方式,只需要找到我想要的方式。
感谢您的帮助球员 -B
+1 I love Erlang – 2010-08-12 02:54:47
非常感谢! – BAR 2010-08-12 05:08:21