Подтвердить что ты не робот

Каковы основные различия между Emacs Lisp и Common Lisp?

Я хочу изучить язык lisp, так как мой редактор emacs, я предпочитаю emacs lisp.

Может ли кто-нибудь дать мне несколько советов, чтобы узнать lisp, emacs lisp или общий lisp?

Каковы основные различия между этими двумя?

4b9b3361

Ответ 1

Здесь довольно много кроссовера, особенно на уровне новичка, поэтому в зависимости от того, что вы начнете, в основном переносятся на другой.

Некоторые из основных отличий:

  • elisp традиционно применяет правила динамической оценки; Common Lisp использует лексические правила определения области. При динамическом масштабировании функция может обращаться к локальным переменным, объявленным в вызывающих функциях, и, как правило, не соответствует требованиям. Emacs имеет форму lexical-let, которая имитирует лексическое охват, а последние версии emacs допускают возможность лексического охвата на основе функциональных функций.

  • elisp не имеет замыканий, что затрудняет выполнение композиционных функций и каррирование. Там есть функция apply-partially, которая работает аналогично currying. Обратите внимание, что форма lexical-let, введенная в Emacs 24, позволяет производить замыкания посредством лексического охвата.

  • Большая часть общей библиотеки Lisp, которая была создана с течением времени, недоступна в elisp. Подмножество предоставляется пакетом elisp cl

  • elisp не выполняет оптимизацию хвостового вызова.