clojure - Clojure中的惯用语: (drop 1 str) or (rest str)?

标签 clojure idioms

对于Clojure,这里有一个简单的问题。处理字符串时,哪个更惯用?在处理其他数据类型时,哪个更惯用?哪个更有效?

(drop 1 str)

或者
(rest str)

最佳答案

无论您要处理的是什么,rest都会更高效,但是区别将变得微不足道,以至于变得无趣。

确保知道您想要rest还是next,因为在某些情况下这很重要。 rest较为懒惰,并且可能更经常使用,但是如果您在需要rest时使用next,则可能难以追踪结果。

对于字符串...都不行!使用内置子字符串运算符subs:

user> (subs "hears" 1)
"ears"
rest很好,但是它会产生一定数量的字符而不是字符串。通常,您会发现一个更易于处理的字符串,并且足够简单,可以稍后再将其转换为一系列字符。

关于clojure - Clojure中的惯用语: (drop 1 str) or (rest str)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5616012/

相关文章:

c++ - 这是什么 C++ 习语/模式

string - 如何从字符串中删除单词列表

clojure - Clojure 函数类型提示中的 [#^String str] 是什么

json - clojure循环json数据

c++11 - 在编译时计算以 2 为底的整数对数的正确方法是什么?

用于设置核心亲和性的 C++ 风格?

c++ - 在 C++ 中按值删除元素 - 首选成语真的由双重否定组成吗?

concurrency - 在下面的 Clojure 代码中,alter 可以替换为 Commute 吗?

clojure - 在 Clojure 中使用管道/流

r - 根据键在数据框中汇总值