4
I ont actuellement définis deux fonctions:Comment soulever une fonction pour travailler sur des lentilles?
avg :: (Fractional e) => [e] -> e
avg e = uncurry (/) $ foldl' (\(a,l) v -> (a+v,l+1)) (0.0,0.0) e
avgOf :: (Fractional a) => Getting (Endo (Endo (a, a))) s a -> s -> a
avgOf g s = uncurry (/) $ foldlOf' g accfun (0.0,0.0) s
where accfun (a,l) v = (a+v, l+1)
Je suis sous l'impression qu'il doit y avoir un moyen facile de se débarrasser de toute mise en œuvre avgOf
et le remplacer par un simple que juste « ascenseurs » avg
travailler sur des lentilles.
Je pense que la solution évidente serait avgOf l = avg. toListOf l – Taneb
Si cela fonctionne, c'est certainement la chose la plus facile à faire. Pourriez-vous afficher cela comme une réponse? – fho
Cela fonctionne. Mais vous devez également donner l'autre paramètre. – fho