foldLeft, foldRight разница в списке Accumulator с использованием Scala - PullRequest
1 голос
/ 16 июня 2020

Это

Seq(2,5,-7,4).foldLeft(0)( (acc, a) =>
    if (a > 0) acc + a else acc )

дает 11

Это

Seq(2,5,-7,4).foldRight(0)( (acc, a) =>
    if (a > 0) acc + a else acc )

дает 7

Я удивлен, почему, поскольку прямое агрегирование не имеет такой вопрос. Т.е. результаты такие же. Для меня 11 кажется правильным.

Причина - какая-то Scala реализация?

1 Ответ

0 голосов
/ 01 июля 2020

a и cc необходимо поменять местами для foldRight. Проверил с несколькими людьми, никто этого не догадывался и не знал. Отсюда и ответ.

Seq(2,5,-7,4).foldRight(0)( (a, acc) =>
    if (a > 0) acc + a else acc )

Спасибо @ LMMS.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...