【发布时间】:2015-03-23 01:24:49
【问题描述】:
我正在尝试将 1 或 2 添加到 SWI-Prolog 中列表中的数字。
我已经设法将 1 或 2 添加到列表的头部,但是我在添加到列表尾部的每个元素上时遇到了困难。我不想在不同的时间同时向每个元素添加 1 或 2。 IE。如果我的输入是 添加([2,3,4],X)。
我希望 X 的可能性如下:
X = [3,3,4]
X = [4,3,4]
X = [2,4,4]
X = [2,5,4]
X = [2,3,5]
X = [2,3,6]
我目前的代码是:
add([],[]).
add([H1|T1],[H2|T2]) :-
is(H2,+(H1,1)), T1=T2;
is(H2,+(H1,2)), T1=T2.
显然这只会将 1 或 2 添加到列表的头部而不是尾部。因此,有人知道我如何将 1 或 2 添加到列表尾部的元素上吗?
【问题讨论】:
-
只是好奇,你为什么在中缀操作中使用前缀符号?
-
老实说,我是 prolog 的新手,这种方式有点道理。我确定我的编码方式不是最好的方式哈哈