Вопрос по list-comprehension, erlang – списки ошибок: пока что странный результат

6

Может кто-нибудь, пожалуйста, помогите мне понять, что здесь происходит

<code>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
</code>

Ваш Ответ

1   ответ
13

Ваши результаты на самом деле верны в обоих случаях. Неожиданная строка в первом случае связано с тем, что в Erlang строки являются просто списками целых чисел. Поэтому Erlang предпочитает интерпретировать ваш первый список как строку, поскольку он содержит только печатаемые коды ASCII. Во втором случае список содержит код 7, который нельзя распечатать, поэтому Эрланг вынужден интерпретировать его как список целых чисел.

Вы всегда можете распечатать фактический список целых чисел, используя

MyList = lists:dropwhile(fun(X) -> X < 8 end, lists:seq(1,10)),
io:format("~w", [MyList]).
извините, я все еще новичок на сайте, не хотел игнорировать ваш ответ. Это решает мой вопрос. Daya Sharma
Не беспокойтесь об этом. Рад, что смог помочь. :)
спасибо за объяснение, это объясняет, почему это[68, 97, 121, 97]. это Дайя Daya Sharma

Похожие вопросы