<html><head><meta http-equiv="Content-Type" content="text/html charset=iso-8859-1"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;"><div>Première réaction à chaud:</div><div>- les tests sont nettement plus sympas, compréhensibles et utiles (je comprends à quoi sert la lib grâce à eux</div><div>- pour utiliser les lens, voici ce que fait cabal:</div><div><div style="margin: 0px; font-size: 13px; font-family: Menlo;">Resolving dependencies...</div><div style="margin: 0px; font-size: 13px; font-family: Menlo;">Downloading transformers-compat-0.1.1.1...</div><div style="margin: 0px; font-size: 13px; font-family: Menlo;">Downloading tagged-0.7.1...</div><div style="margin: 0px; font-size: 13px; font-family: Menlo;">Configuring tagged-0.7.1...</div><div style="margin: 0px; font-size: 13px; font-family: Menlo;">Configuring transformers-compat-0.1.1.1...</div><div style="margin: 0px; font-size: 13px; font-family: Menlo;">Building transformers-compat-0.1.1.1...</div><div style="margin: 0px; font-size: 13px; font-family: Menlo;">Building tagged-0.7.1...</div><div style="margin: 0px; font-size: 13px; font-family: Menlo;">Installed transformers-compat-0.1.1.1</div><div style="margin: 0px; font-size: 13px; font-family: Menlo;">Installed tagged-0.7.1</div><div style="margin: 0px; font-size: 13px; font-family: Menlo;">Downloading contravariant-0.4.4...</div><div style="margin: 0px; font-size: 13px; font-family: Menlo;">Downloading distributive-0.4.3.1...</div><div style="margin: 0px; font-size: 13px; font-family: Menlo;">Configuring contravariant-0.4.4...</div><div style="margin: 0px; font-size: 13px; font-family: Menlo;">Configuring distributive-0.4.3.1...</div><div style="margin: 0px; font-size: 13px; font-family: Menlo;">Downloading reflection-1.4...</div><div style="margin: 0px; font-size: 13px; font-family: Menlo;">Configuring reflection-1.4...</div><div style="margin: 0px; font-size: 13px; font-family: Menlo;">Building contravariant-0.4.4...</div><div style="margin: 0px; font-size: 13px; font-family: Menlo;">Building reflection-1.4...</div><div style="margin: 0px; font-size: 13px; font-family: Menlo;">Installed contravariant-0.4.4</div><div style="margin: 0px; font-size: 13px; font-family: Menlo;">Building distributive-0.4.3.1...</div><div style="margin: 0px; font-size: 13px; font-family: Menlo;">Installed reflection-1.4</div><div style="margin: 0px; font-size: 13px; font-family: Menlo;">Installed distributive-0.4.3.1</div><div style="margin: 0px; font-size: 13px; font-family: Menlo;">Downloading comonad-4.0.1...</div><div style="margin: 0px; font-size: 13px; font-family: Menlo;">Configuring comonad-4.0.1...</div><div style="margin: 0px; font-size: 13px; font-family: Menlo;">Building comonad-4.0.1...</div><div style="margin: 0px; font-size: 13px; font-family: Menlo;">Installed comonad-4.0.1</div><div style="margin: 0px; font-size: 13px; font-family: Menlo;">Downloading semigroupoids-4.0.1...</div><div style="margin: 0px; font-size: 13px; font-family: Menlo;">Configuring semigroupoids-4.0.1...</div><div style="margin: 0px; font-size: 13px; font-family: Menlo;">Building semigroupoids-4.0.1...</div><div style="margin: 0px; font-size: 13px; font-family: Menlo;">Installed semigroupoids-4.0.1</div><div style="margin: 0px; font-size: 13px; font-family: Menlo;">Downloading bifunctors-4.1.1...</div><div style="margin: 0px; font-size: 13px; font-family: Menlo;">Downloading profunctors-4.0.3...</div><div style="margin: 0px; font-size: 13px; font-family: Menlo;">Configuring bifunctors-4.1.1...</div><div style="margin: 0px; font-size: 13px; font-family: Menlo;">Configuring profunctors-4.0.3...</div><div style="margin: 0px; font-size: 13px; font-family: Menlo;">Building bifunctors-4.1.1...</div><div style="margin: 0px; font-size: 13px; font-family: Menlo;">Building profunctors-4.0.3...</div><div style="margin: 0px; font-size: 13px; font-family: Menlo;">Installed profunctors-4.0.3</div><div style="margin: 0px; font-size: 13px; font-family: Menlo;">Installed bifunctors-4.1.1</div><div style="margin: 0px; font-size: 13px; font-family: Menlo;">Downloading free-4.6.1...</div><div style="margin: 0px; font-size: 13px; font-family: Menlo;">Configuring free-4.6.1...</div><div style="margin: 0px; font-size: 13px; font-family: Menlo;">Building free-4.6.1...</div><div style="margin: 0px; font-size: 13px; font-family: Menlo;">Installed free-4.6.1</div><div style="margin: 0px; font-size: 13px; font-family: Menlo;">Downloading lens-4.1.2...</div><div style="margin: 0px; font-size: 13px; font-family: Menlo;">Configuring lens-4.1.2...</div><div style="margin: 0px; font-size: 13px; font-family: Menlo;">Building lens-4.1.2...</div><div style="margin: 0px; font-size: 13px; font-family: Menlo;">Installed lens-4.1.2</div></div><div style="margin: 0px; font-size: 13px; font-family: Menlo;"><br></div><div style="margin: 0px; font-size: 13px; font-family: Menlo;"><br></div><div><div>Est-ce vraiment nécessaire ?</div><div><br></div><div>Par ailleurs dans le code, je ne suis pas du tout convaincu par les méthode mlxxx, elles sont assez illisibles.</div><div><br></div><div>Bravo pour les améliorations en tout cas.</div><div><br></div><div>arnaud</div><div><br></div><div><br></div><div>On 06 Apr 2014, at 18:01, Gautier DI FOLCO <<a href="mailto:gautier.difolco@gmail.com">gautier.difolco@gmail.com</a>> wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite"><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">Le 4 avril 2014 18:31, Gautier DI FOLCO <span dir="ltr"><<a href="mailto:gautier.difolco@gmail.com" target="_blank">gautier.difolco@gmail.com</a>></span> a écrit :<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">Le 4 avril 2014 17:00, Sylvain Henry <span dir="ltr"><<a href="mailto:hsyl20@gmail.com" target="_blank">hsyl20@gmail.com</a>></span> a écrit :<div class="">
<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div dir="ltr">En fait je pensais expliciter les noms des champs pour tes structures :<br>data DayStmt = DayStmt { _morning, _evening :: Temperature}<br>data WeekStmt = WeekStmt { _monday, _tuesday, ..., _sunday :: DayStmt}<br>


