是否有内置的proc
等效于Python reduce
或Javascript Array.reduce
?
答案 0 :(得分:3)
foldl
模块中有模板foldr
和sequtils
。示例:
import sequtils
proc factorial(n: int): int =
foldl(1..n, a * b, 1)
echo factorial(10)
作为模板,它们不采用proc参数,而是内联表达式,其中a
和b
是操作数。该模板适用于具有items
迭代器的任何种类的集合,例如数组,序列或范围(如上例所示)。