如果列表仅包含0和1,则需要通过[1,0,0]的出现来确定是否每次出现[0,1](不一定是立即)。怎么做?
答案 0 :(得分:1)
您可以使用内置和Prolog的搜索功能,而不是定义自动化。
追加/ 3建立3个列表之间的关系。即,第三个列表是前两个的串联。这可以用来轻松回答你的任务:
satisfy(L) :- append(_, [0,1|R], L), append(_, [1,0,0|_], R).
如你所见,append(_, PatternAndRest, L)
搜索 L中的模式并产生其余部分。
但您可能需要编写一个递归谓词来扫描列表以查找模式。我希望你在satisf / 1中看到的语法对你有帮助。