我在Intelij IDEA中打开了一个Clojure项目,在我创建了新的Clojure工作区并在其中编写了一些Clojure代码之前,一切都运行得很好。当我尝试在REPL中执行这段代码时,我总是得到相同的错误。无论我写什么,我都会得到同样的错误。例如,当我尝试执行(+ 1 1_ )时,我得到以下错误:
Syntax error compiling at (test.clj:4:1).
Unable to resolve symbol: + in this context已经有人面临这个问题了吗?
这是我的project.clj
(defproject test-app "0.1.0-SNAPSHOT"
:description "FIXME: write description"
:url "http://example.com/FIXME"
:dependencies [[cheshire "5.8.1"]
[clojure.java-time "0.3.2"]
[cprop "0.1.13"]
[funcool/struct "1.3.0"]
[luminus-immutant "0.2.5"]
[luminus-transit "0.1.1"]
[luminus/ring-ttl-session "0.3.2"]
[markdown-clj "1.0.7"]
[metosin/muuntaja "0.6.4"]
[metosin/reitit "0.3.1"]
[metosin/ring-http-response "0.9.1"]
[mount "0.1.16"]
[nrepl "0.6.0"]
[org.clojure/clojure "1.10.0"]
[org.clojure/tools.cli "0.4.2"]
[org.clojure/tools.logging "0.4.1"]
[org.webjars.npm/bulma "0.7.4"]
[org.webjars.npm/material-icons "0.3.0"]
[org.webjars/webjars-locator "0.36"]
[org.webjars/webjars-locator-jboss-vfs "0.1.0"]
[ring-webjars "0.2.0"]
[ring/ring-core "1.7.1"]
[ring/ring-defaults "0.3.2"]
[selmer "1.12.12"]]
:min-lein-version "2.0.0"
:source-paths ["src/clj"]
:test-paths ["test/clj"]
:resource-paths ["resources"]
:target-path "target/%s/"
:main ^:skip-aot test-app.core
:plugins [[lein-immutant "2.1.0"]]
:profiles
{:uberjar {:omit-source true
:aot :all
:uberjar-name "test-app.jar"
:source-paths ["env/prod/clj"]
:resource-paths ["env/prod/resources"]}
:dev [:project/dev :profiles/dev]
:test [:project/dev :project/test :profiles/test]
:project/dev {:jvm-opts ["-Dconf=dev-config.edn"]
:dependencies [[expound "0.7.2"]
[pjstadig/humane-test-output "0.9.0"]
[prone "1.6.1"]
[ring/ring-devel "1.7.1"]
[ring/ring-mock "0.3.2"]]
:plugins [[com.jakemccrary/lein-test-refresh "0.24.1"]]
:source-paths ["env/dev/clj"]
:resource-paths ["env/dev/resources"]
:repl-options {:init-ns user}
:injections [(require 'pjstadig.humane-test-output)
(pjstadig.humane-test-output/activate!)]}
:project/test {:jvm-opts ["-Dconf=test-config.edn"]
:resource-paths ["env/test/resources"]}
:profiles/dev {}
:profiles/test {}})当我在我的命名空间test-app.routes.home中编写代码时,一切都很好,但是当我在相同的routes文件夹中创建新的Clojure命名空间test.clj时,我无法在REPL中计算代码。当我按ctrl+Enter键时,我得到这个错误:
Syntax error compiling at (test.clj:4:1).
Unable to resolve symbol: + in this context发布于 2019-04-18 11:59:03
(也许)在尝试计算任何其他表达式之前,您需要先计算名称空间(ns ....)。
https://stackoverflow.com/questions/55661498
复制相似问题