_(下划线)在 Prolog Amzi 的上下文中是什么意思
What does _ (Underscore) mean in this context in Prolog Amzi
我一直在尝试学习一些 Prolog Amzi。这是一个示例问题,我无法完全理解这个问题。
这是代码。
/* Facts */
parent(mary,tom).
parent(john,tom).
parent(mary,alice).
parent(john,alice).
sex(mary, female).
sex(john, male).
sex(tom, male).
sex(alice, female).
/* Rules */
mother(X):-
sex(X,female),
parent(X,_).
father(X):-
sex(X, male),
parent(X,_).
sibling(X,Y):-
parent(M,X),
sex(M,female),
parent(F,X),
sex(F,male),
parent(M,Y),
parent(F,Y).
sibling1(X,Y):-
parent(M,X),
sex(M,female),
parent(F,X),
sex(F,male),
parent(M,Y),
parent(F,Y),
X \= Y.
go:-
nl, nl,
write('Hello there .....'), nl,
write('Testing on Prolog2.'), nl,
write('End Job'), n1.
题目是问规则mother(X)和father(X)中下划线的作用是什么,输出例子
我似乎不明白下划线在此上下文中的含义以及示例输出的含义。
在任何上下文中,匿名变量(用_
表示)表示一个参数,其具体值无关紧要。
例如,规则 mother(X) :- sex(X, female), parent(X, _).
规定 X 是 mother,X 必须是 女性 并且也是某人的 parent(名字无关紧要,必须由匿名代表变量)。
匿名变量 (_
) 不绑定值,多次出现并不表示值相等。
例如,考虑以下事实:
parent(mary, tom).
parent(mary, alice).
parent(john, tom).
parent(john, alice).
想知道玛丽的children是谁,你可以问:
?- parent(mary, Who).
Who = tom ;
Who = alice.
想知道玛丽是否是某人的parent,你可以问:
?- parent(mary, _).
true .
想知道有没有人是别人的parent,可以问:
?- parent(_, _).
true .
想知道有没有属于自己parent的人,可以问:
?- parent(X, X).
false.
我一直在尝试学习一些 Prolog Amzi。这是一个示例问题,我无法完全理解这个问题。
这是代码。
/* Facts */
parent(mary,tom).
parent(john,tom).
parent(mary,alice).
parent(john,alice).
sex(mary, female).
sex(john, male).
sex(tom, male).
sex(alice, female).
/* Rules */
mother(X):-
sex(X,female),
parent(X,_).
father(X):-
sex(X, male),
parent(X,_).
sibling(X,Y):-
parent(M,X),
sex(M,female),
parent(F,X),
sex(F,male),
parent(M,Y),
parent(F,Y).
sibling1(X,Y):-
parent(M,X),
sex(M,female),
parent(F,X),
sex(F,male),
parent(M,Y),
parent(F,Y),
X \= Y.
go:-
nl, nl,
write('Hello there .....'), nl,
write('Testing on Prolog2.'), nl,
write('End Job'), n1.
题目是问规则mother(X)和father(X)中下划线的作用是什么,输出例子
我似乎不明白下划线在此上下文中的含义以及示例输出的含义。
在任何上下文中,匿名变量(用_
表示)表示一个参数,其具体值无关紧要。
例如,规则 mother(X) :- sex(X, female), parent(X, _).
规定 X 是 mother,X 必须是 女性 并且也是某人的 parent(名字无关紧要,必须由匿名代表变量)。
匿名变量 (_
) 不绑定值,多次出现并不表示值相等。
例如,考虑以下事实:
parent(mary, tom).
parent(mary, alice).
parent(john, tom).
parent(john, alice).
想知道玛丽的children是谁,你可以问:
?- parent(mary, Who).
Who = tom ;
Who = alice.
想知道玛丽是否是某人的parent,你可以问:
?- parent(mary, _).
true .
想知道有没有人是别人的parent,可以问:
?- parent(_, _).
true .
想知道有没有属于自己parent的人,可以问:
?- parent(X, X).
false.