Clojure I/O (または型システム) に厄介な問題があるようです。ポイントは、この関数は、文字列と数値または文字列のコレクションのコレクションを消費することを期待しており、数値に関連付けられた文字列の辞書を返すことです。
(costlist '( '("Milk" 4) '("Bread" 2) '("Milk")))
与える
{"Milk" 4, "Bread" 2 }
によって定義されます
(defn costlist [lst]
;returns list of costs and appropriate names
(let [snds (filter (fn [x] (not (identical? nil x))) (seconds lst))]
(zipmap
(firsts (take (count snds) (firsts lst)))
(snds lst))))
タイプ clojure.lang.PersistentList (私は clojure.lang.LazySeq から変換したもの) のリストを消費すると、エラー メッセージがスローされます
clojure.lang.LazySeq cannot be cast to clojure.lang.IFn
その引数のいずれもが私には LazySeq ではないように見えるので、これは私を混乱させるだけです。