<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">Le 6 janvier 2014 15:06, Dan Popa <span dir="ltr"><<a href="mailto:popavdan@yahoo.com" target="_blank">popavdan@yahoo.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><div style="font-size:12pt;font-family:HelveticaNeue,Helvetica Neue,Helvetica,Arial,Lucida Grande,sans-serif">Bon jour,<div class="im"><br><br>Le typeclass Applicative à la tête suivante :<br>class Functor f => Applicative f where<br>
  pure :: a -> f a<br>  (<*>) :: f (a -> b) -> f a -> f b<br>  (*>) :: f a -> f b -> f b<br>  (<*) :: f a -> f b -> f a<br><br>A1 : Ce qui signifie que tout type implémentant ces fonctions doivent également implémenter les fonctions de Functor.<br>
Q1 : quelle est l'intérêt ?<br><br></div>Rep1. Plus! Le matematicien doit montre que une instance de cette classe est un Functor, et apres ca,<br> il peut utiliser cette instance de la classe, sans probleme. Quand on ecrit quelque chose comme<br>
CommutativeRing x =>  l'auteur du logiciel doit etre confient que l-operation a la proprietait d'etre commutatif et<br>toute les
 autre.<br><br>Rep1. More!The matematician should prove that a specific instance of a class is actually a functor, and, after it, <br>he can use this instance, without problems. So, when is written something like CommutativeRing x => <br>
the programer may base on the asumption that the operation is commutative etc.<div class="im"><br><br><br>Q4 : quel est l'intérêt ? liftA (+1) $ Just 1 n'est pas égale à pure (+1) <*> Just 1 ?<br><br></div>------------------------------------------------------------------------------------------------------------------------<br>
4.Numero:   1,             +<br>Maybe Numero: Just 1,    donc qui ?<br>Rep4: La premiere expression signifier: (liftA (+1)) $ (Just 1). La cause est l'associativite a la gauche de l'aplication <br>de fonction. Une autre cause: la petite priorite de l'operateur $. Donc il est la derniere operation.<br>
Rep4: The previous
 expression means: (liftA (+1)) $ (Just 1). The cause it the right associativity of the functional<br> application. Also, the small priority of the "$" operator. It becomes the last one, here.<br>------------------------------------------------------------------------------------------------------------------------<div class="im">
<br>Q6 : dans le cas de version Functor, quel est l'intérêt de la passer Applicative ?<br>liftA2 :: Applicative f => (a -> b -> c) -> f a -> f b -> f c<br><br></div>Rep6: Ca signifier que f este quelque chose qui peut etre aplique a a b et c. Une abstraction, une fonction, c'est ca.<br>
Rep6: This means that f is something that can be aplied to a b and c and all. It's an abstraction (anonymous function) or a function.<br>---------------------------------------------------------------------------------------------------------------------------<br>
Quand on transfere une calcul dans la Monade Maybe on doit transfere les valeurs,
 donc 1 deviene Just 1,<br>les operations (n'emporte pas quelques arguments) - donc on va avait plusieurs variants de lifting -<br>et aussi la non valeur qui devien Nothing.<br>Donc: (Just 1) `(lifting2 (+)) (Just 2) = (Just 3)  et  biensure, 3=1+2.<br>
Nais: (Just 1) `(lifting2 (/)) (Just 0) = Nothing   <br><br>Dans cette maniere on peu utiliser les non valeurs. "Nothing" est une erreur qui a ete ajouter a la structure algebrieque quie nous enteresee.<br><br>Escuse-moi pour ma langue. Je ne suit pas natif. Et le clavier, ici, est "anglophone".<br>
<br><div style="display:block"><div style="font-family:HelveticaNeue,Helvetica Neue,Helvetica,Arial,Lucida Grande,sans-serif;font-size:12pt"><div style="font-family:HelveticaNeue,Helvetica Neue,Helvetica,Arial,Lucida Grande,sans-serif;font-size:12pt">
<div>Enjoy !<span class="HOEnZb"><font color="#888888"><br>Dan<br></font></span></div>  </div> </div>  </div> </div></div></blockquote></div><br></div><div class="gmail_extra">Merci beaucoup pour ces précisions.<br></div>
</div>