我正在尝试实现一个在列表中相应位置插入数字元素的函数,但是括号有问题
(不 (= (1 3 5 6 7 9 16) (((1 3) 5) 6 7 9 16)))
我怀疑是因为反向以一种奇怪的方式执行,因为如果我执行
(我的扁平化'(((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)))))