0

配列を 2 つの部分に分割する単純な関数を作成しました。

split([], [], []) -> [[], []];
split([], [], Part2) -> [[], Part2];
split([], Part1, []) -> split([], [], Part1);
split([], Part1, Part2) -> [Part1, Part2];
split([Head | Tail], Part1, Part2) -> split(Tail, Part2, [Head | Part1]).

私は自分の関数で遊んでみましたが、下の画像を参照してください。関数は多くの例で機能しますが、入力[4,9,2],[],[]に使用すると、次の奇妙な結果が得られました["\t",[2,4]]

ここに画像の説明を入力

問題はどこにありますか?あなたの答えと時間をありがとう。

4

1 に答える 1

0

これは erlang の動作です:

8> [9].  
"\t"
9> ["\t"].
["\t"]

これは、erlang の POV からすると、文字列は一連の数字にすぎないためです。数値が印刷可能な文字に対応する場合、erlang は数値を文字として印刷しようとします。

于 2014-03-21T23:58:58.800 に答える