2

鉴于我已将以下事实输入事实库。每个sideish有两种成分:

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将确定每个假期所需的成分类型。通过关联每个给定假期的菜肴和配料。

4

1 回答 1

1
ingredientlist(Holiday, Ingredients) :-
   setof(Ingredient,
          Dishes^Dish^ ( meal(Holiday,Dishes),
                         member(Dish, Dishes),
                         ingredient(Dish, Ingredient) ),
         Ingredients).
于 2014-12-01T03:37:22.393 回答