Le 3 avril 2014 10:44, Sylvain Henry <hsyl20@gmail.com> a écrit :Pour l'immutabilité, je montrerais les Lenses.Bonne idéeEviter d'utiliser des listes partout, notamment dans DayStmt, WeekStmt et MonthStmt, vu que le nombre de champs est fixe.Pas forcément, tu ne peux avoir que les relevés de 40 jours par exemple, ce qui fais que tu as un mois et une semaine incomplète.
Utiliser des lenses ici serait pas mal, surtout pour réécrire la fonction finale. Si je comprends bien elle fait une sélection et une réduction, donc parfait avec des lenses.
Je ne suis pas convaincu par le Monoid, une simple fonction de réduction suffirait :
toStats :: [Temperature] -> Statistics
Là c'est compliqué inutilement je trouve.Du coup tu perds la notion de groupes de relevés (jour, semaines, mois) et tu te retrouve à gérer le "conflit" °C/°F en même temps que le calcul des stats.