2016-11-07 41 views
-2

我正在尝试实现与Clojure的amazon aws绑定,以便我可以通过发送一个isbn并获取它的xml报告来搜索一本书。然后,我试图从报告中检索salesrank和book title。这是我想使用:https://github.com/FreeAgent/clj-amazon如何在clojure中调用函数并获取结果?

而不是使用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) 

,但然后我得到这个错误:错误数量的参数(0)传递给persistentarraymap。我怎样才能解决这个问题?

+0

你想做什么?你期待什么结果? –

回答

1

您正在定义gibson-opus-searchdef这是用于分配值,而不是定义函数。你需要用defn来定义它,然后用正确数量的参数来调用它。

相关问题