erlang列表:丢弃奇怪的结果

Day*_*rma 6 erlang list-comprehension

请有人帮我理解这里发生了什么

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
Run Code Online (Sandbox Code Playgroud)

3le*_*gos 14

在两种情况下,您的结果都是正确的.第一种情况下的意外字符串是由于Erlang字符串只是整数列表这一事实.因此,Erlang选择将您的第一个列表解释为字符串,因为它只包含可打印的ASCII代码.在第二种情况下,列表包含代码7,它不可打印,因此Erlang被强制将其解释为整数列表.

您始终可以使用打印实际的整数列表

MyList = lists:dropwhile(fun(X) -> X < 8 end, lists:seq(1,10)),
io:format("~w", [MyList]).
Run Code Online (Sandbox Code Playgroud)