Prolog,在给定的子列表列表中找到一个项目并返回包含项目(我们正在搜索的项目)的子列表并将其存储在新列表中

时间:2017-04-03 14:41:01

标签: list prolog

%ProLog,Find将采用三个输入

[item], [[a,0,0,1], [b,0,0,0]], StoreItHere 

代码:

find([H|T], [[H|T1]|T2], ShiftData):-                
   append([], T1, ShiftData).     

输出:

find([a],[[a,1,0,0], [b,0,0,0]], StoreItHere).           
StoreItHere = [1,0,0].                       

%%现在,我想迭代一个项目列表来搜索一个子列表中的subsist。

例如。如果输入是:

find([a,b,c,d],
     [[a,1,0,0],[b,0,0,0],[z,1,0,0],[h,0,1,0],[c,1,0,0],[d,1,1,0],
      StoreItHere).

输出应该是:

StoreItHere = [[1,0,0],[0,0,0],[1,0,0],[1,1,0]].

我写的代码给了我假。

代码: -

find([H|T], [[H|T1]|T2], ShiftData):-                
   append([], T1, ShiftData),
   find(T), T2, ShiftData).

0 个答案:

没有答案