1
一个具体的说法如果我有这样的查找Prolog的谓词
some_predicate('12','Jon Doe', 'Unknown town').
谓语是有可能得到例如第三参数呢?我正在考虑一个可以这样写的规则nth_arg(+Predicate,+Nth,-Argument)
。
这种规则是否存在?
一个具体的说法如果我有这样的查找Prolog的谓词
some_predicate('12','Jon Doe', 'Unknown town').
谓语是有可能得到例如第三参数呢?我正在考虑一个可以这样写的规则nth_arg(+Predicate,+Nth,-Argument)
。
这种规则是否存在?
有一个ISO谓词,arg/3
,但这正是是:
?- arg(2, foo(a,b,c), Arg).
Arg = b
yes
| ?-
用于第二参数的正确术语是化合物术语(带有参数的术语)。 A 谓词是':-'(head, body)
形式的特定术语,或者仅仅是头部,其定义了规则。并非所有条款都定义规则。有时他们只是数据结构。
可以,例如,得到一个谓语的整个身体如下:
?- arg(2, (foo(X,Y) :- X > 1, Y is X * 3), Body).
Body = (X>1,Y is X*3)
yes
| ?-
这是因为在给定的谓词术语::-(foo(X,Y), (X > 1, Y is X*3))
。
这正是我所期待的,非常感谢! – tomatediabolik
你会给'+谓语'? 'some_predicate'或'some_predicate(12,'John Doe','不知名的城镇')''。 –