作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
最佳答案
同样,如果您需要实现整个集合,则butlast
的速度会大大提高,如果查看其来源,这是合乎逻辑的:
(def
butlast (fn ^:static butlast [s]
(loop [ret [] s s]
(if (next s)
(recur (conj ret (first s)) (next s))
(seq ret)))))
(defn drop-last
([s] (drop-last 1 s))
([n s] (map (fn [x _] x) s (drop n s))))
drop-last
使用
map
,而
butlast
使用
recur
进行简单迭代。这是一个小例子:
user> (time (let [_ (butlast (range 10000000))]))
"Elapsed time: 2052.853726 msecs"
nil
user> (time (let [_ (doall (drop-last (range 10000000)))]))
"Elapsed time: 14072.259077 msecs"
nil
drop-last
,否则才使用
butlast
。
关于Clojure Butlast与Drop-last,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36734213/
我正在尝试使用 butlast 但出于某种原因,我明白了错误:没有函数定义:BUTLAST。有什么想法吗? 最佳答案 butlast 在 AutoLisp 中不存在,所以错误说有这样的函数是正确的。
我是一名优秀的程序员,十分优秀!