2010-08-20 4 views
3

download site에서 clojure 1.2 및 clojure-contrib-1.2.0.jar를 다운로드합니다.가져 오기 clojure.contrib.generic.math-functions

그리고 math functions에 대한 정보를 찾았습니다.

예에서와 같이 코드를 실행하려고했습니다.

(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

정확한 요구에 따라'clojure.contrib.math'가 좋습니다. –

답변

6

는 기호 (이 경우 ABS)을 사용할 수 있도록 필요 :use 대신

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

:require의 시도,하지만 당신은 완전히 자격을해야 할 것이다. Use는 "your-namespace"에 심볼을 임포트합니다 :

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

': require ... : refer : all'은 이제 Clojure 1.4.0+ 라이브러리에 대해': use'보다 선호됩니다 - http://dev.clojure.org/display/community/Library+Coding+Standards & https://github.com/bbsosov/clojure-style-guide – omiel