List 如何在prolog中选择一个子列表后再选择另一个子列表

List 如何在prolog中选择一个子列表后再选择另一个子列表,list,prolog,automata,List,Prolog,Automata,对于仅包含0和1的列表,需要确定[0,1]的每一次出现是否都紧跟在[1,0,0]之后(不一定立即)。如何做到这一点?您可以使用内置程序和Prolog的搜索功能,而不是定义automa 追加/3在3个列表之间建立关系。也就是说,第三个列表是前两个列表的串联。这可用于轻松回答您的作业: satisfy(L) :- append(_, [0,1|R], L), append(_, [1,0,0|_], R). 如您所见,append(u,pattern和Rest,L)在L中搜索模式并生成其余的 但您

对于仅包含0和1的列表,需要确定[0,1]的每一次出现是否都紧跟在[1,0,0]之后(不一定立即)。如何做到这一点?

您可以使用内置程序和Prolog的搜索功能,而不是定义automa

追加/3在3个列表之间建立关系。也就是说,第三个列表是前两个列表的串联。这可用于轻松回答您的作业:

satisfy(L) :- append(_, [0,1|R], L), append(_, [1,0,0|_], R).
如您所见,
append(u,pattern和Rest,L)
在L中搜索模式并生成其余的

但您可能需要编写一个递归谓词来扫描列表以查找模式。我希望您在SUPPITE/1中看到的语法将对您有所帮助