首页 > 解决方案 > GNU Prolog:断言列表是根据另一个列表排序的

问题描述

我有两个整数列表XsYs。我想使用 GNU 断言以下内容:

对于i,j使得Xs [ i ]= Xs [ j ],i < j意味着Ys [ i ]< Ys [ j ]。

任何帮助,将不胜感激!

注意:这样的断言是可能的,因为Ys是由完全不同的整数组成的。

标签: prolog

解决方案


neg_ass(Xs, Ys) :-
    nth0(I, Xs, X),
    nth0(J, Xs, X),
    I < J,
    nth0(I, Ys, YI),
    nth0(J, Ys, YJ),
    YI >= YJ.
    
assertion(Xs, Ys) :-
   \+neg_ass(Xs, Ys).

推荐阅读