在序言中是否可以进行类似Variable = TermCompound的赋值?
例如:X =令牌(a,b,c)。
而且,如果可以的话,是否可以从X推导复合项的参数和函子?
答案 0 :(得分:2)
请参阅有关ISO标准谓词=/2
,functor/3
,=../2
和arg/3
的Prolog系统文档。通话示例:
| ?- X = token(a, b, c).
X = token(a,b,c)
yes
| ?- X = token(a, b, c), functor(X, Name, Arity).
Arity = 3
Name = token
X = token(a,b,c)
yes
| ?- X = token(a, b, c), X =.. [Name| Arguments].
Arguments = [a,b,c]
Name = token
X = token(a,b,c)
yes
| ?- X = token(a, b, c), arg(2, X, Argument).
Argument = b
X = token(a,b,c)
yes