我必须解决家庭作业,但我对 Prolog 的了解非常有限。任务如下:
编写一个 Prolog 程序,该程序可以列出字符串的所有子字符串,其长度至少为两个字符,并且第一个和最后一个字符相同。
例如:
?- sameend("teletubbies", R).
R = "telet";
R = "ele";
R = "eletubbie";
R = "etubbie";
R = "bb";
false.
我解决这个问题的方法是,我应该用头/尾遍历字符串并找到与当前相同的下一个字母的索引(它满足最小 2 长度要求)并用sub_string
谓词切割子字符串。