
Première réaction à chaud:
- les tests sont nettement plus sympas, compréhensibles et utiles (je comprends à quoi sert la lib grâce à eux
- pour utiliser les lens, voici ce que fait cabal:
Resolving dependencies...
Downloading transformers-compat-0.1.1.1...
Downloading tagged-0.7.1...
Configuring tagged-0.7.1...
Configuring transformers-compat-0.1.1.1...
Building transformers-compat-0.1.1.1...
Building tagged-0.7.1...
Installed transformers-compat-0.1.1.1
Installed tagged-0.7.1
Downloading contravariant-0.4.4...
Downloading distributive-0.4.3.1...
Configuring contravariant-0.4.4...
Configuring distributive-0.4.3.1...
Downloading reflection-1.4...
Configuring reflection-1.4...
Building contravariant-0.4.4...
Building reflection-1.4...
Installed contravariant-0.4.4
Building distributive-0.4.3.1...
Installed reflection-1.4
Installed distributive-0.4.3.1
Downloading comonad-4.0.1...
Configuring comonad-4.0.1...
Building comonad-4.0.1...
Installed comonad-4.0.1
Downloading semigroupoids-4.0.1...
Configuring semigroupoids-4.0.1...
Building semigroupoids-4.0.1...
Installed semigroupoids-4.0.1
Downloading bifunctors-4.1.1...
Downloading profunctors-4.0.3...
Configuring bifunctors-4.1.1...
Configuring profunctors-4.0.3...
Building bifunctors-4.1.1...
Building profunctors-4.0.3...
Installed profunctors-4.0.3
Installed bifunctors-4.1.1
Downloading free-4.6.1...
Configuring free-4.6.1...
Building free-4.6.1...
Installed free-4.6.1
Downloading lens-4.1.2...
Configuring lens-4.1.2...
Building lens-4.1.2...
Installed lens-4.1.2
Est-ce vraiment nécessaire ?
Par ailleurs dans le code, je ne suis pas du tout convaincu par les méthode mlxxx, elles sont assez illisibles.
Bravo pour les améliorations en tout cas.
arnaud
On 06 Apr 2014, at 18:01, Gautier DI FOLCO
Le 4 avril 2014 18:31, Gautier DI FOLCO
a écrit : Le 4 avril 2014 17:00, Sylvain Henry 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. _______________________________________________ Haskell-fr mailing list Haskell-fr@haskell.org http://www.haskell.org/mailman/listinfo/haskell-fr