fork download
  1. :- initialization(main).
  2. main :-
  3. grandmother(X, sazae),
  4. write(X), nl, fail,
  5. halt.
  6.  
  7. % 既存の親子関係
  8. parent(namihei, sazae).
  9. parent(namihei, katuo).
  10. parent(namihei, wakame).
  11. parent(fune, sazae).
  12. parent(fune, katuo).
  13. parent(masuo, tara).
  14. parent(sazae, tara).
  15. parent(umi, namihei).
  16.  
  17. male(namihei).
  18. male(katuo).
  19. male(masuo).
  20. male(tara).
  21. female(fune).
  22. female(wakame).
  23. female(sazae).
  24. female(umi).
  25.  
  26. % 親子関係
  27. child(X, Y) :- parent(Y, X).
  28.  
  29. mother(X, Y):- parent(X, Y), female(X).
  30. father(X, Y):- parent(X, Y), male(X).
  31.  
  32. sister(X, Y):-
  33. parent(Z, X),
  34. parent(Z, Y),
  35. female(X), X \= Y.
  36.  
  37. brother(X, Y):-
  38. parent(Z, X),
  39. parent(Z, Y),
  40. male(X), X \= Y.
  41.  
  42. % 祖母の定義
  43. grandmother(X, Y):-
  44. female(X),
  45. parent(X, Z),
  46. parent(Z, Y).
  47.  
  48. % 孫の定義
  49. grandchild(X, Y):-
  50. male(Y), female(X),
  51. parent(Y, Z), parent(Z, X).
  52.  
  53. % いとこの定義
  54. cousin(X, Y):-
  55. parent(Z, X),
  56. parent(W, Y),
  57. sister(Z, W). % ZとWが兄妹姉妹の場合、XとYは従兄弟
  58.  
  59. % フグタ家の定義
  60. % マスオの親
  61. parent(masuo_mother, masuo). % マスオの母親
  62. parent(masuo_father, masuo). % マスオの父親(死亡したと仮定)
  63. % サケオの家族
  64. parent(sakeo, masuo_mother). % マスオの兄
  65. parent(sakeo_wife, sakeo). % サケオの嫁
  66. parent(norio, sakeo). % サケオの息子
  67. parent(norio, sakeo_wife). % サケオの妻と共にノリオの親
  68.  
  69. male(masuo_mother). % マスオの母は女性
  70. female(sakeo_wife). % サケオの妻は女性
  71. male(sakeo). % サケオは男性
  72. male(norio). % ノリオは男性
  73. female(masuo_mother). % マスオの母
  74.  
  75. % 終了
  76.  
Success #stdin #stdout #stderr 0.01s 5280KB
stdin
Standard input is empty
stdout
umi
GNU Prolog 1.4.5 (64 bits)
Compiled Feb  5 2017, 10:30:08 with gcc
By Daniel Diaz
Copyright (C) 1999-2016 Daniel Diaz
| ?- 
stderr
warning: /home/blLzTu/prog.pl:1: user directive failed