/ / Funkcja generic over Foldable i Data.Vector.Unboxed - haskell, vector

Funkcja ogólna nad składanym i Data.Vector.Unboxed - haskell, wektor

Data.Vector.Unboxed nie jest instancją Foldable. Jaki jest najlepszy sposób napisania funkcji działającej na instancjach Foldable a także na nieskrytych wektorach? Na przykład ta wersja sum działa z listami i wektorami w ramkach, ale nie jest rozpakowywany:

sum :: (Foldable t, Num a) => t a -> a
sum = Foldable.foldl" (+) 0

Odpowiedzi:

11 dla odpowiedzi nr 1

To brzmi jak coś mono-traversable może zrobić dla ciebie. F.e. zawiera już sum wariant:

osum :: (MonoFoldable mono, Num (Element mono)) => mono -> Element mono
osum = ofoldl" (+) 0