Импорт clojure.contrib.generic.math-functions - PullRequest
3 голосов
/ 20 августа 2010

Я загружаю clojure 1.2 и clojure-contrib-1.2.0.jar с сайта .

И я нашел информацию о математических функциях .

Как показано в примере, я попытался запустить код.

(ns your-namespace
  (:require clojure.contrib.generic.math-functions))
(println (abs 10))

Но я получил следующую ошибку при запуске следующим образом.

CLOJURE_JAR=/Users/smcho/bin/jar/clojure.jar:/Users/smcho/bin/jar/clojure-contrib-1.2.0.jar
java -cp $CLOJURE_JAR:$CLASSPATH clojure.main SOURCE.CLJ
Exception in thread "main" java.lang.Exception: Unable to resolve symbol: abs in this context (hello.clj:4)
    at clojure.lang.Compiler.analyze(Compiler.java:5205)
        ...
    at clojure.main.main(main.java:37)
Caused by: java.lang.Exception: Unable to resolve symbol: abs in this context
    at clojure.lang.Compiler.resolveIn(Compiler.java:5677)
    at clojure.lang.Compiler.resolve(Compiler.java:5621)
    at clojure.lang.Compiler.analyzeSymbol(Compiler.java:5584)
    at clojure.lang.Compiler.analyze(Compiler.java:5172)
    ... 25 more

Что может быть не так?

1 Ответ

6 голосов
/ 20 августа 2010

Попробуйте :use вместо :require

(ns your-namespace
  (:use clojure.contrib.generic.math-functions))
(println (abs 10))
10
nil

Require делает символ (в данном случае abs) доступным, но вам придется полностью его квалифицировать.Использование импортирует символ в ваше пространство имен:

(ns your-namespace2
  (:require clojure.contrib.generic.math-functions))
(println (clojure.contrib.generic.math-functions/abs 10))
10
nil
...