gpt4 book ai didi

list - Clojure 无法将列表传递给函数 Error PersistentList cannot be cast to clojure.lang.IFn

转载 作者:行者123 更新时间:2023-12-01 10:10:10 25 4
gpt4 key购买 nike

我有一些处理列表的函数。我有一个偶数函数,它接受一个列表参数并获取列表的偶数索引。奇函数做同样的事情,但使用奇数索引。我还有另一个函数,它合并两个排序列表,称为 merge-list,它将两个列表作为参数。

问题出在我现在正在编写的函数上:merge-sort。

这是我所拥有的:

(defn merge-sort [lis]
(if (empty? (rest lis))
lis
(merge-list (merge-sort (odd(lis))) (merge-sort (even(lis))))))))

出于某种原因,我不断收到错误
java.lang.ClassCastException: clojure.lang.PersistentList cannot be cast to clojure.lang.IFn
我可以像这样传递奇数函数 rest lis (odd(rest lis)) (与偶数相同)。它运行良好,但这显然没有给我想要的解决方案。

我对 Clojure 很陌生,所以任何提示都将不胜感激。谢谢。

最佳答案

(odd lis)(even lis) ,不是 (odd (lis)) .您想将其作为参数传递,而不是将其作为函数调用然后传递结果。

关于list - Clojure 无法将列表传递给函数 Error PersistentList cannot be cast to clojure.lang.IFn,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5873431/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com