我有一套排名顺序的公司。我希望我的规则能够检查指定列表中的公司是否按排名顺序排列,以及规则是否重复,直到列表中的所有公司都已经过检查。如何制作检查公司排名的递归列表?
目前,我有以下几点:
isOrder([]).
isOrder([COM1,COM2|T]) :-
rank(COM1,D), rank(COM2,E),
D<E,
print("in order"),
isOrder([COM2|T]).
然而,这似乎并没有工作。有时,递归会一直持续下去,而不会结束,有时候递归根本不起作用。这是我改变代码以尝试获得正确答案的时候。
任何人都可以帮助我吗?我刚开始使用Prolog,我的理解受到严重限制。任何帮助将不胜感激。
不仅为空单的条款“不伤害”,它匹配(逻辑)的真理,一个空列表(平凡)订购。 – 2011-01-09 18:49:40