English 中文(简体)
我怎样做一个检查公司排名的补选名单?
原标题:How do I make a recursive list that checks company rankings?

我有一套排名顺序的公司。 我想我的规则是检查某一具体名单上的公司是否处于排名,以及是否在名单上的所有公司都受到检查之前再发生。

目前,我有:

isOrder([]).
isOrder([COM1,COM2|T]) :-
    rank(COM1,D), rank(COM2,E),
    D<E,
    print("in order"),
    isOrder([COM2|T]).

然而,这似乎并不可行。 有时,重新入侵持续不停,有时再入侵根本就不起作用。 这正是我改变法典以尝试并获得正确答案的时候。

谁能帮助我? 我刚刚开始道歉,我对此的理解严重有限。 任何帮助都将受到高度赞赏。

问题回答

问题在于,贵方案没有单项清单:第一例处理空档清单,而第二例只与两个或两个以上内容相符。

有必要增加一项条款。

isOrder([_]).

在道歉中,必须提出正确的“基地”案件,以进行再入侵,并使重新入侵的规则正确。

Here I think you want to change the base case from isOrder([ ]) to isOrder([_]), or maybe to have both of these.

您现在认为,第一个条款将回到我猜测的空洞清单中去。 但是,第二条款永远不会把非豁免名单减少到空洞。 它只适用于至少有两个项目(附件)的清单,并将这一案件减少到至少有一个项目的清单上。

因此,增加另一个条款是Order([_]),它说,如果名单只有一个项目,你就会成功,让我们知道它如何发挥作用!





相关问题
Recursive same-table query in SQL Server 2008

I have the following table in a SQL Server 2008 database: Id Name ParentFolder -- ---- ------------ 1 Europe NULL 2 Asia NULL 3 Germany 1 4 UK 1 5 China ...

Finding a class within list

I have a class (Node) which has a property of SubNodes which is a List of the Node class I have a list of Nodes (of which each Node may or may not have a list of SubNodes within itself) I need to be ...

Selecting records during recursive stored procedure

I ve got a content management system that contains a hierarchical structure of categories, with sub-categories subject to different ordering options at each level. Currently, that s retrieved by a (...

热门标签