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