是否可以使用已经内置的谓词(在 swi-prolog 中)获得一个谓词,例如:
Wanted_Pred(X, a) %false
Wanted_Pred(b, a) %false
Wanted_Pred(X, Y) %true
Wanted_Pred(X, X) %true
Wanted_Pred(X, [Y|Z]) %false
Wanted_Pred([A|B], [X,Y|Z]) %false
Wanted_Pred([A,C|B], [X,Y|Z]) %true
例如,如果两个参数都代表彼此自由变量重命名,则成功,请注意 copy_term 不会这样做,因为它最终统一了参数:
copy_term(X, a) %true
copy_term(X, [Y|Z]) %true
copy_term([A|B], [X,Y|Z]) %true