假设我有一个如下所示的列表:
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
...
然后用它做一些事情,而不必为我可能遇到的每种类型创建一个帮助谓词:
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).
有什么办法可以解决这个问题,还是我注定要使用大量的帮助谓词?