6

誰かがここで何が起こっているのかを理解するのを手伝ってくれませんか

lists:dropwhile(fun(X) -> X < 8 end, lists:seq(1,10)).

"\b\t\n" % ??? what is this ? why not [8,9,10]

lists:dropwhile(fun(X) -> X < 7 end, lists:seq(1,10)).  

[7,8,9,10] % this is correct
4

1 に答える 1

14

どちらの場合も、結果は実際には正しいです。最初のケースの予期しない文字列は、Erlang の文字列が単なる整数のリストであるという事実によるものです。したがって、Erlang は最初のリストを文字列として解釈することを選択します。これには印刷可能な ASCII コードしか含まれていないためです。2 番目のケースでは、リストにコード 7 が含まれていますが、これは表示できません。そのため、Erlang はこれを整数リストとして解釈する必要があります。

を使用して、実際の整数リストをいつでも印刷できます。

MyList = lists:dropwhile(fun(X) -> X < 8 end, lists:seq(1,10)),
io:format("~w", [MyList]).
于 2012-04-06T12:27:36.680 に答える