Le 4 avril 2014 18:31, Gautier DI FOLCO <gautier.difolco@gmail.com> a écrit :
Le 4 avril 2014 17:00, Sylvain Henry <hsyl20@gmail.com> a écrit :

En fait je pensais expliciter les noms des champs pour tes structures :
data DayStmt = DayStmt { _morning, _evening :: Temperature}
data WeekStmt = WeekStmt { _monday, _tuesday, ..., _sunday :: DayStmt}
etc.

Après du coup tu peux composer tes lenses pour aller chercher les champs qui t'intéressent : monday . evening

En composant un peu tu devrais pouvoir faire des "requêtes" sympas dans ton ensemble de temperatures.

Oui, je vois, mais comment tu fais quand tu n'as pas de jours/semaines/mois complets ? foutre des Maybe partout est un peu lourd, non ?

Bonjour,

J'ai (je pense) pas mal bossé à tous les niveaux (tests + implantations).
Du coup je suis plus partie pour faire un DSEL-like et quelque chose de plus type-safe.
Je suis assez content de moi, sauf pour les make*Stmt (l.74 - l.78 - l.82), je pense que ça mériterait l'usage de monades à ce niveau.
Du coup, quelques petites questions :
 - est-ce plus "profond" ?
 - est-ce plus idiomatique ?
 - quels sont les points à améliorer ?
 - que pensez-vous de mon problème de make (ci-dessus) ? (est-ce réellement un problème ? est-ce comme ça que vous le résoudriez ? si non, comment ?) j'ai fait une tentative infructueuse avec les Applicatives
 - que penseriez de passer une fonction de regroupement ? (pour éviter les weeklyStats/monthyStats) ?
 - j'utilise finalement peu les Lenses, ne fais-je pas mieux de les virer ? ou y a-t-il un moyen pour que j'en tire partie ?

Merci par avance.