Проверьте, является ли переменная пустой или заполненной
У меня есть следующая проблема:
Пролог прога:
man(thomas, 2010).
man(leon, 2011).
man(thomas, 2012).
man(Man) :- once(man(Man, _).
проблема:
?- man(thomas).
true ; %i want only on true even if there are more "thomas" *working because of once()*
?- man(X).
X = thomas ; %i want all man to be listed *isn't working*
Цель:
?- man(thomas).
true ;
?- man(X).
X = thomas ;
X = leon ;
X = thomas ;
Я понимаю, почему это происходит, но все же хочу узнать имена всех людей. Так что мое решение будет выглядеть, если "Мужчина" инициализируется, если да, чемодин раз.." иначе ... что-то в этом роде:
man(Man) :- (->check