StackOverFlowError Clojure 更改列表顺序

问题描述

我希望能够像 clojure 这样的列表

(1 2 3 4 5 6 7 8 9) 

并像这样更改顺序:

(9 8 7 6 5 4 3 2 1)

我找不到用于(反转?这是一个好词吗?)将列表返回到前面或任何您想调用该操作的内置函数,如果有的话,如果有人指出这一点,我将非常感谢因为创建这个函数不是我的目标,它只是我需要通过的一个步骤来做我真正想做的事情。无论如何,我编写了一个应该执行此操作的函数,但出现此错误

StackOverflowError   clojure.core/seq (core.clj:133)

解决:内置函数 reverse 解决了我的问题,谢谢!

    (defn turn-list
     ([l]
        (turn-list (rest l) (list (first l))))
     ([l1 l2]
        (if (empty? l1)
           l2
           (turn-list (conj l1 (first l2)) (rest l2)))))

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)