You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Clojure中获取Sequence序列的倒数第二个元素

实现方案

你可以通过以下几种方式实现获取Clojure序列倒数第二个元素的需求,适配不同的使用场景:

  • 方案1:反转序列后取第二个元素,适合短序列场景,写法最简洁
(second (reverse [1 2 3 4]))
;; 运行结果:3
  • 方案2:先取序列最后2个元素再取第一个,适合长序列、惰性序列场景,性能更优
(first (take-last 2 [1 2 3 4]))
;; 运行结果:3
  • 方案3:自定义封装函数,可灵活调整边界场景的处理逻辑
(defn penultimate [s]
  ;; 序列长度不足2时返回nil,可根据需求修改为抛出异常等其他逻辑
  (when (>= (count s) 2)
    (nth s (- (count s) 2))))

;; 调用测试
(penultimate [1 2 3 4])
;; 运行结果:3

内容的提问来源于stack exchange,提问作者modar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 02:45:03