假设我有一个如下所示的列表:
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).
有没有办法绕过这个或者我注定要使用大量的帮助谓词?
答案 0 :(得分:3)