【发布时间】:2011-03-07 05:16:14
【问题描述】:
我写了这个函数来做这个(展示比解释更容易):
(split 2 (list 1 2 3 4 5 6))
=> ((1 2) (2 3) (3 4) (4 5) (5 6))
(defn split [n xs]
(if (> (count xs) (dec n))
(cons (take n xs) (split n (rest xs)))
'()))
我知道在 Clojure 中,列表并不是唯一的一流数据结构。编写这种与数据结构无关的数据有意义吗?无论如何,我的实现是最有效的吗?如果不是,我将如何使其更高效和/或惯用?
谢谢!
【问题讨论】: