Во-первых, Real World Haskell , который я читаю, говорит никогда не использовать, foldl
а вместо этого использовать foldl'
. Поэтому я верю в это.
Но я не знаю, когда использовать foldr
против foldl'
. Хотя я вижу структуру их работы по-разному, но я слишком глуп, чтобы понять, когда «что лучше». Я думаю, мне кажется, что не должно иметь значения, какой из них используется, поскольку они оба дают один и тот же ответ (не так ли?). Фактически, мой предыдущий опыт работы с этой конструкцией был взят из Ruby inject
и Clojure reduce
, которые, похоже, не имеют «левой» и «правой» версий. (Дополнительный вопрос: какую версию они используют?)
Любое понимание, которое может помочь таким умным людям, как я, будет высоко ценится!