¿Cuáles son las principales diferencias entre Emacs Lisp y Common Lisp?
elisp common-lisp (2)
Estas páginas de Emacs-Wiki ofrecen información sobre la relación entre los dos Lisp y sus diferencias:
Quiero aprender el lenguaje lisp, ya que mi editor es emacs, prefiero emacs lisp.
¿Alguien puede darme algunas sugerencias para aprender lisp, emacs lisp o balbuceo común?
¿Cuáles son las principales diferencias entre esos dos?
Hay un poco de cruce, especialmente en el nivel principiante, por lo que lo que comiences se transferirá principalmente al otro.
Algunas de las principales diferencias:
elisp ha usado tradicionalmente reglas dinámicas de alcance; Common Lisp usa reglas de alcance léxico. Con el alcance dinámico, una función puede acceder a las variables locales declaradas en las funciones de llamada y generalmente ha caído en desgracia. Emacs tiene una forma
lexical-let
que simula el alcance léxico y las versiones recientes de emacs permiten el alcance léxico opcional función por función.elisp no tiene cierres, lo que hace que las funciones de composición y el currying sean difíciles. Hay una función de
apply-partially
que funciona de manera similar al currying. Tenga en cuenta que la formalexical-let
introducida en Emacs 24 hace posible producir cierres a través del alcance léxico.Gran parte de la biblioteca Common Lisp que se ha creado a lo largo del tiempo no está disponible en elisp. Un subconjunto es proporcionado por el paquete elisp
cl
elisp no hace la optimización de la llamada de la cola.