В настоящее время я изучаю Скала, и я просто задавался вопросом, как свернуть с левой стороны. Так как с левой стороны налево, вы можете получить частично примененную функцию (PAF) с первым параметром, как показано ниже.Scala: Возможно ли получить частично прикладную функцию из левого поля?
(0 /: List(1, 2, 3)) _
На самом деле, у меня есть ошибка.
<console>:8: error: missing arguments for method /: in trait TraversableOnce;
follow this method with `_' if you want to treat it as a partially applied function
Тогда я попробовал то же самое, раз направо, например, как показано ниже
(List(1, 2, 3) :\ 0) _
Таким образом, он пошел правильно, и я мог бы получить СУП, такие как ((Int, Int) = > Int) => Int
Я знаю, что могу получить PAF с помощью метода foldLeft, но мне интересно, можно ли его выражать с помощью '/:' или нет.
Возможно, из-за объединения оператора, так как она включает в себя прямую кишку на правой стороне. Попробуйте переместить знак подчеркивания влево. – Carcigenicate
Вы также можете использовать foldLeft. – Carcigenicate
Следует избегать использования /: и: \, предпочитая более явные foldLeft и foldRight. Вы можете прочитать это официальное руководство по стилю: http://docs.scala-lang.org/style/method-invocation.html – lambdista