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