【发布时间】:2013-05-30 23:24:17
【问题描述】:
我正在寻找机会将列表分割成更小的列表,如下所示:
[1,2,3,4] -> [[1,2],[2,3],[3,4]]
[1,2] -> [[1,2]]
等等..
首先,我搜索了一个带有内置谓词的解决方案。但我想不通要和他们一起做..这是对的吗?! 所以我自己写了一个谓词:
slice([],[]).
slice([H1,H2|T], Output) :-
append([H2],T,New),
slice(New, [[H1,H2]|Output]).
但在最后一个迭代步骤中,当 New 仅包含一个元素时,与 [H1,H2|T] 的统一失败..
【问题讨论】:
标签: prolog