2010-08-26 15 views

Respuesta

8

El libro por excelencia sobre las macros de Lisp es probablemente el On Lisp de Paul Graham. Sin embargo, usó Common Lisp, pero eso no importa demasiado si lo que realmente quiere es ver las macros, aunque las de Clojure son diferentes en varios niveles. (Clojure es un Lisp-1, para empezar.)

+5

+1. Además de "On Lisp", también recomendaría leer sobre las macros higiénicas de Scheme, Lisp-1 vs Lisp-2 y también excavar las publicaciones de la lista de correo de Clojure sobre cómo resuelve el problema de higiene de una manera inteligente usando símbolos calificados de espacio de nombres. –

+1

+1 para On Lisp y Let over Lambda: On Lisp es una lectura obligada para Lisp, mientras que Let over Lambda se centra casi exclusivamente en macro-wizardry y presenta algunas ideas realmente interesantes. Yo recomendaría leer primero sobre Lisp y luego sobre Let Lambda. –

5

Aunque los dos están dirigidos a Common Lisp, dos grandes libros para esto son En Lisp por Paul Graham (libro completo en línea gratis en his website) y Let Over Lambda por Doug Hoyte.

De los dos On Lisp es más accesible; aunque las macros Clojure son IIRC más similares a las macros higiénicas de Scheme, seguramente aprenderá algo de ello.

0

No es exactamente un libro de macro escritura de propósito general, pero AMOP demuestra cómo usar macros como una capa de 'vista' para una biblioteca/marco.

(Hmm, no estoy haciendo un muy buen trabajo de describir esto. AMOP es un libro que desafía la categorización del tipo!)

3

El libro "Practical Common Lisp" explica macros Lisp muy claramente. Las macros de Clojure son lo suficientemente parecidas a las de Common Lisp que prácticamente todo lo que uno aprendería se mantendría. "Let Over Lambda", aunque es un trabajo divertido, interesante y creativo, utiliza las macros de Lisp de una forma muy diferente a la que usan los programadores Lisp más serios, experimentados y prácticos. No recomiendo el uso de macros "anamórficas" (que "saben" sobre nombres de variables específicos).

4

El próximo libro de Michael Fogus, The Joy of Clojure, disponible a través del Programa de acceso anticipado de Manning, tiene un buen capítulo sobre macro. Es un excelente libro que explica la mentalidad detrás de la programación funcional, y no solo cómo, sino también por qué las características de Clojure (incluidos los 1.2 cambios más recientes) se implementan tal como son.

El capítulo sobre macro de se explican los siguientes casos de uso de de macro en Clojure, la forma en que se pueden implementar, y la forma en que se procesan:

que definen las estructuras de control
formas combinando
formas cambiantes
regresan
forma control del tiempo de resolución simbólica
gestionar los recursos

Cuestiones relacionadas