Кажется, у меня неприятная проблема с вводом-выводом clojure (или системой типов). Дело в том, что эта функция, которая, как я ожидаю, будет потреблять набор коллекций строк и чисел или строк, и возвращает словарь строк, связанных с числами, например
(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.