3

ダウンロード サイトから 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
スレッド「メイン」の例外 java.lang.Exception: シンボルを解決できません: このコンテキストでは abs (hello.clj:4)
    clojure.lang.Compiler.analyze(Compiler.java:5205) で
        ...
    clojure.main.main(main.java:37)
原因: java.lang.Exception: Unable to resolve symbol: abs in this context
    clojure.lang.Compiler.resolveIn(Compiler.java:5677) で
    clojure.lang.Compiler.resolve(Compiler.java:5621)
    clojure.lang.Compiler.analyzeSymbol(Compiler.java:5584)で
    clojure.lang.Compiler.analyze(Compiler.java:5172)で
    ... 25以上

何が間違っている可能性がありますか?

4

1 に答える 1

6

:use代わりに試してください:require

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

Require はシンボル (この場合は abs) を使用可能にしますが、完全に修飾する必要があります。シンボルを「your-namespace」にインポートします。

(ns your-namespace2
  (:require clojure.contrib.generic.math-functions))
(println (clojure.contrib.generic.math-functions/abs 10))
10
nil
于 2010-08-20T02:55:57.587 に答える