协助编写Prolog规则

时间:2014-12-01 03:30:46

标签: prolog prolog-setof

鉴于我已将以下事实输入事实库。每一方都有两个要素:

maindish(thanksgiving, turkey). 
sidedish(thanksgiving,pie). 
ingredient(pie,spice).
ingredient(pie,sugar). 

我已经写了以下规则来返回给定假期的菜肴:

meal(Holiday, [F1,F2]) :- maindish(Holiday,F1), sidedish(Holiday,F2).

?- meal(thanksgiving, Foods).

我正在尝试编写一个名为ingredientList的规则,该规则将确定每个假期所需的成分类型。通过关联每个假期的菜肴和配料。

1 个答案:

答案 0 :(得分:0)

ingredientlist(Holiday, Ingredients) :-
   setof(Ingredient,
          Dishes^Dish^ ( meal(Holiday,Dishes),
                         member(Dish, Dishes),
                         ingredient(Dish, Ingredient) ),
         Ingredients).