2013-11-09 27 views
0

我对Prolog有关的列表列表有问题。问题是关于实现一个Prolog谓词:to_do(ListOfLists,_,Result)。 其中ListOfLists是字符列表的列表,其为a,b,cd。结果必须替代aai,bbi,cxdy序言:列表清单

例如,

?- to_do([[b,c],[a,d]],_,Result). 
    Result = [[bi,x],[ai,y]]. 

?- to_do([[a,a,b],[b,c,d],[c,c,a]],_,Result). 
    Result = [[ai,ai,bi],[bi,x,y],[x,x,ai]]. 

注意,结果也必须是列表的列表。

非常感谢!

+2

和你试过? – RBA

回答

0

我相信这是解决问题的方法:

substitute(a, ai). 
substitute(b, bi). 
substitute(c, x). 
substitute(d, y). 
substitute(In, Out) :- maplist(substitute, In, Out). 

to_do(X, _, Y) :- substitute(X, Y).