[Haskell-fr] lagrange

Olivier Thauvin nanardon at nanardon.zarb.org
Tue Sep 25 20:18:57 EDT 2007


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 ;)
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: This is a digitally signed message part.
Url : http://www.haskell.org/pipermail/haskell-fr/attachments/20070926/f21e4266/attachment.bin


More information about the Haskell-fr mailing list