我有一個函數返回一個具有兩個字段的結構:key:event。 :event字段是一個映射(從高速緩存檢索到的分解的Java對象)。在REPL中,我將返回值看作地圖。將列表轉換回映射的地圖
然後,我應用(def events (map #(make-event %) (keys events-cache)))
,對緩存中的每個密鑰應用make-event函數,並且希望映射返回包含通過密鑰鍵入的每個事件映射。
我得到的回覆是如此,但名單內。因此調用任何地圖功能,搜索等,引發錯誤,clojure.lang.LazySeq不能轉換到clojure.lang.IFn。
我敢肯定,我在想這都是錯誤的,但有沒有辦法拉從列表地圖的地圖嗎?
這有點難以想像你的意思是這裏的數據 - 這將有助於有什麼'事件,cache'看起來像一個[可能簡化]例如,什麼'讓-event'一樣。它現在看起來像'events-cache'中的值永遠不會用在'events'的輸出中。 – trptcolin 2011-03-31 02:23:35
user>(keys events-cache) (44 29 76 36 26 33 65 25)對於我稱之爲make-event的每個鍵。 make-event返回一個clojure地圖。我想要的是這些地圖的地圖,但我得到的列表包含地圖的地圖。 – JPT 2011-03-31 02:28:47
用戶>事件 ({:鍵44,:事件{:名稱 「S-測試#1」,:狀態 「打開的」,:啓動#<日期星期二06月15十三點27分00秒EDT 2010>,:TV「 「:」體育「足球」,:主場「曼聯足球俱樂部」,:客場「利物浦足球俱樂部」}} {:key 29,:event {:name「Singles Woods v Harrington」,:status「Opened」 <日期3月11日00:00:00東部標準時間2010>,:電視「天空體育」,:體育「高爾夫」,:主頁「老虎伍茲」,:客場「帕德雷格哈靈頓」}})。這是因爲地圖函數返回一個列表? – JPT 2011-03-31 02:36:51