次のようなリストがあるとしましょう。
List=[alpha(1,2),beta(3,4),gamma(4,1)]
さて、ここで特定のパターンマッチングを作成したいと思います...私はできることを知っています:
Try=alpha(Y,Z).
Try=alpha(1,2)
Y=1
Z=2
しかし、私は例えばしたいと思います:
Try=X(Y,Z)
X=alpha
Y=1
Z=2
...データを別の述語に渡すことができるように:
targetPredicate(Type,Value1,Value2):-
Type=alpha
...
そして、私が遭遇する可能性のあるすべてのタイプに対して1つのヘルプ述語を作成する代わりに、それを使用して何かを実行します。
helpPredicate(Input):-
Input=alpha(Value1, Value2),
targetPredicateAlt(Value1, Value2).
helpPredicate(Input):-
Input=beta(Value1, Value2),
targetPredicateAlt(Value1, Value2).
helpPredicate(Input):-
Input=gamma(Value1, Value2),
targetPredicateAlt(Value1, Value2).
これを回避する方法はありますか、それとも大量のヘルプ述語を使用する運命にありますか?