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:无法解析符号:此上下文中的 abs
    在 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 回答