Data.Vector.Unboxed
のインスタンスではありません Foldable
。のインスタンスで機能する関数を書くための最良の方法は何ですか Foldable
ボックス化されていないベクトルと同様に?例えばこのバージョン sum
リストとボックス化されたベクトルでは動作しますが、ボックス化されていないとは動作しません。
sum :: (Foldable t, Num a) => t a -> a
sum = Foldable.foldl" (+) 0
回答:
回答№1の11これは何かのように聞こえます モノトラバース あなたのためにすることができます。 F.e.それはすでに含まれています sum
バリアント:
osum :: (MonoFoldable mono, Num (Element mono)) => mono -> Element mono
osum = ofoldl" (+) 0