В Erlang имена переменных начинаются с заглавной буквы или подчеркивания.В вашем коде mysqrt
является не переменной, а атомом.
Строка mysqrt = math:sqrt(_X)
является, таким образом, утверждением , что возвращаемое значение math:sqrt
равен этому атому, который завершится ошибкой, потому что эта функция возвращает число с плавающей запятой - но компилятор не знает этого.
Затем вы сравниваете mysqrt
с 100.0
.В Erlang числа всегда сравниваются как атомы, поэтому mysqrt < 100.0
всегда ложно - это то, о чем вас предупреждает компилятор.
Вместо этого назовите вашу переменную MySqrt
, и ваш код должен работать.
(Кроме того, условием является использование имен переменных, начинающихся с подчеркивания, только когда переменная не используется, так как такие имена подавляют предупреждения «неиспользуемой переменной» от компилятора. Было бы более идиоматичным просто вызывать аргументк этой функции X
вместо _X
.)