如何在clojure中调用函数并获得结果?

如何在clojure中调用函数并获得结果?,clojure,Clojure,我正在尝试用Clojure实现AmazonAWS绑定,这样我就可以通过发送isbn来搜索一本书,并获得它的xml报告。然后我尝试从报告中检索salesrank和书名。以下是我尝试使用的内容: 我没有使用REPL,而是在src文件夹中创建了一个core2.clj,并在其中添加了以下代码: (ns clj_amazon.core2 (:use clj-amazon.core) (:use clj-amazon.product-advertising) (:gen-class)) (defn -ma

我正在尝试用Clojure实现AmazonAWS绑定,这样我就可以通过发送isbn来搜索一本书,并获得它的xml报告。然后我尝试从报告中检索salesrank和书名。以下是我尝试使用的内容:

我没有使用REPL,而是在src文件夹中创建了一个core2.clj,并在其中添加了以下代码:

(ns clj_amazon.core2
(:use clj-amazon.core)
(:use clj-amazon.product-advertising)
(:gen-class))

(defn -main [& args]

(def ACCESS-KEY "my access code")

(def SECRET-KEY "my secret key" )

(def ASSOCIATE-ID "my id")

(def gibson-opus-search (with-signer (ACCESS-KEY, SECRET-KEY) (item-search :search-index "Books", :keywords "Neuromancer", :associate-tag ASSOCIATE-ID,    :condition "New")))

(gibson-opus-search)

)
如果我删除

(gibson-opus-search) 
并在命令行中运行“leinrun”,则不会出现错误。我有正确的访问密钥/密钥,代码似乎工作正常。但我也没有打印报告。我是Clojure的新手,所以我不知道下一步该做什么。我试图用

(gibson-opus-search)

,但我得到了这个错误:传递给persistentarraymap的参数(0)数量错误。如何解决此问题?

您正在使用
def
定义
gibson opus search
,它用于赋值,而不是定义函数。您需要使用
defn
定义它,然后使用正确数量的参数调用它。

您想做什么?你期望得到什么样的结果?