Advertisement
Guest User

Untitled

a guest
Apr 9th, 2019
114
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Prolog 1.66 KB | None | 0 0
  1. vorfahre(X,Y) :- elternteil(X,Y).
  2. vorfahre(X,Y) :-
  3.     elternteil(X,Z),
  4.     vorfahre(Z,Y).
  5.  
  6. nachkomme(X,Y) :- elternteil(Y,X).
  7. nachkomme(X,Y) :-
  8.     elternteil(Z,X),
  9.     nachkomme(Z,Y).
  10.  
  11. nachkommen(X,Y) :-
  12.     findall(Z, nachkomme(Z,X),Z),
  13.     list_to_set(Z, Y).
  14.  
  15.  
  16. eheleute(X, Y) :-
  17.     verheiratet(X, Y).
  18. eheleute(X, Y) :-
  19.     verheiratet(Y, X).
  20.  
  21. kind(X, Y) :-
  22.     elternteil(Y, X).
  23.  
  24. geschwister(X, Y) :-
  25.     kind(X, Z),
  26.     kind(Y, Z),
  27.     Y \== X.
  28.  
  29. bruder(X, Y) :-
  30.     geschwister(X, Y),
  31.     maennlich(X).
  32.  
  33. schwester(X, Y) :-
  34.     geschwister(X, Y),
  35.     weiblich(X).
  36.  
  37. vater(X, Y) :-
  38.     elternteil(X, Y),
  39.     maennlich(X).
  40.  
  41. mutter(X, Y) :-
  42.     elternteil(X, Y),
  43.     weiblich(X).
  44.  
  45. onkel(X, Y) :-
  46.     elternteil(Z, Y),
  47.     bruder(X, Z).
  48.  
  49. tante(X, Y) :-
  50.     elternteil(Z, Y),
  51.     schwester(X, Z).
  52.  
  53. großeltern(X, Y) :-
  54.     elternteil(Z, Y),
  55.     elternteil(X, Z).
  56.  
  57. opa(X, Y) :-
  58.     großeltern(X, Y),
  59.     maennlich(X).
  60.  
  61. oma(X, Y) :-
  62.     großeltern(X, Y),
  63.     weiblich(X).
  64.  
  65. uroma(X, Y) :-
  66.     großeltern(Z, Y),
  67.     mutter(X, Z).
  68.  
  69. uropa(X, Y) :-
  70.     großeltern(Z, Y),
  71.     vater(X, Z).
  72.  
  73. maenUweibl(List) :-
  74.     findall(X, (maennlich(X), weiblich(X)), List).
  75.  
  76. verhKor(List) :-
  77.     findall((X, Y), (verheiratet(X, Y),(maennlich(Y) ; weiblich(X))), Dup), list_to_set(Dup, List).
  78.  
  79. reg(X) :-
  80.     \+ maennlich(X),
  81.     \+ weiblich(X).
  82.  
  83.  
  84. elterVoll(List) :-
  85.     findall((X, Y), (elternteil(X, Y), reg(X), reg(Y)), List).
  86.  
  87. wurzel_w(X) :-
  88.     weiblich(X),
  89.     \+ kind(X, _).
  90.  
  91. wurzel_m(X) :-
  92.     maennlich(X),
  93.     \+ kind(X, _).
  94.  
  95. wurzel(List) :-
  96.     findall(X, (wurzel_m(X) ; wurzel_w(X)), List).
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement