2010-11-25 11 views
2

Quelle est la signification de ces déclarations dans Haskell:aider à comprendre ces Statesments Dans Haskell

a) 
(\x -> x + 1) 

b) 
(\x -> x - 2) 

c) 
(\x -> mod (x * 3) 5) 

Je comprends x + 1, mod (x * 3) 5 etc, mais le \ x avant que ces déclarations marques difficile pour moi de comprendre.

Merci pour votre aide

+0

Voir aussi http://stackoverflow.com/questions/5587157/question-about-the-two-haskell-symbols-and-what-they-do-and –

Répondre

6

\ et -> définissent un lambda (vous pouvez l'appeler une fonction en ligne ou une fonction sans nom). Donc, \x->x est le même que \ x -> x est la même chose qu'une fonction qui retourne son argument. Et \x y -> x + y est une fonction qui renvoie la somme de ses deux arguments.

+0

Merci pour votre réponse – Kap

+1

Veuillez noter que le bon La syntaxe dans haskell serait '\ xy -> x + y'. – fuz

+0

oh désolé; encore nouveau avec Haskell. Merci pour l'édition. – lijie