转载自:https://mp.weixin.qq.com/s/45ossL8uSnbZLk1K-i-sEw
1 表
?- [Head|Tail] = [mia, vincent, jules, yolanda].
Head = mia,
Tail = [vincent, jules, yolanda].
?- [X|Y] = [mia, vincent, jules, yolanda].
X = mia,
Y = [vincent, jules, yolanda].
?- [X|Y] = [].
false.
?- [X|Y] = [[], dead(z), [2, [b, c]], [], Z].
X = [],
Y = [dead(z), [2, [b, c]], [], Z].
// 教材中老版本中
// Y = [dead(z),[2,[b,c]],[],_7800]
// Z = _7800
?- [X,Y | W] = [[], dead(z), [2, [b, c]], [], Z].
X = [],
Y = dead(z),
W = [[2, [b, c]], [], Z].
// 教材中老版本中
// [[2,[b,c]],[],_8327]
// Z = _8327
?- [X1,X2,X3,X4 | Tail] =
[[], dead(z), [2, [b, c]], [], Z].
X1 = X4, X4 = [],
X2 = dead(z),
X3 = [2, [b, c]],
Tail = [Z].
// 教材中老版本中
// X1 = []
// X2 = dead(z)
// X3 = [2,[b,c]]
// X4 = []
// Tail = [_8910]
// Z = _8910
?- [_,X,_,Y|_] = [[], dead(z), [2, [b, c]], [], Z].
X = dead(z),
Y = [].
// 教材中老版本中
// X = dead(z)
// Y = []
// Z = _9593
?- [_,_,[_|X]|_] =
[[], dead(z), [2, [b, c]], [], Z, [2, [b, c]]].
X = [[b, c]].
// 教材中老版本中
// X = [[b,c]]
// Z = _10087
2 成员
?- [user].
|: member(X, [X|T]).
Warning: user://1:113:
Warning: Singleton variables: [T]
|: member(X, [H|T]):- member(X,T).
Warning: user://1:117:
Warning: Singleton variables: [H]
|: ^D% user://1 compiled 0.00 sec, 2 clauses
true.
?- listing(number).
% Foreign: system:number/1
true.
?- listing(member).
lists:member(El, [H|T]) :-
member_(T, El, H).
member(A, [A|_]).
member(A, [_|B]) :-
member(A, B).
true.
?- member(yolanda, [yolanda,trudy,vincent,jules]).
true ;
false.
?- member(vincent, [yolanda,trudy,vincent,jules]).
true ;
false.
?- member(X, [yolanda,trudy,vincent,jules]).
X = yolanda ;
X = trudy ;
X = vincent ;
X = jules ;
false.
$ swipl
Welcome to SWI-Prolog (threaded, 64 bits, version 8.1.15)
SWI-Prolog comes with ABSOLUTELY NO WARRANTY. This is free software.
Please run ?- license. for legal details.
For online help and background, visit https://www.swi-prolog.org
For built-in help, use ?- help(Topic). or ?- apropos(Word).
?- [user].
|: member(X,[X|_]).