如何在clojure中调用函数并获得结果?
我正在尝试用Clojure实现AmazonAWS绑定,这样我就可以通过发送isbn来搜索一本书,并获得它的xml报告。然后我尝试从报告中检索salesrank和书名。以下是我尝试使用的内容: 我没有使用REPL,而是在src文件夹中创建了一个core2.clj,并在其中添加了以下代码:如何在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
(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
定义它,然后使用正确数量的参数调用它。您想做什么?你期望得到什么样的结果?