一般に、またはfoldl
を優先して回避します。実世界の Haskellの引用:foldl'
foldr
foldl のサンク動作のため、実際のプログラムではこの関数を使用しない方が賢明です。完全に失敗しない場合でも、不必要に非効率になります。代わりに、Data.List をインポートして、foldl' を使用します。
しかし、一部の Prelude 関数はそれに関して定義されています (例:(\\)
およびunionBy
)。どうしてこれなの?これらの機能を厳密にしすぎないようにするためですか?