我很难在Clojure中写入类型检查。请帮助我。如何在Clojure中编写/执行类型操作?
- 如何写/执行'char?'在Clojure中?
如何写/执行'atom?'在Clojure中?
我如何知道Clojure中物品的类型?
我可以写(type? an-item)
吗?
我很难在Clojure中写入类型检查。请帮助我。如何在Clojure中编写/执行类型操作?
如何写/执行'atom?'在Clojure中?
我如何知道Clojure中物品的类型?
我可以写(type? an-item)
吗?
user> (instance? Character \c)
true
Character
这里是java.lang.Character
。
我认为atom?
的传统定义是“无,或者任何不是成对的东西”,但这在Clojure中没有意义,因为Clojure不使用cons细胞来处理太阳下的所有事情。我们也有矢量和hashmaps和套等等。在Clojure中的一种可能性是:
(defn atom? [x] (not (coll? x)))
Clojure中的典型类型问题归结为问“这是什么类,或什么原始包装类可以包含它”。这来自Clojure对java的一流处理。 Clojure使用java类,而不是引入自己的类型系统,这需要很多或者包装器来自java的来回转换。
(= Character (class \a))
(symbol? 'asdf) ; not quite what you want but close. see
http://clojure.org/reader(= String (class "asdf"))
Brians anser using instance?比使用=更好 – 2009-07-23 21:49:42