Sto provando a scrivere un'esercitazione macro e ora ho bisogno di alcuni esempi che siano semplici da capire e tuttavia avvincenti.Esempi di macro semplici ma avvincenti che non sono già presenti in Clojure
Il problema è che molte delle cose ovvie sono già in clojure e contrib. E sento che "guarda, possiamo reimplementare tutte le funzioni della libreria" potrebbe non essere l'argomento migliore per spiegare perché le macro sono così grandi.
Qualcuno ha qualche esempio carino (one-liners sono i migliori) che non mi dispiacerebbe usare?
Ecco le prime tre parti del tutorial. Al momento è un po 'approssimativo, quindi qualsiasi commento su come potrebbe essere migliorato sarebbe accolto con gratitudine.
http://learnclojure.blogspot.com/2010/09/clojure-macro-tutorial-part-i-getting.html
http://learnclojure.blogspot.com/2010/09/clojure-macro-tutorial-part-ii-compiler.html
http://learnclojure.blogspot.com/2010/09/clojure-macro-tutorial-part-ii-syntax.html
Forse il mio esempio preferito, che non sono sicuro sia possibile in clojure (forse un sottoinsieme limitato con clj-cont, ma completamente nello schema), sta implementando 'yield', come in python, tramite' chiamare/cc'. È un esempio potente che fa davvero capire che le macro possono aiutarti a costruire anche il più selvaggio dei costrutti nella lingua. – apg