我必須解決功課,但我對Prolog的知識非常有限。任務如下:
編寫一個Prolog程序,它可以列出一個字符串的所有子字符串,其長度至少爲兩個字符,第一個和最後一個字符相同。所有具有相同開頭和結尾的子字符串
例如:
?- sameend("teletubbies", R).
R = "telet";
R = "ele";
R = "eletubbie";
R = "etubbie";
R = "bb";
false.
我這個問題的方法是,我應該遍歷頭/尾的字符串,並尋找下一個字母的指數,這是與當前(它滿足最小2長度要求)並用sub_string
謂詞剪切子字符串。
你能告訴你目前的做法? –
這只是一個想法,但在代碼中,它可能是這樣的: sameend([H | T],R): - sameend([T],R),%,並且應該再次遞歸調用以檢查其中相同的字符是然後sub_string()從H的郵件到它的下一個發生。 –