[Haskell-fr] lagrange
Dan Weston
westondan at imageworks.com
Tue Sep 25 20:56:51 EDT 2007
> Ce dépend de ce que le ($) a une précédence inférieure à celle de (.),
> fixée à 9 dans le Prélude par "infixr 9 .", parsé comme:
>
> (addition a . addition) b $ c
Evidemment je voulais écrire:
> (addition a . addition b) $ c
Dan Weston wrote:
>
> > addition a $ addition b c
>
> Aussi on voit parfois
>
> addition a $ addition b $ c
>
> Ce dernier dépend de ce que le ($) s'associe vers la droite, fixé dans
> le Prélude par le r à la fin de infixr, parsé comme:
>
> addition a $ (addition b $ c)
>
> Le plus souvent, je vois
>
> addition a . addition b $ c
>
> Ce dépend de ce que le ($) a une précédence inférieure à celle de (.),
> fixée à 9 dans le Prélude par "infixr 9 .", parsé comme:
>
> (addition a . addition) b $ c
>
> Enfin, il faut trouver un style qui te conviennes et y tenir. Moi, je
> préfère ce dernier.
>
> Dan
>
> Olivier Thauvin wrote:
>> Le mardi 25 septembre 2007, Dan Weston a écrit :
>>> L'opérateur ($) n'est que l'application (d'une fonction) à basse
>>> précédence, dont la définition est assez simple:
>>>
>>> infixr 0 $
>>> f $ x = f x
>>>
>>> C'est la première ligne qui coûte. La précédence de l'application est 10
>>> (la plus haute), tandis que la précédence de ($) est 0 (la plus basse).
>>>
>>> E.g., f . g . h . k $ x = f (g (h (k x)))
>>>
>>> ($) sert à obvier aux parenthèses et à un style point-free qui est (pour
>>> moi au moins) plus compréhensible et élégant, mais tous les deux sont
>>> traduits identiquement.
>>
>> Si je peux me permettre, je vais donner un exemple extrémement simple:
>>
>> addition a b = a + b
>>
>> addition a addition c d
>>
>> Sur cette deuxième ligne, haskell va râler du style "addition prends 2
>> arguments, pas 4". Le '$' permet d'écrire:
>>
>> addition a $ addition b c
>>
>> on a alors "a" et "addition b c", ce qui ne fait plus que deux
>> argument au premier "addition".
>>
>> Le '.' j'ai encore du mal ;)
>>
>>
>> ------------------------------------------------------------------------
>>
>> _______________________________________________
>> Haskell-fr mailing list
>> Haskell-fr at haskell.org
>> http://www.haskell.org/mailman/listinfo/haskell-fr
>
>
More information about the Haskell-fr
mailing list