Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Binary ERlANG-将列表拆分为子列表_Binary_Erlang_List - Fatal编程技术网

Binary ERlANG-将列表拆分为子列表

Binary ERlANG-将列表拆分为子列表,binary,erlang,list,Binary,Erlang,List,所以,我在另一篇帖子上的一个好人很快就解决了一个问题 现在我是Erlang的初学者,需要一些关于另一个函数语法的帮助,该函数可以处理我上一篇文章的结果 例如,我现在有: Reply = [<<56,45,34,07,45,67,34>>, <<12,23,56,07,67,67>>, <<55,23,45,07,89,56>>] Reply=[,] 我需要将其进一步拆分为: [ [<<56,45,3

所以,我在另一篇帖子上的一个好人很快就解决了一个问题

现在我是Erlang的初学者,需要一些关于另一个函数语法的帮助,该函数可以处理我上一篇文章的结果

例如,我现在有:

   Reply = [<<56,45,34,07,45,67,34>>, <<12,23,56,07,67,67>>,  <<55,23,45,07,89,56>>]
Reply=[,]
我需要将其进一步拆分为:

[ [<<56,45,34>>,<<45,67,34>>], [<<12,23,56>>,<<67,67>>] ,  [<<55,23,45>>, <<89,56>>]  ]

本例中的分隔符是

这个代码过程是二进制的

parse(Reply) -> binary:split(Reply, <<07>>, [global]).
parse(Reply)->binary:split(Reply,[global])。
但是现在我如何递归地遍历数组并再次执行它呢

下面是我当前代码的一个示例:

parse(Reply) -> binary:split(Reply, <<01>>, [global]).
parse2(Reply) -> binary:split(Reply, <<07>>, [global]).

func1(Done) -> [parse2(X) || X <- Done].

%%blah blah - get to the executing functions code
Done = parse(Reply),
Done1 = func1(Done),
parse(Reply)->binary:split(Reply,[global])。
parse2(Reply)->binary:split(Reply,[global])。

func1(Done)->[parse2(X)| | X解决了这个问题。请随时告诉我是否有更有效的方法,或者仅仅是你的方法,毕竟我正在学习

parse(Reply) -> binary:split(Reply, <<01>>, [global]).
parse2(<<>>) -> <<>>;
parse2(Reply) -> binary:split(Reply, <<"=">>, [global]).

func2([H|T], Result) ->
    H1 = parse2(H), 
    func2(T, [H1|Result]);
func2([], Result) -> io:format("Reply 1 = ~p~n", [Result]), Result.


Done = parse(Reply),

Done1 = func2(Done, []),
parse(Reply)->binary:split(Reply,[global])。
parse2()->;
parse2(Reply)->binary:split(Reply,[global])。
func2([H | T],结果)->
H1=2(H),
func2(T[H1 | Result]);
func2([],Result)->io:format(“回复1=~p~n”,[Result]),Result。
完成=解析(回复),
Done1=func2(完成,[]),

-B

想好了,请随时告诉我是否有更有效的方法——或者——仅仅是你的方法,毕竟我正在学习

parse(Reply) -> binary:split(Reply, <<01>>, [global]).
parse2(<<>>) -> <<>>;
parse2(Reply) -> binary:split(Reply, <<"=">>, [global]).

func2([H|T], Result) ->
    H1 = parse2(H), 
    func2(T, [H1|Result]);
func2([], Result) -> io:format("Reply 1 = ~p~n", [Result]), Result.


Done = parse(Reply),

Done1 = func2(Done, []),
parse(Reply)->binary:split(Reply,[global])。
parse2()->;
parse2(Reply)->binary:split(Reply,[global])。
func2([H | T],结果)->
H1=2(H),
func2(T[H1 | Result]);
func2([],Result)->io:format(“回复1=~p~n”,[Result]),Result。
完成=解析(回复),
Done1=func2(完成,[]),

-B

使用列表理解将函数应用于列表的每个元素。该函数与上一个问题的函数基本相同:

1> L = [<<56,45,34,07,45,67,34>>, <<12,23,56,07,67,67>>,  <<55,23,45,07,89,56>>].
[<<56,45,34,7,45,67,34>>,
 <<12,23,56,7,67,67>>,
 <<55,23,45,7,89,56>>]
2> [binary:split(X, <<07>>, [global]) || X <- L].
[[<<"8-\"">>,<<"-C\"">>],
 [<<12,23,56>>,<<"CC">>],
 [<<55,23,45>>,<<"Y8">>]]
3> io:format("~w~n",[[binary:split(X, <<07>>, [global]) || X <- L]]).
[[<<56,45,34>>,<<45,67,34>>],[<<12,23,56>>,<<67,67>>],[<<55,23,45>>,<<89,56>>]]
ok
1>L=[,]。
[,
,
]
2> [二进制:拆分(X,[全局]| | X>],
[,],
[,]]
3> io:format(“~w~n”,[[binary:split(X,[global])| | X列表:map(fun(X)->binary:split(X,[global])end,L)。
[[>],
[,],
[,]]

使用列表理解将函数应用于列表的每个元素。该函数与上一个问题的函数基本相同:

1> L = [<<56,45,34,07,45,67,34>>, <<12,23,56,07,67,67>>,  <<55,23,45,07,89,56>>].
[<<56,45,34,7,45,67,34>>,
 <<12,23,56,7,67,67>>,
 <<55,23,45,7,89,56>>]
2> [binary:split(X, <<07>>, [global]) || X <- L].
[[<<"8-\"">>,<<"-C\"">>],
 [<<12,23,56>>,<<"CC">>],
 [<<55,23,45>>,<<"Y8">>]]
3> io:format("~w~n",[[binary:split(X, <<07>>, [global]) || X <- L]]).
[[<<56,45,34>>,<<45,67,34>>],[<<12,23,56>>,<<67,67>>],[<<55,23,45>>,<<89,56>>]]
ok
1>L=[,]。
[,
,
]
2> [二进制:拆分(X,[全局]| | X>],
[,],
[,]]
3> io:format(“~w~n”,[[binary:split(X,[global])| | X列表:map(fun(X)->binary:split(X,[global])end,L)。
[[>],
[,],
[,]]