prolog - GNU Prolog:断言列表是根据另一个列表排序的
问题描述
我有两个整数列表Xs和Ys。我想使用 GNU 断言以下内容:
对于i,j使得Xs [ i ]= Xs [ j ],i < j意味着Ys [ i ]< Ys [ j ]。
任何帮助,将不胜感激!
注意:这样的断言是可能的,因为Ys是由完全不同的整数组成的。
解决方案
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).
推荐阅读
- anaconda - 通过 conda 安装软件包的“conda install anaconda”和“conda install conda-forge”两种方法有什么区别?
- python - 未找到“结果”的反向。“结果”不是有效的视图函数或模式名称
- vb.net - 具有多个上下文的重复表类的问题
- rust - 如何让结构拥有 chrono::format::Item?
- python - 如何在多列上使用 OneHotEncoder 编码?
- c# - 在 c# 中用两个 '&' 从 uri 中检索一个参数值
- reactjs - 响应式和拆分式布局
- visual-studio - 如何让 Visual Studio 编辑器在删除时将一段文本视为原子段?
- java - 将数组转换为列表,然后转换为映射
- java - 黄瓜无法将列表传递给对象