次のQuicksort実装の契約を変更して、ソート操作を実行するのに必要な再帰呼び出しの数を戻したいと考えています。関数を完全に再実装せずに再帰関数契約を変更しますか?
出典:http://rosettacode.org/wiki/Sorting_algorithms/Quicksort#Clojure
(defn qsort [[pivot & xs]]
(when pivot
(let [smaller #(< % pivot)]
(lazy-cat (qsort (filter smaller xs))
[pivot]
(qsort (remove smaller xs))))))
私が何をしたいのですが、何が内部で上記のqsort実装を使用counted-qsort
を実装しています。
私はこれを行う方法の例を探しています。私は(bind ...)
が関与している可能性があると思います。私はしばらくの間、この質問をいじって、ここに私が思い付いたものです