我正在尝试编写一个宏,它接受一个绑定向量和一个可以访问这些绑定的函数。以最简单的形式:
(defmacro f-with-binds [binds f]
`(let [~@binds]
~f))
即使上述方法有效:
(f-with-binds [n 123 m 456] (println n m)) ;; => 123 456
我对此不满意,因为 Cursive 突出显示n
并作为未声明的变量,这对于和m
之类的宏不会发生。如何改进我的实施?for
let
ps.:真正的宏返回一个传感器 - 绑定是传感器的状态,函数是传感器的阶跃函数