etc.<br><br>Après du coup tu peux composer tes lenses pour aller chercher les champs qui t'intéressent : monday . evening<br><br>En composant un peu tu devrais pouvoir faire des "requêtes" sympas dans ton ensemble de temperatures.<br>

</div></blockquote></div></div><br></div><div class="gmail_extra">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 ?<br></div></div>

</blockquote></div><br></div><div class="gmail_extra">Bonjour,<br><br></div><div class="gmail_extra">J'ai (je pense) pas mal bossé à tous les niveaux (tests + implantations).<br></div><div class="gmail_extra">Du coup je suis plus partie pour faire un DSEL-like et quelque chose de plus type-safe.<br>
</div><div class="gmail_extra">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.<br></div><div class="gmail_extra">Du coup, quelques petites questions :<br>
</div><div class="gmail_extra"> - est-ce plus "profond" ?<br></div><div class="gmail_extra"> - est-ce plus idiomatique ?<br></div><div class="gmail_extra"> - quels sont les points à améliorer ?<br></div><div class="gmail_extra">
 - 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<br></div>
<div class="gmail_extra"> - que penseriez de passer une fonction de regroupement ? (pour éviter les weeklyStats/monthyStats) ?<br></div><div class="gmail_extra"> - 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 ?<br>
<br></div><div class="gmail_extra">Merci par avance.<br></div></div>
_______________________________________________<br>Haskell-fr mailing list<br><a href="mailto:Haskell-fr@haskell.org">Haskell-fr@haskell.org</a><br>http://www.haskell.org/mailman/listinfo/haskell-fr<br></blockquote></div><br></body></html>