jav*_*guy 1 clojure code-snippets
我是新手.是什么区别(?3?),只是3?如果我这样做,?(3)我得到这个例外:
java.lang.ClassCastException:java.lang.Long无法强制转换为clojure.lang.IFn.
muh*_*huk 11
3 是字面数字3.(3)是一个功能应用程序,你试图调用3没有参数的函数.(没有这样的功能,似乎你无法定义它.)'(3)是一个项目的列表,3.它与(list 3)功能应用程序相同.这是一个repl会话:
repl=> 3
3
repl=> (3)
ClassCastException java.lang.Long cannot be cast to clojure.lang.IFn repl/eval1388 (NO_SOURCE_FILE:1)
repl=> '(3)
(3)
repl=> (list 3)
(3)
repl=> => (defn 3 [] 3)
ClassCastException java.lang.Long cannot be cast to clojure.lang.IObj clojure.core/with-meta (core.clj:211)
Run Code Online (Sandbox Code Playgroud)
在lisps括号中表示函数应用,所以这个:
(a b c d)
Run Code Online (Sandbox Code Playgroud)
意味着适用a于论点b c d
您正在尝试应用3,这不是一个功能,也不能转换为一个功能.