Используйте {ok, [X]} = io:fread("","~d")
(скобки вокруг X
).
fread
возвращает список в качестве второго элемента кортежа (что имеет смысл, если вы читаете более одного токена), поэтому вам нужно вывести элемент из списка, прежде чем вы сможете сравнить его с 42
.
Обратите внимание, что вместо сопоставления с шаблоном по результату == вы можете просто сопоставить шаблон с самим X, т. Е .:
case X of
42 -> io:fwrite("Hi\n");
_ -> io:fwrite("Hello\n")
end.