有人可以帮我理解这里发生了什么
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
答案 0 :(得分:13)
在这两种情况下,您的结果都是正确的。第一种情况下的意外字符串 是因为Erlang中的字符串只是整数列表。因此,Erlang选择将您的第一个列表解释为字符串,因为它只包含可打印的ASCII码。在第二种情况下,列表包含代码7,这是不可打印的,因此Erlang被强制将其解释为整数列表。
您始终可以使用
打印实际的整数列表MyList = lists:dropwhile(fun(X) -> X < 8 end, lists:seq(1,10)),
io:format("~w", [MyList]).