Вы не можете определить именованные функции в оболочке Erlang, используя подход, который вы показываете в своем вопросе.Вместо этого вы должны использовать ключевое слово fun
, чтобы определить функцию, и связать ее с переменной:
1> RightAge = fun(X) when X >= 16, X =< 104 -> true; (_) -> false end.
#Fun<erl_eval.6.128620087>
2> RightAge(30).
true
Кстати, обратите внимание, что вы можете определить эту функцию проще, всего с помощью одного предложения, переместив охрану в тело функции:
1> RightAge = fun(X) -> X >= 16 andalso X =< 104 end.
#Fun<erl_eval.6.128620087>
2> RightAge(30).
true