我在Prolog中有我的数据库
abc1(1,2,3).
abc2(2,5,3).
abc3(3,2,7).
abc4(2,5,7).
abc5(5,2,3).
abc6(6,2,9).
abc7(7,4,3).
现在输入像
这样的输入列表L=[abc1,abc2,abc3]
f(L,X) gives
X表示abc1(X,Y,Z)的X,Y,Z列表,类似于abc2和abc3。 我无法做到这一点,基本上我想要给予abci相应的abci(X,Y,Z)。
答案 0 :(得分:0)
首先你可以写一个谓词get_args / 2:
get_args(Name, [A,B,C]) :-
call(Name, A, B, C).
现在你的函数f可以写成:
f(L, X) :-
maplist(get_args, L, X).