【发布时间】:2016-04-14 10:51:10
【问题描述】:
我正在为即将到来的序言考试复习一些过去的考试题。
问题来了:
-
(a) 写一个谓词
insert(Xs, Y, Zs),当Zs是获得的列表时成立 通过将Y插入列表Xs。查询如:? - insert([1,2,3], 4, Zs).
应该成功四次并给出以下答案:
Zs = [4, 1, 2, 3]
Zs = [1, 4, 2, 3]
Zs = [1, 2, 4, 3]
Zs = [1, 2, 3, 4].
我有点担心,因为我不知道从哪里开始。任何人都可以提供帮助,因为我需要示例解决方案来练习我的考试。
非常感谢您对此提供任何帮助。
【问题讨论】:
-
insert(Xs, Y, Zs)应该定义当Zs是列表Xs并在某处插入Y时的样子。要定义规则,您需要将其分解为合乎逻辑的情况。您的主要定义将是递归的。但一个简单的基本情况是Z看起来就像Xs以Y作为它的第一个元素 ([Y|Xs])。