[Haskell-fr] Demande de revue de code

Arnaud Bailly arnaud.oqube at gmail.com
Sun Apr 6 16:09:06 UTC 2014


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 <gautier.difolco at gmail.com> wrote:

> Le 4 avril 2014 18:31, Gautier DI FOLCO <gautier.difolco at gmail.com> a écrit :
> Le 4 avril 2014 17:00, Sylvain Henry <hsyl20 at 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.
> _______________________________________________
> Haskell-fr mailing list
> Haskell-fr at haskell.org
> http://www.haskell.org/mailman/listinfo/haskell-fr

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.haskell.org/pipermail/haskell-fr/attachments/20140406/f5b5e958/attachment.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 496 bytes
Desc: Message signed with OpenPGP using GPGMail
URL: <http://www.haskell.org/pipermail/haskell-fr/attachments/20140406/f5b5e958/attachment.sig>


More information about the Haskell-fr mailing list