List prolog中的列表操作

List prolog中的列表操作,list,prolog,List,Prolog,给定这样一个列表:[%,a,B,C,%D,E,%],[%,F,G,%,H,I,J,%]]我如何返回[[a,B,C],[D,E],[F,G],[H,I,J]] 我尝试了以下代码: filtertolists([],[]). filtertolists([Head|Tail],Y):- (Head = '%' -> filtertolists(Tail,Y)). 我想从列表列表中获取第一个元素,检查列表的成员是否等于“%”,并开始创建要作为输出的列表,但在获取标题后,如

给定这样一个列表:[%,a,B,C,%D,E,%],[%,F,G,%,H,I,J,%]]我如何返回[[a,B,C],[D,E],[F,G],[H,I,J]]

我尝试了以下代码:

filtertolists([],[]).
filtertolists([Head|Tail],Y):-
     (Head = '%' ->
      filtertolists(Tail,Y)).

我想从列表列表中获取第一个元素,检查列表的成员是否等于“%”,并开始创建要作为输出的列表,但在获取标题后,如何检查其中的每个元素?

我会将任务分为两个任务:

在列表列表上迭代 删除一个列表中的元素 生成的sourceocde如下所示:

filtertolists([],[]).
filtertolists([List|Tail], [FilteredList|FilteredTail]):-
     filterList(List, FilteredList), 
     filtertolists(Tail, FilteredTail).

filterList([], []).
 % your filter code for one list goes here .
filterList(...).
filterList(...).

给定一个输入X=[%,A,B,C,%,D,E,%]需要像[[A,B,C],[D,E]]这样的列表中的输出,是否有方法每次遇到“%”时都创建一个新列表?是的。Zou需要类似“filterListList、CurrentList、ResultList”的东西。