Po pierwsze, Real World Haskell , który czytam, mówi, żeby nigdy nie używać foldl
i zamiast tego używać foldl'
. Więc ufam temu.
Ale jestem zamglona, gdy w użyciu foldr
w porównaniu foldl'
. Chociaż widzę strukturę ich działania inaczej ułożoną przede mną, jestem zbyt głupi, by zrozumieć, kiedy „co jest lepsze”. Wydaje mi się, że nie powinno mieć znaczenia, który jest używany, ponieważ oba dają tę samą odpowiedź (prawda?). Faktycznie, moje poprzednie doświadczenia z tą konstrukcją pochodzą z Ruby inject
i Clojure reduce
, które wydają się nie mieć wersji „lewej” i „prawej”. (Pytanie poboczne: której wersji używają?)
Każdy wgląd, który może pomóc pokrzywdzonemu sprytowi, jak ja, byłby bardzo wdzięczny!