У меня есть несколько функций, которые имеют дело со списками. У меня есть четная функция, которая принимает параметр списка и получает четные индексы списка. Нечетная функция делает то же самое, но с нечетными индексами. У меня также есть другая функция, которая объединяет два отсортированных списка, называемая merge-list, которая принимает два списка в качестве параметров.
Проблема с функцией, которую я сейчас пишу: сортировка слиянием.
Вот что у меня есть:
(defn merge-sort [lis]
(if (empty? (rest lis))
lis
(merge-list (merge-sort (odd(lis))) (merge-sort (even(lis))))))))
Почему-то постоянно получаю ошибку
java.lang.ClassCastException: clojure.lang.PersistentList cannot be cast to clojure.lang.IFn
Я могу передать нечетную функцию rest lis вот так (odd(rest lis))
(то же самое с четной). Он работает нормально, но это, очевидно, не дает мне решения, которое я хочу.
Я очень новичок в Clojure, поэтому буду признателен за любые советы. Спасибо.