HaskellWiki

Haskell | Wiki community | Recent changes
Random page | Special pages

 

Not logged in
Log in | Help

Pattern guard

Categories: Glossary | Language extensions | Syntax

The idea is to change the syntax for guards by replacing the use of a single condition with a list of qualifiers. These qualifiers, which include both conditions and pattern guards of the form pat <- exp, serve to bind/match patterns against expressions. The syntax is comparable that of a list comprehension, where instead the types of pat and exp match. This makes it easy, for instance, to pattern match against (possibly failing) table lookups while deciding which definition of a function to use.

Stealing a function from the note,

addLookup env var1 var2
   | Just val1 <- lookup env var1
   , Just val2 <- lookup env var2
   = val1 + val2
{-...other equations...-}

will check to see if both lookups succeed, and bind the results to val1 and val2 before proceeding to use the equation.

See also

Retrieved from "http://www.haskell.org/haskellwiki/Pattern_guard"

This page has been accessed 1,101 times. This page was last modified 12:44, 3 July 2007. Recent content is available under a simple permissive license.