在Clojure的Java源代码中,我看到:
import clojure.lang.RT;
import clojure.lang.IFn;
Run Code Online (Sandbox Code Playgroud)
RT似乎代表"运行时"(虽然在答案中没有给出官方消息来源:在clojure源代码中,RT代表什么?)
但是什么IFn代表什么?
fn用 clojure 的术语来说,和之间还有一个区别ifn:
user> (defn f [x] x)
#'user/f
user> (map fn? [f #(list %) :keyword 'sym {:a 10} #{123} [1 2 3] 10 "asd"])
(true true false false false false false false false)
user> (map ifn? [f #(list %) :keyword 'sym {:a 10} #{123} [1 2 3] 10 "asd"])
(true true true true true true true false false)
Run Code Online (Sandbox Code Playgroud)
因此,正如您所看到的fn?,仅适用于实际函数,而ifn?如果适用于任何内容,则可以将其作为函数调用(如关键字、映射等)
| 归档时间: |
|
| 查看次数: |
742 次 |
| 最近记录: |