4clojure第54个问题:拆分序列

(ns for-clojure.problem54)

(defn partition-a-sequence-1
  "拆分序列,把一个序列拆分成每部分x个元素,最后不足x元素的丢弃"
  [x v]
  (loop [r [];最终结果 
         m [];中间结果保存 
         v v]
    (if (= (count m) x)
      (if (empty? v) 
        (conj r m)
        (recur (conj r m) [(first v)] (rest v)))
      (if (empty? v)
        r
        (recur r (conj m (first v)) (rest v))))))

(partition-a-sequence-1 3 (range 9))

(defn partition-a-sequence-2 
  "使用take来实现"
  [x v]
  (loop [v v r []]
    (if (< (count v) x)
      r
      (recur (nthrest v x) (conj r (take x v))))))

(partition-a-sequence-2 3 (range 9))
take和nthrest很好的结合
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值