Next: , Previous: , Up: Control Structures   [Contents][Index]


11.4 パターンマッチングによる条件

4つの基本的な条件フォームとは別に、Emacs Lispにはcondcl-case (Conditionals in Common Lisp Extensionsを参照)の合成物とも言うべき、pcaseマクロというパターンマッチングによる条件フォームがあります。これはcondcl-caseの制限を克服して、パターンマッチングによるプログラミングスタイル(pattern matching programming style)を導入するものです。そのpcaseが克服する制限とは:

pcaseマクロはパターンマッチング(pattern matching)の変種であるような等価性テストを汎化したものによるconditionの置き換え、clauseの述語を簡潔に表現できるような機能の追加、clauseの述語とbody-formsの間でletバインディングを共有するようなアレンジにより、概念的には最初の引数のフォーカスではcl-case、clauseの処理フローではcondを借用しています。

この述語の簡潔な表現はパターン(pattern)として知られています。最初の引数の値にたいして呼び出される述語が非nilをリターンしたときには、“パターンが値にマッチした”といいます(“値がパターンにマッチした”ということもある)。