Em primeiro lugar, o Mundo Real Haskell , que estou lendo, diz para nunca usar foldl
e usar foldl'
. Então eu confio nisso.
Mas eu sou vago sobre quando usar foldr
vs. foldl'
. Embora eu possa ver a estrutura de como eles funcionam de maneira diferente na minha frente, sou burra demais para entender quando "o que é melhor". Acho que me parece que realmente não deveria importar o que é usado, pois ambos produzem a mesma resposta (não é?). De fato, minha experiência anterior com esse construto é de Ruby inject
e Clojure reduce
, que não parecem ter versões "esquerda" e "direita". (Pergunta secundária: qual versão eles usam?)
Qualquer insight que possa ajudar um tipo de smarts desafiado como eu seria muito apreciado!