0
我在练习中遇到了一些麻烦,要求我在Prolog中实现经典的arg谓词。如何在Prolog中实现arg谓词?
arg(?Arg, +Term, ?Value)
其中,Arg它是Term的参数列表中参数的索引。值是这个参数的价值。
例如:
arg(1, t(f(X),Y,a), Value)
Value = f(X).
由于F(X)是在T主函子的参数列表中的第一个参数。
所以我tryng使用大学解决运动= ..谓词是这样的:
myArg(ArgIndex, Term, ArgValue) :- integer(ArgIndex),
Term =.. [_|ArgsList],
countArg(ArgsList, ArgIndex, ArgValue).
我的想法是:ArgIndex必须是整数,我可以分解我的任期到其主要仿函数和aguments列表ArgsList,现在我都数不过来的参数(在此列表中),直到ArgIndex是0
,但我不能指望,并借此值...
Tnx的建议,我也将这本书...现在我正在研究伊万布拉特科“编程为人工智能”,这是很好,但一些例子不存在 – AndreaNobili