「文字列」のすべての「部分文字列」をリストすることができるPrologプログラムを作成するタスクを受け取りました。 2文字。例えば末尾に 'a'文字を含むすべての部分文字列
:[|テールヘッド]と再帰的に呼び出す
?- avegu("baka", R).
R = "ba";
R = "baka";
R = "aka";
R = "ka";
false.
私の考えは、私は与えられた文字リスト(文字列)を分割しなければならないということです。 Headが 'a'のとき、反復処理した部分文字列を返し、リストの最後までこれを続けます。私はこのアイデアをどのように実装するのか分かりません。
SOはコード作成サービスではないため、この質問を議論の対象外としています。 –
SWI Prologの文字列処理の述語ライブラリを簡単に読んでください。具体的には、それを文字のリストに分解する述語があります。始める方法をあなたに知らせるために何かを見つけるべきでしょう。また、頭が「a」のときに終了するのではなく、リストの最後の文字が「a」のときに終了することをお勧めします。 – lurker
「avegu」とは何ですか? – false