Good for Prolog, underscores are just an anonymous variable. Therefore, the predicate is a/1equivalent to:
a(X) :-
b(Y),
c(X).
b(Y), Y , , . , Y X, b(Y) X.
Prolog, , , :
b/1 /. , :
b(a) :-
print(a).
b(a) :-
print(b).
a b .
b/1 , ,... . , , ,
b/1 asserta/1, assertz/1 .. . , , c/1, c/1 .
Prolog , , .
, b/1 c/1.
b/1 once/1 -. :
a(X) :-
once(b(_)),
c(X).