【发布时间】:2009-07-23 19:21:54
【问题描述】:
我很难在 Clojure 中编写类型检查。请帮帮我。
- 如何编写/执行“字符”?在 Clojure 中?
如何编写/执行“原子”?在 Clojure 中?
我如何知道 Clojure 中的项目是什么类型?
我可以写(type? an-item)吗?
【问题讨论】:
标签: clojure
我很难在 Clojure 中编写类型检查。请帮帮我。
如何编写/执行“原子”?在 Clojure 中?
我如何知道 Clojure 中的项目是什么类型?
我可以写(type? an-item)吗?
【问题讨论】:
标签: clojure
user> (instance? Character \c)
true
Character 这里是java.lang.Character。
我认为atom? 的传统定义是“nil,或者任何不是对的东西”,但这在 Clojure 中是没有意义的,因为 Clojure 不使用 cons 单元来处理所有事情。我们还有向量、哈希图和集合等。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. seehttp://clojure.org/reader (= String (class "asdf")) 【讨论】: