[Haskell-fr] Éclaircissement sur les Applicatives

Gautier DI FOLCO gautier.difolco at gmail.com
Fri Dec 20 22:47:10 UTC 2013


Bonsoir,

Merci de la rapidité de ta réponse, la suite dans le texte :


Le 20 décembre 2013 23:16, Valentin Robert <valentin.robert.42 at gmail.com> a
écrit :

> Réponse dans le texte :
>
>
> 2013/12/20 Gautier DI FOLCO <gautier.difolco at gmail.com>
>
>> Nous avons pure :: Applicative f => a -> f a
>> A2 : 'f a' signifie de type a implémentant le typeclass f (Applicative
>> dans ce cas précis
>>
>
> Hmm pas vraiment. `f a` signifie de type `f a`, où `f` est un foncteur
> applicatif.
>

Donc pour 'f a', 'f' est un type paramétrique qui implémente le typeclass
Applicative et qui a un paramètre 'a' ?
Ça signifie donc que les types n'ayant pas ou plusieurs paramètre de type
ne peuvent pas être utilisé dans cette fonction ? Comme Either ?


> liftA2 :: Applicative f => (a -> b -> c) -> f a -> f b -> f c
>> A8 : idem mais avec deux arguments
>> A9 : liftA2 (+) (Just 2) (Just 1) est équivalent à liftA (+) (Just 2) <*>
>> Just 1
>> Q7 : Quel est l'intérêt du coup ?
>>
>
> Même réponse. Tu sembles chercher à éviter toute redondance. Pourquoi ne
> pas écrire tout ton code avec juste des lambdas et des applications ? :-)
>

En fait je cherche à savoir pourquoi il y a plusieurs formes, mais
visiblement je me pose trop de questions :/


>
>
>> liftA3 :: Applicative f => (a -> b -> c -> d) -> f a -> f b -> f c -> f d
>> A10 : idem mais avec trois arguments
>>
>> Q8 : Quel est l'intérêt de Control.Applicative.Lift ?
>> Il est écrit : "Adding a new kind of pure computation to an applicative
>> functor"
>> Q9 : J'ai du mal à saisir cette notion de calcul, est-ce qu'il est
>> possible de me  l'expliquer en deux mots ?
>>
>
> Je ne saurai expliquer ça clairement, mais tu peux jeter un coup d'oeil
> ici :
>
>
> http://hackage.haskell.org/package/transformers-0.3.0.0/docs/src/Control-Applicative-Lift.html#unLift
>
> En particulier, l'implémentation de `fmap` et le commentaire du type
> Errors peuvent te donner une idée de ce qu'il se passe...
>

Même une piste m'aiderais :/
J'ai l'impression qu'il s'agit de gérer soit une valeur soit une valeur et
une fonction à lui appliquer, mais en quoi la valeur seule serait Pure ?
Qu'est-ce que pure dans ce contexte ?

Merci par avance de votre réponse.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.haskell.org/pipermail/haskell-fr/attachments/20131220/dba54354/attachment.html>


More information about the Haskell-fr mailing list