fork(1) download
  1. collects(wolf, fauna).
  2. collects(nuff, flora).
  3. collects(nif, sport).
  4. collects(nafa, cosmos).
  5.  
  6. left_of(wolf, nafa).
  7. right_of(nif, cosmos).
  8. opposite(nif, nafa).
  9.  
  10. % Кто собирает какие марки?
  11. who_collects_what :-
  12. collects(Who, What),
  13. format('~w собирает ~w.\n', [Who, What]),
  14. who_collects_what.
  15.  
  16. % Кто сидит где? (Информация неполная из-за противоречий)
  17. location :-
  18. (left_of(X, Y); right_of(X, Y); opposite(X, Y)),
  19. format('~w находится ~w ~w.\n', [X, (member(Rel, [слева_от, справа_от, напротив])), Y]),
  20. location.
  21.  
  22.  
  23. % Кто не собирает марки "Спорт"? (Исправлено)
  24. who_does_not_collect_sport :-
  25. collects(Person, _), % Находим всех, кто что-то собирает
  26. \+ collects(Person, sport),
  27. format('~w не собирает "Спорт".\n', [Person]),
  28. who_does_not_collect_sport.
  29.  
  30. слева_от(X,Y) :- left_of(X,Y).
  31. справа_от(X,Y) :- right_of(X,Y).
  32. напротив(X,Y) :- opposite(X,Y).
  33.  
Success #stdin #stdout #stderr 0.03s 6940KB
stdin
Standard input is empty
stdout
Standard output is empty
stderr
Warning: /home/8qoRPa/prog:18:
	Singleton variables: [Rel]
ERROR: '$runtoplevel'/0: Undefined procedure: program/0
   Exception: (3) program ? EOF: exit