对不起,如果这是一个真正基本的问题,但我见过的一些代码让我很好奇.
这个apply
功能的惯用法是什么?
例如,我见过以下形式编写的代码:
(distinct [1 2 3 4 5 6])
Run Code Online (Sandbox Code Playgroud)
和
(apply distinct? [1 2 3 4 5 6])
Run Code Online (Sandbox Code Playgroud)
这些返回相同的结果,甚至在文档中,它清楚地说:
;; 请注意以下两种形式的等效性
user =>(apply str ["str1""str2""str3"])"str1str2str3"
user =>(str"str1""str2""str3")"str1str2str3"
这个例子是否过于基本无法传达实用性apply
?或者我错过了两者之间的根本区别?
什么时候一种形式被认为最好?
user=> (apply str ["str1" "str2" "str3"]) "str1str2str3"
user=> (str "str1" "str2" "str3") "str1str2str3"
Run Code Online (Sandbox Code Playgroud)
在此示例中,使用的优点apply
是它可以采用字符串列表.str
,本身,不能.
我不是专家,但我的直觉说apply
除非必要,否则你不应该使用.因此,如果您有一组要传递给可变函数的值,apply
则很有用 - 否则,只需使用plain函数,例如str
.
归档时间: |
|
查看次数: |
151 次 |
最近记录: |