Clojure REPL 无法解析符号
Clojure REPL Unable to resolve symbol
从 lein 运行 执行此函数时,程序按预期执行。但是我正在尝试 atom.io 的 proto-repl 包,当我使用 proto-repl 调用该函数时,它给出了 "CompilerException java.lang.RuntimeException: Unable to resolve symbol: can-vote in this context."
这是我的功能:
(defn can-vote
[]
(println "Enter age: ")
(let [age (read-line)]
(let [new-age (read-string age)]
(if (< new-age 18) (println "Not old enough")))
(println "Yay! You can vote")))
当您的 repl 启动时,它可能会将您置于 user
命名空间中。您需要移至 clojure-noob.core
命名空间或使用完全限定符号调用它。
如果要切换命名空间
(ns clojure-noob.core) ;; switch to the correct namespace
(can-vote) ;; call the function
如果要使用用户命名空间中的完全限定符号调用它
(require 'clojure-noob.core) ;; first require the namespace
(clojure-noob.core/can-vote) ;; call the fully qualified function
您可以从其他命名空间和库中阅读更多关于命名空间和调用函数的信息 here。
从 lein 运行 执行此函数时,程序按预期执行。但是我正在尝试 atom.io 的 proto-repl 包,当我使用 proto-repl 调用该函数时,它给出了 "CompilerException java.lang.RuntimeException: Unable to resolve symbol: can-vote in this context." 这是我的功能:
(defn can-vote
[]
(println "Enter age: ")
(let [age (read-line)]
(let [new-age (read-string age)]
(if (< new-age 18) (println "Not old enough")))
(println "Yay! You can vote")))
当您的 repl 启动时,它可能会将您置于 user
命名空间中。您需要移至 clojure-noob.core
命名空间或使用完全限定符号调用它。
如果要切换命名空间
(ns clojure-noob.core) ;; switch to the correct namespace
(can-vote) ;; call the function
如果要使用用户命名空间中的完全限定符号调用它
(require 'clojure-noob.core) ;; first require the namespace
(clojure-noob.core/can-vote) ;; call the fully qualified function
您可以从其他命名空间和库中阅读更多关于命名空间和调用函数的信息 here。