[! !]. ,
:- 1,[! 2,3!],4.
2 3, .
Snip cut, , snip, . "" , snip , snip [7].
:
cut E , cut A , snip. snip, , B.
, , .
. , SWI-Prolog. , (.. , ). ( ):
A:-B, T, E.
T:-C, D,!.
b(2). %(1)
b(3). %(2)
c(2). %(3)
c(3). %(4)
d(4). %(5)
d(5). %(6)
e(10). %(7)
e(11). %(8)
e(12). %(9)
a(X,Y,Z,W):-b(X),[! c(Y), d (Z)!],e(W). %(10)
a(X,X,X,X):-d(X). %(11)
/* SWI-Prolog
: */
a(X,Y,Z,W):-b(X),f(Y,Z),e(W).
a(X,X,X,X):-d(X).
f(Y,Z):-C(Y),d(Z),!.
2?- a(X,Y,Z,W).
X = 2,Y = 2,Z = 4,W = 10; X = 2,Y = 2,Z = 4,W = 11;
X = 2,Y = 2,Z = 4,W = 12; X = 3,Y = 2,Z = 4,W = 10;
X = 3,Y = 2,Z = 4,W = 11; X = 3,Y = 2,Z = 4,W = 12;
X = 4,Y = 4,Z = 4,W = 4; X = 5,Y = 5,Z = 5,W = 5.
c(Y) d(Z) (10). Y, Z c(Y) d(Z) , c(2) d(4) .