Haskell pattern matching - ce que c'est?

Qu'est-ce que la correspondance de motif en Haskell et comment est-il lié à gardé équations?

J'ai essayé de chercher une explication simple, mais je n'ai pas trouvé un.

EDIT:
Quelqu'un étiquetés comme des devoirs. Je n'ai pas plus aller à l'école, je suis en train d'apprendre Haskell et j'essaie de comprendre ce concept. Pur intérêt.

  • Peut-être devrait également inclure le pattern matching concept en F#, ainsi...
  • Tonnes de langues ont de la correspondance de modèle, pas seulement Haskell et F#.
  • C'est une caractéristique commune de pur-fonctionnelle et de la contrainte langues. Prolog, Erlang et SML, par exemple.
  • L'article de wikipédia semble être assez bonne. Le Pattern matching est fondamentale pour les langues telles que le Haskell, Scala et beaucoup d'autres encore. Je pense que l'obtention de votre tête ronde de la langue est essentielle à la compréhension de la correspondance de motif. Je voudrais obtenir de l'apprentissage de Haskell et ne pas vous soucier de trouver une définition sur le filtrage prématurément. La compréhension viendra!
  • J'ai ajouté de la langue-agnostique. Évidemment, je ne veux pas supprimer Haskell, mais comme il est applicable à de nombreuses langues, j'ai ajouté un FP balise ainsi.
  • J'ai marqué comme devoirs purement parce que la question sonne comme une reformulation de la question de la fin du chapitre d'un manuel, avec peu de preuves de recherche fournis.
  • oui, il pourrait avoir été le cas, mais dans mon cas, il ne l'est pas. Pas de soucis bien 🙂
  • c'est une option, mais ma ne pas comprendre cela, de le rendre plus difficile à obtenir pour la compréhension d'autres concepts qui pourraient être construits sur elle?
  • ce que je veux dire, c'est que toute introduction à Haskell permettra de vous familiariser avec le modèle correspondant dans un "confort" de manière. Vous ne pouvez pas vraiment comprendre la correspondance de motif, sans comprendre les types de liaison, etc qui vous permettra d'apprendre le long de la route de toute façon. Une fois que vous avez écrit quelques fonctions qui opèrent sur des valeurs, les tuples et les listes que vous aurez 'get' il. Il est très différent de C#. FWIW, Scala pourraient être d'intérêt pour vous, en cours de Programmation Fonctionnelle hybride avec OO et Java (qui avouons-le est très similaire .NET!).
  • Je ne recommanderais pas de Scala pour une introduction à la programmation fonctionnelle. Il est fonctionnel dans une main-ondulés, sorte de façon, mais c'est aussi OO, ce qui le rend plus difficile à apprendre les aspects fonctionnels bien. F# est plus fortement fonctionnel, de sorte que je recommande pour un programmeur C# (et il est .NETTE) avant de Scala.
  • oui tout à fait, éventuellement, je n'ai pas regardé F#. J'ai juste trouvé que la Scala approche du motif de correspondance avec des classes de cas et des extracteurs et comment ils se rapportent à des catégories telles que les tuples et les listes de particulièrement fascinant à la fois d'une OO et FP point de vue. Haskell est un beau terrain neutre' à partir de laquelle commencer.