【发布时间】:2016-09-14 00:10:19
【问题描述】:
我有这个 proLog 环境(烹饪的东西):
first("ajo-blanco").
first("brandada-de-bacalao").
second("empanadilla-de-jamon-y-soja").
second("pollo-al-ajillo").
category("ajo-blanco", aperitivos_tapas).
category("brandada-de-bacalao", aperitivos_tapas).
category("empanadilla-de-jamon-y-soja", aperitivos_tapas).
category("pollo-al-ajillo", carnes_y_aves).
same_category(Primero, Segundo) :-
category(Primero, Type) = category(Segundo, Type).
menu_simple(Primero, Segundo) :-
first(Primero),
second(Segundo),
same_category(Primero, Segundo).
我定义了 4 个板,2 个第一板和 2 个第二板。 menu_simple 对象是一个有 2 个板块的菜单:第一个和 1 个第二个板块,这两个板块不属于同一类别,因此 menu_simple 谓词的 2 个正确组合是:
“ajo-blanco”+“pollo-al-ajillo”、“brandada-de-bacalao”+ “波罗阿吉略”
我的问题是以下谓词:
same_category(Primero, Segundo)
我尝试时总是返回 false。
same_category("pollo-en-salsa", "ajo-blanco").
返回 false(这是正确的,它们没有相同的类别)
same_category("ajo-blanco", "empanadilla-de-jamon-y-soja").
也返回假(这是错误的,它们没有相同的类别)
我确信我错过了一些东西,因为我是 prolog 的新手。任何帮助将不胜感激。
提前致谢。
【问题讨论】: