Clojure中的惯用语:(降1 str)或(休息str)?

时间:2011-04-11 01:40:13

标签: clojure idiomatic

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

(drop 1 str)

(rest str)

1 个答案:

答案 0 :(得分:26)

无论你处理什么,rest都会更有效率,但差别将是如此微不足道,以至于无趣。

确保您知道自己是想要rest还是next,因为在某些情况下这很重要。 rest更加懒散,而且可能更频繁,但如果您在需要rest时使用next,则结果可能难以追踪。

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

user> (subs "hears" 1)
"ears"

rest没问题,但它会产生一系列字符而不是字符串;通常你会发现一个更容易处理的字符串,并且很容易在以后的某个时候把它变成一个字符序列。