【发布时间】:2018-10-21 22:39:17
【问题描述】:
我正在尝试为另一个列表中的每个 Element 附加列表,但我陷入了无限循环。
?- append_to_list([a, b], [1,2,3], X).
find([], E, []).
find([H|T], E, [[H, E]|Res]) :-
find(T, E, Res).
append_to_list(L, [], []).
append_to_list(L, [H|T], Res) :-
find(L, H, R),
append(Res, R, New),
append_to_list(L, T, New).
我希望这个例子的输出是:
X = [[a,1],[a,2],[a,3],[b,1],[b,2],[b,3]].
当我尝试 trace 查看我做错了什么时,它说它无法退出并在无限循环中重新启动。
为什么无法退出?
【问题讨论】:
-
append_to_list([a], [1,2,3], X)中的数字 1、2 和 3 的用途是什么? -
我只是在这里放了一个随机数的例子,它实际上做了更多的事情。但它仍然进入无限循环,输出相同。
-
不管具体数字是多少,我都看不出列表的重点。
-
@lurker 编辑了问题,使其更易于理解
-
感谢您更新问题。这与您之前询问的结果截然不同。