タイトルはそれをすべて言っています。 foldl1
およびfoldl'
はともにFoldable
に一般化され、foldl1'
は一般化されていません。これはちょうど最近の監督ですか?それともデザインの選択ですか?なぜfoldl1はFoldableに一般化されていないのですか?
foldl1'
の種類は、私はそれがfoldl1
と同じ型を持つことが期待
foldl1' :: (a -> a -> a) -> [a] -> a
です:
foldl1 :: Foldable t => (a -> a -> a) -> t a -> a
私もfoldl1'
がData.List
なくData.Foldable
によってエクスポートされていることを参照してください。おそらくこれは関連しているでしょうか?
'foldl1'も' foldl1''も 'Foldable'に属していません。彼らは 'Foldable1'、nonempty foldableコンテナのクラスに属します。誰かが間違いを犯し、 'foldl1'を' Foldable'に入れました。私は誰もそのエラーを複合する心がないと思います。 – dfeuer
@dfeuer:「Foldable」の導入は、_議論と世論調査の長期間に先立って行われたものではなかったか?これが見落とされたのか、それとも何らかの妥協であるのか? – ljedrz
@ ljedrz私は、Preludeで 'Foldable'を' Foldable'の元のデザイン(もしあれば)と使うことについての議論を混ぜていると思います。 – Cactus