Я пытаюсь написать программу, которая берет список целых чисел и сортирует его с помощью быстрой сортировки или слияния. Я уверен, что функция написана правильно, но когда я пытаюсь напечатать результаты, это не сортировка. Я новичок в clojure, поэтому я не знаю, правильно ли я возвращаю список или что.
(ns mergetime.core)
(use 'clojure.java.io)
(require '[clojure.string :as str])
(defn -main[])
(def string (slurp "100.txt"))
(def numbers (str/split string #"\W+"))
(def nums (mapv #(Integer/parseInt %) numbers))
(defn qsort [L]
(if (empty? L)
'()
(let [[pivot & L2] L]
(lazy-cat (qsort (for [y L2 :when (< y pivot)] y))
(list pivot)
(qsort (for [y L2 :when (>= y pivot)] y))))))
(def nums2 (qsort[nums]))
(println nums2)
Я, кроме списка, который нужно отсортировать, однако я просто получаю несортированный список