私は宿題を解決する必要がありますが、私はPrologについて非常に限られた知識しか持っていません。タスクは次のとおりです。
長さが少なくとも2文字で、最初と最後の文字が同じである文字列の部分文字列をすべて一覧表示できる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)、%そして再帰呼び出しを再度チェックする必要がありますここでは同じ文字があり、次にHのポストディションから次の出現までsub_string()します。 –