§4   パターン・マッチング

 パターン・マッチングは Prolog プログラムの動作のしくみを 理解するのに重要な概念です。 与えられた質問にたいして、 「どの事実が、どの規則が、適用できるか」を判断するメカニズムです。 2つの述語が何らかの代入でピッタリと パターンが一致する表現となる可能性があるか、 またそのときの代入は何か、を調べる作業がパターン・マッチングです。

 次の 2つの述語は、

    p([1],[8],X)
    p([1],[8],[0,9])
代入 X=[0,9] でまったく同じ表現になります。 次はどうでしょう。
    p([1,X],[7],X)
    p(A,B,B)
A=[1,[7]], X=B=[7] で同じ表現になります。 パターン・マッチできない例としては、
    p([1,X],X)
    p(A,[A,A])
などがあります。

 数学でも、公式を用いて数式を変形する過程で、 頭の中で Prolog と同様なパターンマッチングの作業が行われています。 このような重要な用語ですが、数学教育の世界にはまだ普及していないようです。 数式 式 に展開の公式 式 が適用できるか。 式 を微分するにはどんな微分公式が利用できるか。 このような判断にパターンマッチングの考え方は大切であると思われます。

 入試の答案で次のような式変形をみかけたことがあります。
     式
約分公式のパターン・マッチングで間違えた結果でしょう。


follow link follow link