在clojure中实现方案样式宏

zca*_*ate 5 scheme clojure

我经常读到关于为什么hygenic宏更好并且clojure的宏系统基于Common Lisp并且不是hygenic的辩论.

我的问题是:可以在clojure中实现方案样式宏系统,以及在其他lisps中植入的方案样式宏的一些示例.

Gre*_*ott 5

通过"方案式宏观系统",我不确定你的意思syntax-rules(简单的图案样式系统)或syntax-case(更灵活的系统,以及datum->syntax实际上让你弯曲或平坦的休息卫生).

此外,Racket有syntax-parse一个比它更简单易用的syntax-case东西(除其他外)使编写宏可以提供可理解的错误信息.

无论你的意思是什么,都有一个Clojure项目,旨在实现这三个方面.但是我没有尝试过,我不能保证它是如何成功的.