Мне нужно определить функцию с именем (последовательность ключей для всех пар)
Он возвращает список всех пар в seq, первым элементом которых является ключ. Если нет совпадений, возвращается пустой список.
Например, если я определяю домашних животных
(def pets
'((cat 1) (dog 1) (fish 1) (cat 2) (fish 2))
)
(get-all-pairs 'cat pets)
возвращает ((cat 1) (cat 2))
, а (get-all-pairs 'bird pets)
возвращает '()
.
Вот моя попытка:
(defn get-all-pairs [key seq]
(cond
(= key (first(first(seq)))) (cons (first seq)
(get-all-pairs key (rest seq)))
:else '()))
Но это не работает. Если я позвоню ему, он выведет следующие сообщения:
#'proj2.proj2/pets
=> (get-all-pairs 'cat pets)
ClassCastException clojure.lang.PersistentList cannot be cast to clojure.lang.IFn proj2.proj2/get-all-pairs (proj2.clj:20)
Я не знаю, где проблема. Как это исправить?