ガード (プログラミング)
以下の Haskell のコード例で、"|" と "=" の間の部分がガードである。
これは、以下のような、数学で使われる記法に似ている。
f ( x ) = { 1 if x > 0 0 otherwise {\displaystyle f(x)=\left\{{\begin{matrix}1&{\mbox{if }}x>0\\0&{\mbox{otherwise}}\end{matrix}}\right.}
この場合、ガードは "if"節と "otherwise"節にある。
上記の例のように複数のガードがある場合、先頭から順に評価され、最初に真となった分岐が選択される。
Haskell のリスト内包表記でのガード列は、1つでも偽であった場合にそのリスト要素が生成されない。これはつまり、個々のガードを論理積で結合したと見なすことができるが、リスト内包表記にはガード以外も列挙される。