Clojure宏不需要它旁边的空间

Jim*_*ffa 2 lisp macros clojure

试图创建一个Haskell的lambda语法的宏形式,除了最后一个调整之外我很接近,/(它应该是\,但不能发牢骚..)需要一个空格旁边,有什么方法可以这样做我的宏不需要它和它的第一个参数之间的空间?

例如:

(reduce (/x y -> x y) [1 2 3])

代替:

(reduce (/ x y -> x y) [1 2 3])

我怀疑这是不可能的,但唯一可以肯定的方法是询问知道的人,那么这个词是什么?

Mat*_*ard 5

不可以.宏不能改变语言的词法语法.这需要读取宏,Clojure没有.

  • 为了澄清一点,Clojure确实有读者宏(```,`#(...)`是例子)但是,与其他Lisps不同,它不会让你自己创造. (3认同)