【发布时间】:2018-02-27 02:37:08
【问题描述】:
如何将一个列表构建成一个带有交错子列表的列表? 像 recons([[1,2],[3,4]],X) 会给出 X= [1,3,2,4]? 我一直在尝试几个小时,我的代码总是给我非常奇怪的结果或无限循环, 我的想法是这样的:
recons([[A|R],REST],List):-
recons(R,REST),
append(A,[R|REST],List).
我知道这是完全错误的,但我不知道如何解决这个问题。
【问题讨论】:
-
它总是嵌套两层吗?或者这可以是任意深度吗?
-
另外一个我最近经常要给出的建议:尝试橡皮鸭调试:向你的橡皮鸭解释为什么你认为这种方法应该有效,试着说服你的橡皮鸭.通常你会开始看到问题,经过几次迭代,你就可以想出一个解决方案。
-
可能更深,例如 ([[1,4],[2,5],[3,6]],X) 可能会返回 [1,2,3,4,5 ,6]
标签: list prolog interleave