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

Hav*_*vvy 8 idiomatic clojure

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

(drop 1 str)
Run Code Online (Sandbox Code Playgroud)

要么

(rest str)
Run Code Online (Sandbox Code Playgroud)

ama*_*loy 26

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

确保你知道你是否想要,rest或者next因为在某些情况下它很重要.rest比较懒散,而且可能更常使用,但如果您rest在需要时next使用结果可能很难追查.

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

user> (subs "hears" 1)
"ears"
Run Code Online (Sandbox Code Playgroud)

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