在将 Clojure 中的函数表达式与 Rebol 并排比较时,我从 clojure-docs.org 上的与 结合使用的示例中偶然发现了这个apply
表达式:map
user=> (map #(apply max %) [[1 2 3] [4 5 6] [7 8 9]])
(3 6 9)
Rebol 最相似的表达方式是什么?
在将 Clojure 中的函数表达式与 Rebol 并排比较时,我从 clojure-docs.org 上的与 结合使用的示例中偶然发现了这个apply
表达式:map
user=> (map #(apply max %) [[1 2 3] [4 5 6] [7 8 9]])
(3 6 9)
Rebol 最相似的表达方式是什么?
也许:
map-each x [[1 2 3] [4 6 5] [7 8 9]] [apply :reduce [first maximum-of x]]
但是你不需要在apply
这里使用:
map-each x [[1 2 3] [4 6 5] [7 8 9]] [first maximum-of x]
注意。请注意,我将中间列表更改为[4 6 5]
. 这很重要,因为...
maximum-of [4 6 5] ; => [6 5]
这与max
Clojure 中的不同(返回列表中找到的最高数字)。
Rebol 中的类似表达式是:
>> map-each x [[1 2 3] [4 5 6] [7 8 9]] [apply :reduce maximum-of x]
== [3 6 9]
map-each x [[1 2 3] [4 5 6] [7 8 9]] [first maximum-of x]