是否可以在生产规则中引用事实?
Is it possible to reference facts in production rules?
假设我有一个看起来像这样的数据库:
regular_player('Xi').
regular_player('Doyle').
expert_player('Houdini').
expert_player('Gandhi').
% don't allow expert players to be paired together
start --> good_pair.
good_pair --> (player, expert) ; (expert, player) ; (player, player).
player --> ['Xi'] ; ['Doyle'].
expert --> ['Houdini'] ; ['Gandhi'].
是否可以从生产规则中引用事实来消除我这里的重复。
您可以删除事实并改用 player
和 expert
规则。
或者,定义
player --> [P], { regular_player(P) }.
expert --> [E], { expert_player(E) }.
至于哪种方法合适取决于应用程序。
假设我有一个看起来像这样的数据库:
regular_player('Xi').
regular_player('Doyle').
expert_player('Houdini').
expert_player('Gandhi').
% don't allow expert players to be paired together
start --> good_pair.
good_pair --> (player, expert) ; (expert, player) ; (player, player).
player --> ['Xi'] ; ['Doyle'].
expert --> ['Houdini'] ; ['Gandhi'].
是否可以从生产规则中引用事实来消除我这里的重复。
您可以删除事实并改用 player
和 expert
规则。
或者,定义
player --> [P], { regular_player(P) }.
expert --> [E], { expert_player(E) }.
至于哪种方法合适取决于应用程序。