list - Prolog,列表中 Y 之前的 X

标签 list prolog

我无法理解 prolog,我必须找出列表中 X 是否在 Y 之前。

所以我有一个空列表的基本情况

before(X, Y, [ ]).

现在我知道我想检查 List 中 X 的索引和 Y 的索引,如果 indexX < indexY我想获得成功。

有人可以解释一个简单的方法吗?

最佳答案

您可以使用 append/3找到 X 和它后面的剩余列表,然后找到 Y。

before(X, Y, L):-
  append(_, [X|Tail], L),
  append(_, [Y|_], Tail).

关于list - Prolog,列表中 Y 之前的 X,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33633942/

相关文章:

java - 检查所有订单的运行时间是多少?

python - 为什么我使用这样的for循环,但仍然收到IndexError?

prolog - 如何在Prolog中应用通用量词?

prolog - 替代 SICStus Prolog FFI SP_define_c_predicate()

python - 在 python 中,我如何获取列表中出现次数最多的内容,然后按这种方式排序?

python - 返回列表的所有 "positions"

.net - 从字符串数组中删除项目

Prolog:在学生的答案和成绩已知的情况下确定多项选择题测试的答案

prolog - 如何编写使用 integer/1 查找数字的规则?

list - 以 'raw' ./2 格式显示列表