Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- % Copyright
- implement main
- open core
- class facts
- любит : (string, string).
- фрукты : (string).
- конфеты : (string).
- class predicates
- люб_фрукты : (string) nondeterm.
- люб_конфеты : (string) nondeterm.
- люб_вкусное : (string) nondeterm.
- кто_что_любит : (string*, string* [out], string* [out], string* [out]).
- clauses
- любит("Анна", "яблоки").
- любит("Сергей", "бананы").
- любит("Андрей", "яблоки").
- любит("Света", "шоколад").
- любит("Вова", "шоколад").
- любит("Анна", "шоколад").
- любит("Света", "апельсины").
- любит("Вова", "бананы").
- фрукты("яблоки").
- фрукты("бананы").
- фрукты("апельсины").
- конфеты("шоколад").
- люб_фрукты(X) :-
- любит(X, Y),
- фрукты(Y).
- люб_конфеты(X) :-
- любит(X, Y),
- конфеты(Y).
- люб_вкусное(X) :-
- люб_фрукты(X),
- люб_конфеты(X).
- кто_что_любит([], [], [], []) :-
- !.
- кто_что_любит([H | T], [H | Фрукты], [H | Конфеты], [H | Все]) :-
- люб_вкусное(H),
- кто_что_любит(T, Фрукты, Конфеты, Все),
- !.
- кто_что_любит([H | T], [H | Фрукты], Конфеты, Все) :-
- люб_фрукты(H),
- кто_что_любит(T, Фрукты, Конфеты, Все),
- !.
- кто_что_любит([H | T], Фрукты, [H | Конфеты], Все) :-
- люб_конфеты(H),
- кто_что_любит(T, Фрукты, Конфеты, Все),
- !.
- кто_что_любит([_ | T], Фрукты, Конфеты, Все) :-
- кто_что_любит(T, Фрукты, Конфеты, Все),
- !.
- run() :-
- Люди = ["Анна", "Сергей", "Андрей", "Света", "Вова"],
- кто_что_любит(Люди, Фрукты, Конфеты, Все),
- stdio::write("\na) Любят фрукты: ", Фрукты, "\nb) Любят конфеты: ", Конфеты, "\nc) Любят конфеты и фрукты: ", Все, "\n").
- end implement main
- goal
- console::runUtf8(main::run).
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement