读取器条件允许读取器根据一组平台特性有条件地发出代码。
这是一个封闭的集合 - 然而,当前它被嵌入为读取器的实现细节。运行时代码不能访问当前的平台特性集。
当编写需要根据编译的代码平台有条件地发出代码的宏时,这是一个问题。因为宏总是由Clojure本身读取,所以读者条件本身不会起作用。
我们应该启用一些机制以在运行时或至少在宏扩展时检索当前平台。
例如,以下事情应该是可能的
`
(defmacro mymacro []
(if (*platforms* :clj)
`(some-clojure-thing)
`(some-cljs-thing)))
`