2010-08-26 13 views

Odpowiedz

8

Najważniejszą książką na temat makr Lispa jest prawdopodobnie 01-Paula Grahama. Używał jednak Common Lisp, ale to nie ma znaczenia, jeśli naprawdę chcesz spojrzeć na to makro, chociaż Clojure są różne na wielu poziomach. (Clojure jest na początku Lisp-1).

+5

+1. Oprócz "On Lisp", polecam również czytanie o higienicznych makrach Scheme, Lisp-1 vs Lisp-2, a także kopanie list dyskusyjnych Clojure o tym, jak rozwiązuje problem higieny w inteligentny sposób za pomocą symboli o kwalifikowanej przestrzeni nazw. –

+1

+1 dla On Lisp i Let over Lambda: On Lisp jest obowiązkową lekturą dla Lispa, podczas gdy Let over Lambda skupia się prawie wyłącznie na makro-czarach i zawiera kilka naprawdę interesujących pomysłów. Polecam najpierw czytanie na Lispie, a potem Let over Lambda. –

5

Chociaż są one zarówno na celu Common Lisp, dwie wielkie książki tego są Na Lisp Paul Graham (pełna książek dostępnych darmo online na his website) i Let Over Lambda Doug Hoyte.

Z dwóch Na Lisp jest bardziej dostępny; nawet jeśli makra Clojure są bardziej podobne do makr Scheme, to prawie na pewno się z tego czegoś nauczysz.

0

Nie jest to właściwie książka o makrofotografii ogólnego zastosowania, ale AMOP pokazuje, jak używać makr jako warstwy "widoku" dla biblioteki/frameworka.

(Hmm, ja nie robi bardzo dobrą pracę opisującą to. AMOP to książka, która wymyka się klasyfikacji rodzaju!)

3

Książka „Practical Common Lisp” wyjaśnia Lisp makra bardzo wyraźnie. Makra Clojure'a są na tyle podobne do makr Common Lisp, że prawie wszystko, czego się nauczyłeś, przełoży. "Let Over Lambda", będąc zabawną, interesującą i kreatywną pracą, używa makr Lisp w sposób odmienny od sposobu, w jaki używają go najbardziej poważni, doświadczeni, praktyczni programiści Lisp. Nie polecam używania "anamorficznych" makr (które "znają" o konkretnych nazwach zmiennych).

4

Nadchodząca książka Michaela Fogusa The Joy of Clojure, dostępna za pośrednictwem programu wczesnego dostępu Manninga, ma dobry rozdział na temat makr. To doskonała książka wyjaśniająca sposób myślenia za funkcjonalnym programowaniem, a nie tylko jak, ale także dlaczego funkcje Clojure (w tym najnowsze zmiany w wersji 1.2) są zaimplementowane tak, jak są.

W rozdziale makro wyjaśnia następujące przypadki użycia dla makra w Clojure, w jaki sposób mogą być realizowane i jak są one przetwarzane:

definiujące struktury sterujące
łączące formy
zmieniające się formy
powracający formy
kontrola symboliczny czas rozdzielczości
zarządzanie zasobami