我怎么能用Prolog解决这个问题?

时间:2014-03-19 10:07:10

标签: prolog

我在例如L=[a,b,c,d,e,f]的prolog中有列表,我想将此列表转换为具有此类型L2=[[a,b],[c,d],[e,f]]的新列表,换句话说,我想要转换列表中的每两个连续元素到新名单。

1 个答案:

答案 0 :(得分:3)

普通的Prolog,根据您的要求量身定制:

'convert every two consecutive element'([], []). % base case
'convert every two consecutive element'([A,B|R], [[A,B]|S]) :-
  'convert every two consecutive element'(R, S).

列表长度必须均匀才能成功,否则您需要优化基本情况。