2013-07-19 23 views
0

我有一个列表:名单转型

L = [1,2,3,4,5,6,7,8] 

我想将其改造成这样:

L= [ex(1,2),ex(3,4),ex(5,6),ex(7,8)] 

我怎样才能有效地做到这一点?

[编辑补充:] 这是我到目前为止有:

convert([] , S) . 
convert([A,B|Rest] , S) :- 
    S is (ex(A,B) | Rest) , 
    convert(Rest) 
    . 
+0

我是初学者 我失去了一个小时的努力得到它 这是我的旧代码 转换([],S)。 ([A,B | Rest],S): - S是(ex(A,B)| Rest),转换(Rest)。 – Giuspex

+0

'is/2'只是为了减少算术例外。你在正确的轨道上,你只需要将'ex(A,B)| Rest'移动到头部并使用正确的列表符号。下次带上你的代码,我会少一些讽刺意味。 –

+0

我会记住它:)再次感谢 – Giuspex

回答

1

天哪,你尝试过什么呢?

convert([], []). 
convert([X,Y|R], [ex(X,Y)|S]) :- convert(R, S). 

告诉你的教授我说“嗨”。