リスト内の対応する場所に数値要素を挿入する関数を実装しようとしていますが、括弧に問題があります
(not(=(1 3 5 6 7 9 16)(((1 3)5)6 7 9 16)))
私が実行した場合、逆が奇妙な方法で実行されているためだと思います
(my-flatten'(((1 3)5)6 7 9 16))
私は本当の答えを得る:
(1 3 5 6 7 9 16)
これが私のコードです:
(defn insert [x lst]
(loop [prev () lst lst]
(cond
(empty? lst) (my-flatten (cons (reverse prev) (list x)))
(> (first lst) x) (my-flatten (cons (cons (reverse prev) (list x)) lst))
:else (recur (conj prev (first lst)) (rest lst)))))