【发布时间】:2017-10-10 22:47:54
【问题描述】:
我有以下代码
(ns clojure-noob.core
(:gen-class))
(defn -main [& args]
(defn A [x] (str x "a"))
(println (A ".")) ; .a
(println A) ; some object
(println (symbol "A")) ; just A
(println (resolve(symbol "A"))) ; nil
(println ((resolve(symbol "A")) ".")) ; nullpointer exception
)
如果我在 repl 中一一输入行(以 (defn A ... 开头),它们的行为与预期相同。最后一个
(println ((resolve(symbol "A")) "."))
在“.”上调用 A即附加字母a。
但是在 leiningen 中用lein run 调用的整个过程在倒数第二行给出了nil,在最后一行给出了空指针异常,即resolve 没有按预期解决。
我做错了什么? lein repl 和 lein run 有什么区别?
【问题讨论】:
标签: clojure read-eval-print-loop resolve