Advertisement
Guest User

Untitled

a guest
May 30th, 2019
96
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Prolog 2.49 KB | None | 0 0
  1. % Copyright
  2.  
  3. implement main
  4.     open core
  5.  
  6. class facts
  7.     любит : (string, string).
  8.     фрукты : (string).
  9.     конфеты : (string).
  10.  
  11. class predicates
  12.     люб_фрукты : (string) nondeterm.
  13.     люб_конфеты : (string) nondeterm.
  14.     люб_вкусное : (string) nondeterm.
  15.     кто_что_любит : (string*, string* [out], string* [out], string* [out]).
  16.  
  17. clauses
  18.     любит("Анна", "яблоки").
  19.     любит("Сергей", "бананы").
  20.     любит("Андрей", "яблоки").
  21.     любит("Света", "шоколад").
  22.     любит("Вова", "шоколад").
  23.     любит("Анна", "шоколад").
  24.     любит("Света", "апельсины").
  25.     любит("Вова", "бананы").
  26.     фрукты("яблоки").
  27.     фрукты("бананы").
  28.     фрукты("апельсины").
  29.     конфеты("шоколад").
  30.  
  31.     люб_фрукты(X) :-
  32.         любит(X, Y),
  33.         фрукты(Y).
  34.  
  35.     люб_конфеты(X) :-
  36.         любит(X, Y),
  37.         конфеты(Y).
  38.  
  39.     люб_вкусное(X) :-
  40.         люб_фрукты(X),
  41.         люб_конфеты(X).
  42.  
  43.     кто_что_любит([], [], [], []) :-
  44.         !.
  45.     кто_что_любит([H | T], [H | Фрукты], [H | Конфеты], [H | Все]) :-
  46.         люб_вкусное(H),
  47.         кто_что_любит(T, Фрукты, Конфеты, Все),
  48.         !.
  49.     кто_что_любит([H | T], [H | Фрукты], Конфеты, Все) :-
  50.         люб_фрукты(H),
  51.         кто_что_любит(T, Фрукты, Конфеты, Все),
  52.         !.
  53.     кто_что_любит([H | T], Фрукты, [H | Конфеты], Все) :-
  54.         люб_конфеты(H),
  55.         кто_что_любит(T, Фрукты, Конфеты, Все),
  56.         !.
  57.     кто_что_любит([_ | T], Фрукты, Конфеты, Все) :-
  58.         кто_что_любит(T, Фрукты, Конфеты, Все),
  59.         !.
  60.  
  61.     run() :-
  62.         Люди = ["Анна", "Сергей", "Андрей", "Света", "Вова"],
  63.         кто_что_любит(Люди, Фрукты, Конфеты, Все),
  64.         stdio::write("\na) Любят фрукты: ", Фрукты, "\nb) Любят конфеты: ", Конфеты, "\nc) Любят конфеты и фрукты: ", Все, "\n").
  65.  
  66. end implement main
  67.  
  68. goal
  69.     console::runUtf8(main::run).
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement