Короткий ответ: НЕТ , он соответствует тому, как Эрланг обрабатывает код.
Erlang VM поддерживает только скомпилированный код. Единицей обработки кода, включая компиляцию, является модуль , вы загружаете, удаляете, обновляете и удаляете модули. Так что на самом деле невозможно смешивать интерпретированные и скомпилированные функции так же, как вы можете в lisp. Можно было бы расширить оболочку, чтобы позволить определять интерпретируемые функции внутри нее, но тогда они будут вызываться только из интерпретатора оболочки, а не из других модулей. Также можно было бы заставить оболочку перекомпилировать и перезагрузить «модуль оболочки», чтобы функции внутри нее могли вызываться из других модулей. Но тогда этот модуль действительно мог бы существовать только в этом вызове erlang.
И я, честно говоря, не вижу смысла в том, что перекомпиляция и перезагрузка кода всегда были настолько быстрыми, что это не было проблемой. Это скорее сила привычки, чем удобство.