Đầu tiên, Real World Haskell , mà tôi đang đọc, nói rằng không bao giờ sử dụng foldl
và thay vào đó sử dụng foldl'
. Vì vậy, tôi tin tưởng nó.
Nhưng tôi không biết khi nào nên sử dụng foldr
so với foldl'
. Mặc dù tôi có thể thấy cấu trúc của cách chúng hoạt động khác nhau được đặt ra trước mặt tôi, tôi quá ngu ngốc để hiểu khi nào "cái nào tốt hơn". Tôi đoán có vẻ như tôi thực sự không nên sử dụng nó, vì cả hai đều đưa ra cùng một câu trả lời (phải không?). Trên thực tế, trải nghiệm trước đây của tôi với cấu trúc này là từ Ruby inject
và Clojure reduce
, dường như không có phiên bản "trái" và "phải". (Câu hỏi bên lề: họ sử dụng phiên bản nào?)
Bất kỳ cái nhìn sâu sắc nào có thể giúp một loại thách thức thông minh như tôi sẽ được đánh giá cao!