我正在尝试编写一个宏教程,现在我需要一些易于理解但又引人入胜的示例。
问题是很多显而易见的事情已经在 clojure 和 contrib 中了。而且我觉得“看,我们可以重新实现所有库函数”可能不是宏为何如此出色的最佳论据。
有没有人有任何他们不介意我使用的可爱的(最好是单行的)例子?
这是本教程的前三部分。目前它有点棘手,因此将不胜感激地收到有关如何使其变得更好的任何评论。
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
最佳答案
我会更多地谈论模式:何时以及如何使用宏。例如...
binding
, with-open
, ...(let [~x (get-resource)] (try ~@dostuff (finally (release-resource ~x))))
defn
, defsnippet
(活跃), defservice
(戒指)像多重评估或捕获。示例:
with-bindings
关于macros - Clojure 中尚未提供的简单而引人注目的宏示例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3711138/