Может ли кто-нибудь объяснить, почему я вижу эту ошибку компиляции для следующего, когда я опускаю точечную нотацию для применения функции foldLeft
? (версия 2.9.2)
scala> val l = List(1, 2, 3)
res19: List[Int] = List(1 ,2 ,3)
scala> l foldLeft(1)(_ * _)
<console>:9: error: Int(1) does not take parameters
l foldLeft(1)(_ * _)
^
но
scala> l.foldLeft(1)(_ * _)
res27: Int = 6
Это не относится к другим функциям более высокого порядка, таким как map
, которые, похоже, не заботятся о том, поставляю ли я точку или нет.
Я не думаю, что это ассоциативная вещь, потому что я не могу просто вызвать foldLeft(1)