Kann mir jemand erklären, warum ich diesen Compiler-Fehler für die folgende sehen, wenn ich die Punktnotation für die Anwendung des foldLeft
Funktion? (Version 2.9.2)Warum verursacht das Auslassen des Punktes in foldLeft einen Kompilierungsfehler?
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)(_ * _)
^
aber
scala> l.foldLeft(1)(_ * _)
res27: Int = 6
Diese doesn auslassen‘ t gilt für andere Funktionen höherer Ordnung wie map
, die nicht kümmert, ob ich den Punkt liefern oder nicht.
Ich denke, die nicht über eine Sache Assoziativität, weil ich foldLeft(1)
danke Konstruktive Anmerkung, Die vollständige Antwort auf meine Frage lebt in dem ersten Kommentar, den Sie zu Regis 'Beitrag darüber gemacht haben, wie der Parser den Ausdruck angreift. – nsfyn55