首页 > 解决方案 > foldLeft 如何在 (0 /: (1 to 6))(_+_) 中求值?

问题描述

我正在探索 Scala foldLeft 和它的 operator /:。我在这里看到了一篇文章。

这里/:用于评估 1 到 6 的总和为

(0 /: (1 to 6))(_+_)

我知道的 foldLeft 语法就像Range./:(Initial Value){(z, i) => some anonymous function definition}

如何(0 /: (1 to 6))(_+_)评估以及如何运作?

标签: scala

解决方案


以 结尾的运算符:是右结合的。这意味着它与显式使用点表示法相同(1 to 6)./:(0)(_+_)

这是相同的原因1 :: 2 :: Nil不必是1 :: (2 :: Nil)


推荐阅读