相关疑难解决方法(0)

Clojure#=读者宏

我刚从Stackoverflow上#=帖子 "发现"了读取器宏,它解决了一个问题.这个读者宏观有多大可能成为该语言的官方(文档)部分?如何弃用或改变行为?

所述#=读取器宏导致以下s表达式由Lisp的读取器进行评估(宏膨胀之前).

macros clojure

13
推荐指数
1
解决办法
1425
查看次数

使用clojure宏在reify调用中自动创建getter和setter

我正在尝试使用大量(~50)getter和setter方法(一些具有不规则名称)实现一个巨大的Java接口.我认为使用宏来减少代码量会很好.而不是

(def data (atom {:x nil}))
(reify HugeInterface
  (getX [this] (:x @data))
  (setX [this v] (swap! data assoc :x v))) 
Run Code Online (Sandbox Code Playgroud)

我希望能够写作

(def data (atom {:x nil}))
(reify HugeInterface
  (set-and-get getX setX :x))
Run Code Online (Sandbox Code Playgroud)

这个set-and-get宏(或类似的东西)可能吗?我无法让它发挥作用.

macros clojure reify

6
推荐指数
1
解决办法
1173
查看次数

标签 统计

clojure ×2

macros ×2

reify ×1