fork download
  1. color(red).
  2. color(green).
  3. color(blue).
  4. color(yellow).
  5.  
  6. adjacent(鶴見, 神奈川).
  7. adjacent(神奈川, 西).
  8. adjacent(西,).
  9. adjacent(,).
  10. adjacent(, 港南).
  11. adjacent(港南, 磯子).
  12. adjacent(磯子, 金沢).
  13. adjacent(金沢,).
  14. adjacent(, 港南).
  15. adjacent(, 保土ケ谷).
  16. adjacent(保土ケ谷, 西).
  17. adjacent(保土ケ谷,).
  18. adjacent(, 瀬谷).
  19. adjacent(瀬谷,).
  20. adjacent(, 戸塚).
  21. adjacent(戸塚,).
  22. adjacent(都筑, 港北).
  23. adjacent(都筑, 青葉).
  24. adjacent(都筑,).
  25. adjacent(港北, 神奈川).
  26. adjacent(, 青葉).
  27. adjacent(港北, 鶴見).
  28. adjacent(保土ケ谷,).
  29.  
  30. coloring([]).
  31. coloring([-| 残り]) :-
  32. color(),
  33. coloring(残り),
  34. forall(member(-2, 残り),
  35. ((adjacent(,); adjacent(,)) -> 色 \=2 ; true)).
  36.  
  37. print_colors([]).
  38. print_colors([-| 残り]) :-
  39. write(), write(' -> '), write(), nl,
  40. print_colors(残り).
  41.  
  42. main :-
  43. 配置 = [
  44. 鶴見-_, 神奈川-_, 西-_,-_,-_, 港南-_,
  45. 磯子-_, 金沢-_,-_, 保土ケ谷-_,-_, 瀬谷-_,
  46. -_, 戸塚-_, 都筑-_, 港北-_,-_, 青葉-_
  47. ],
  48. coloring(配置),
  49. write('4色で塗り分け可能'), nl,
  50. print_colors(配置).
  51.  
Success #stdin #stdout #stderr 0.03s 7000KB
stdin
main
stdout
Standard output is empty
stderr
ERROR: '$runtoplevel'/0: Undefined procedure: program/0
   Exception: (3) program ? EOF: exit