我正在尝试使用Clojure实现amazon aws绑定,以便我可以通过发送isbn并获取它的xml报告来搜索一本书。然后我试图从报告中检索salesrank和书名。以下是我尝试使用的内容:https://github.com/FreeAgent/clj-amazon
我没有使用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)
并且跑步" lein run"在命令行中,我没有错误。我有正确的访问密钥/密钥,似乎代码工作正常。但我也没有打印报告。我是Clojure的新手,所以我不明白接下来应该做些什么。我试着用
调用函数(gibson-opus-search)
,但后来我得到了这个错误:传递给persistentarraymap的错误数量的args(0)。我该如何解决这个问题?
答案 0 :(得分:1)
您正在使用gibson-opus-search
定义def
,用于分配值,而不是定义函数。您需要使用defn
定义它,然后使用正确数量的参数调用它。