fork download
  1. % 商品データ
  2. product(item1, 3000, 4.8, 20).
  3. product(item2, 1800, 4.2, 200).
  4. product(item3, 5000, 4.9, 5).
  5. product(item4, 2500, 4.5, 80).
  6.  
  7. % おすすめの定義(評価4.5以上かつレビュー50件以上、または評価4.8以上)
  8. recommended(Item) :-
  9. product(Item, _, Rating, Reviews),
  10. (Rating >= 4.5, Reviews >= 50 ; Rating >= 4.8).
  11.  
  12. % おすすめ商品を一覧表示するためのプログラム
  13. show_recommended :-
  14. write('--- おすすめ商品リスト ---'), nl,
  15. recommended(Item),
  16. product(Item, Price, Rating, Reviews),
  17. format('商品名: ~w (価格: ~w円, 評価: ~w, レビュー数: ~w件)~n', [Item, Price, Rating, Reviews]),
  18. fail. % 全ての商品をチェックするために失敗させてバックトラックさせる
  19. show_recommended :-
  20. nl, write('--- 以上がおすすめ商品です ---'), nl.
Success #stdin #stdout #stderr 0.02s 6928KB
stdin
Standard input is empty
stdout
Standard output is empty
stderr
ERROR: '$runtoplevel'/0: Undefined procedure: program/0
   Exception: (3) program ? EOF: exit