如何以编程方式检查读者宏

时间:2013-03-20 09:46:13

标签: clojure

我有一个可以包含任意数据的向量。我想检查任何元素是读者宏,我该怎么做?

(is-reader-macro? #<DateTime 2012>) ;=> true

谢谢, 穆尔塔扎

1 个答案:

答案 0 :(得分:3)

一旦字符串为read,您就无法通过结果数据判断创建它的确切读者构造是什么。您刚刚阅读的数据项不是读者宏,而只是数据。

在您的具体示例中,您所获得的是jodatime DateTime对象的打印表示,无法读取 - #< ... >构造旨在防止这种情况。像这样打印的实际对象只是一个jodatime DateTime对象,而不是读者宏。