2011-07-05 3 views
3

Я новичок во всем JVM и стараюсь играть с clojure. Я пытаюсь загрузить Clojure-вно и неудачу:loading clojure-contrib

# in bash 
$ java -cp /path/to/clojure.jar:/path/to/contrib.jar clojure.main 

# in REPL 
user=> (require 'clojure.contrib.math) 
nil 
user=> (sqrt 2) 
java.lang.Exception: Unable to resolve symbol: sqrt in this context (NO_SOURCE_FILE:10) 

Все указатели будут здорово - спасибо.

ответ

2

Я не эксперт, но это похоже на проблему с пространством имен. Решением я использовал это было:

;; for REPL 
user=> (ns user (:use clojure.contrib.math)) 
nil 
user=> (sqrt 2) 
1.4142135623730951 
1

Вы должны поставить см после требует, который будет отображать все символы в текущее пространство имен

(require 'clojure.contrib.math) 
(refer 'clojure.contrib.math) 

(sqrt 2) 
(expt 2 3) 

Для детального интро вы можете прочитать статью Викиучебников. http://en.wikibooks.org/wiki/Clojure_Programming/Concepts#Refer_and_Use

+0

Отлично. Плавно работает с скриптами Clojure, встроенными в Java-приложения для меня (я использую Netbeans, Clojure и Clojure-contrib доступны как «библиотеки»)! –