From gautier.difolco at gmail.com Mon Jan 6 22:05:02 2014 From: gautier.difolco at gmail.com (Gautier DI FOLCO) Date: Mon, 6 Jan 2014 23:05:02 +0100 Subject: [Haskell-fr] =?iso-8859-1?q?Fw=3A__=C9claircissement_sur_les_Appl?= =?iso-8859-1?q?icatives?= In-Reply-To: <1389017181.55044.YahooMailNeo@web162404.mail.bf1.yahoo.com> References: <1389017181.55044.YahooMailNeo@web162404.mail.bf1.yahoo.com> Message-ID: Le 6 janvier 2014 15:06, Dan Popa a ?crit : > Bon jour, > > > Le typeclass Applicative ? la t?te suivante : > class Functor f => Applicative f where > pure :: a -> f a > (<*>) :: f (a -> b) -> f a -> f b > (*>) :: f a -> f b -> f b > (<*) :: f a -> f b -> f a > > A1 : Ce qui signifie que tout type impl?mentant ces fonctions doivent > ?galement impl?menter les fonctions de Functor. > Q1 : quelle est l'int?r?t ? > > Rep1. Plus! Le matematicien doit montre que une instance de cette classe > est un Functor, et apres ca, > il peut utiliser cette instance de la classe, sans probleme. Quand on > ecrit quelque chose comme > CommutativeRing x => l'auteur du logiciel doit etre confient que > l-operation a la proprietait d'etre commutatif et > toute les autre. > > Rep1. More!The matematician should prove that a specific instance of a > class is actually a functor, and, after it, > he can use this instance, without problems. So, when is written something > like CommutativeRing x => > the programer may base on the asumption that the operation is commutative > etc. > > > > Q4 : quel est l'int?r?t ? liftA (+1) $ Just 1 n'est pas ?gale ? pure (+1) > <*> Just 1 ? > > > ------------------------------------------------------------------------------------------------------------------------ > 4.Numero: 1, + > Maybe Numero: Just 1, donc qui ? > Rep4: La premiere expression signifier: (liftA (+1)) $ (Just 1). La cause > est l'associativite a la gauche de l'aplication > de fonction. Une autre cause: la petite priorite de l'operateur $. Donc il > est la derniere operation. > Rep4: The previous expression means: (liftA (+1)) $ (Just 1). The cause it > the right associativity of the functional > application. Also, the small priority of the "$" operator. It becomes the > last one, here. > > ------------------------------------------------------------------------------------------------------------------------ > > Q6 : dans le cas de version Functor, quel est l'int?r?t de la passer > Applicative ? > liftA2 :: Applicative f => (a -> b -> c) -> f a -> f b -> f c > > Rep6: Ca signifier que f este quelque chose qui peut etre aplique a a b et > c. Une abstraction, une fonction, c'est ca. > 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. > > --------------------------------------------------------------------------------------------------------------------------- > Quand on transfere une calcul dans la Monade Maybe on doit transfere les > valeurs, donc 1 deviene Just 1, > les operations (n'emporte pas quelques arguments) - donc on va avait > plusieurs variants de lifting - > et aussi la non valeur qui devien Nothing. > Donc: (Just 1) `(lifting2 (+)) (Just 2) = (Just 3) et biensure, 3=1+2. > Nais: (Just 1) `(lifting2 (/)) (Just 0) = Nothing > > Dans cette maniere on peu utiliser les non valeurs. "Nothing" est une > erreur qui a ete ajouter a la structure algebrieque quie nous enteresee. > > Escuse-moi pour ma langue. Je ne suit pas natif. Et le clavier, ici, est > "anglophone". > > Enjoy ! > Dan > Merci beaucoup pour ces pr?cisions. -------------- next part -------------- An HTML attachment was scrubbed... URL: