对齐是指谓词包含两个列表,其中三个带有对齐列表。然后检查对齐列表中的每个项目确实是其他两个灯中的一个元素。并且有关于顺序的要求,因此排除了仅检查对齐列表中的每个项目是否是其他两个输入灯的成员。如果我只检查成员,则有效的对齐方式在反转时也是有效的。这当然是错的。
Example:
?- mxAli([4,2,9,8],[1,9,5,2,3,8],A).
A=[2,8] or A=[9,8]
8,2 和 8,9 在这里无效。
当我想到如何实际检查顺序时,我的脑袋又回到了命令式语言编程中。非常感谢任何输入。但是不要直接给出答案,我想要关于我应该阅读的内容的提示。(我需要这么说,因为我在这个站点上得到了很好的帮助,如果我不指出这一点,它就太接近作弊了)。
我的想法是 I 或 prolog 需要在其当前元素的索引之后继续搜索。那会使反向对齐无效吗?
编辑:在两个列表中当前元素的索引之后,它必须继续搜索。如上例,当它找到 2 时,它开始在索引 2 和索引 5 处搜索下一个元素。(第一个元素为 1)