![]() |
1
128
另一方面,一个复杂的函数可能会利用一些优化机会,这些优化机会不够一般,无法内置到函数中
|
![]() |
2
55
对于新手来说,
|
![]() |
3
22
在这种情况下没有区别,因为+是一种特殊情况,可以应用于任意数量的参数。Reduce是一种将需要固定数量的参数(2)的函数应用于任意长的参数列表的方法。 |
![]() |
4
22
不同的观点-在更大的Lisp世界,
但在我圈子里的法学家中
|
![]() |
5
11
通常,我发现自己在处理任何类型的集合时都更喜欢reduce—它执行得很好,总体上是一个非常有用的函数。
|
![]() |
6
10
在这种情况下,我更喜欢
我马上就知道你在把一个序列变成一个值。
与
|
![]() |
7
8
当使用像+这样的简单函数时,使用哪一个并不重要。
总的来说,我们的想法是
对于apply,您的想法是试图调用一个需要许多标量参数的函数,但它们当前在一个集合中,需要被拉出。所以,与其说:
我们可以说:
转换为:
因此,使用“apply”就像在序列周围“去掉括号”。 |
![]() |
8
4
关于这个话题有点晚了,但我在读了这个例子之后做了一个简单的实验。这是我的repl的结果,我只是无法从响应中推断出任何东西,但似乎在reduce和apply之间存在某种缓存。
|
![]() |
9
3
apply is given函数的优点是(+在本例中)可以应用于由带有结束集合的预挂起的中间参数形成的参数列表。Reduce是处理集合项的抽象,为每个集合项应用函数,不适用于变量args case。
|
![]() |
Freid001 · 具有最小和最大限制的架构? 6 年前 |
![]() |
phlie · Hoplon With Castra加载后端时出错 6 年前 |
![]() |
David Furnam · Clojure从数组中获取坐标 6 年前 |
![]() |
Jeroen · 如何将惰性序列转换为映射? 7 年前 |