2010-08-26 12 views

Répondre

8

Le livre quintessentiel sur les macros Lisp est probablement le On Lisp de Paul Graham. Il a utilisé Common Lisp, cependant, mais cela n'a pas trop d'importance si ce que vous voulez vraiment regarder les macros, bien que les Clojure sont différents sur un certain nombre de niveaux. (Clojure étant un Lisp-1, pour commencer.)

+5

+1. En plus de "On Lisp", je vous recommande de lire les macros hygiéniques de Scheme, Lisp-1 et Lisp-2, et de trouver des messages sur la liste de diffusion de Clojure pour résoudre le problème d'hygiène de manière intelligente. –

+1

+1 pour On Lisp et Let over Lambda: On Lisp est un must pour Lisp tandis que Let over Lambda se concentre presque exclusivement sur la macro-magie et propose des idées vraiment intéressantes. Je recommande de lire d'abord sur Lisp puis sur Let Lambda. –

5

Bien qu'ils soient tous les deux visent à Common Lisp, deux grands livres en sont sur Lisp par Paul Graham (livre complet disponible gratuitement en ligne à his website) et Let Over Lambda par Doug Hoyte.

Des deux Sur Lisp est plus accessible; Même si les macros de Clojure sont plus semblables aux macros hygiéniques de Scheme, vous en apprendrez certainement quelque chose.

0

Il ne s'agit pas exactement d'un livre d'écriture de macro généraliste, mais AMOP montre comment utiliser les macros en tant que couche «vue» pour une bibliothèque/structure.

(Hmm, je ne suis pas en train de faire un très bon travail décrivant ce sujet. AMOP est un livre qui défie genre de catégorisation!)

3

Le livre « pratique Common Lisp », explique macros Lisp très clairement. Les macros de Clojure sont assez similaires à celles du Common Lisp, à peu près tout ce que vous apprendriez. "Let Over Lambda", tout en étant amusant, intéressant et créatif, utilise les macros Lisp très différemment de la façon dont elles sont utilisées par les programmeurs Lisp les plus sérieux, les plus expérimentés et les plus pratiques. Je ne recommande pas l'utilisation de macros "anamorphiques" (qui "savent" sur les noms de variables spécifiques).

4

Le prochain livre de Michael Fogus, The Joy of Clojure, disponible via le programme Early Access de Manning, contient un bon chapitre sur les macros. C'est un excellent livre qui explique l'état d'esprit derrière la programmation fonctionnelle, et non seulement comment, mais aussi pourquoi les fonctionnalités de Clojure (y compris les changements 1.2 les plus récents) sont implémentées comme elles sont.

Le chapitre sur ce macro explique les cas d'utilisation suivants pour de macro dans Clojure, comment ils peuvent être mis en œuvre, et la façon dont ils sont traités:

définissant les structures de contrôle
combinant formes
formes changeantes
retour forme
contrôle le temps de résolution symbolique
gérer les ressources