2016-01-06 3 views
0

Я только что установил последнюю версию Clojure, и, следуя учебник для Освободителя (http://clojure-liberator.github.io/liberator/tutorial/getting-started.html), я получаю следующее исключение:Clojure, свежая установка: не удается разрешить символ: some->

Exception in thread "main" java.lang.RuntimeException: Unable to resolve symbol: some-> in this context, compiling:(clout/core.clj:88) 
at clojure.lang.Compiler.analyze(Compiler.java:6281) 
at clojure.lang.Compiler.analyze(Compiler.java:6223) 
at clojure.lang.Compiler$InvokeExpr.parse(Compiler.java:3497) 
at clojure.lang.Compiler.analyzeSeq(Compiler.java:6457) 
at clojure.lang.Compiler.analyze(Compiler.java:6262) 
... ... 
Caused by: java.lang.RuntimeException: Unable to resolve symbol: some-> in this context 
at clojure.lang.Util.runtimeException(Util.java:170) 
at clojure.lang.Compiler.resolveIn(Compiler.java:6766) 
at clojure.lang.Compiler.resolve(Compiler.java:6710) 
at clojure.lang.Compiler.analyzeSymbol(Compiler.java:6671) 
at clojure.lang.Compiler.analyze(Compiler.java:6244) 
... 114 more 
Tests failed. 

I на Ubuntu 15.04. Leiningen verison 2.5.3. Java версия 1.7.0_91.

Lein Repl работает просто отлично, и в то время как он понимает (some ...), он не может разрешить (some-> ...)

Я искал в течение нескольких часов, и это выглядит как some-> должна быть стандартной функцией для Clojure v1.5 +

Почему у меня нет?

+1

У вас, по-видимому, есть старая версия Clojure. Вы используете свой проект REPL внутри проекта? Позаботьтесь о предоставлении своего 'project.clj'? –

+1

Кроме того, при запуске REPL, какая версия печатается? – nha

+0

Вы, ребята, были на правильном пути, моя версия REPL - 1.7, но мой project.clj (скопированный из учебника) попросил v1.4. Я изменил его на 1.7, и теперь он работает! –

ответ

5

Из ссылки учебник, то project.clj является:

(defproject liberator-tutorial "0.1.0-SNAPSHOT" 
    :plugins [[lein-ring "0.8.11"]] 
    :ring {:handler liberator-tutorial.core/handler} 
    :dependencies [[org.clojure/clojure "1.4.0"] ;; <-!!!!!!!!!!!!!!!! 
       [liberator "0.13"] 
       [compojure "1.3.4"] 
       [ring/ring-core "1.2.1"]]) 

Таким образом, вы работаете с Clojure 1.4.0. Попробуйте изменить его на 1.7.0 или около того.

+0

Спасибо за то, что вы меня спасли! Я изменил эту строку на '' 1.7.0'', и он отлично работает! –