【发布时间】:2017-07-29 02:15:52
【问题描述】:
我在执行来自4clojure.com 的任务时遇到了问题。 这是一个任务的描述:
编写一个返回序列中最后一个元素的函数。
我已经用下面的代码解决了:
#(first (reverse %))
当我想用多个索引更改first 函数时。
像这样:
#(0 (reverse %))
我收到一个错误:
java.lang.ClassCastException: java.lang.Long 无法转换为 clojure.lang.IFn
我的问题是:
为什么我会收到此错误?
我无法得到它,因为例如
([1 2 3 4] 0) 完全有效并返回序列的第一个元素,那么为什么我不能在函数中使用数组的索引?
EDIT1:
甚至下面的代码也不起作用,我想APersistentVector 是第一个。
#((reverse %) 0)
EDIT2:
我设法通过将从reverse 函数返回的列表转换为向量来使其工作。谢谢@Josh
(#((vec (reverse %)) 0)[1 2 3])
【问题讨论】:
标签: clojure