再帰を使用せずに文字列のリストから単一の文字にアクセスする方法を理解するのに問題がありますが、代わりにバックトラックします。
たとえば、この文字列のリストがあり、これらの文字列の1つ('。''o'、'*')から1文字を返すことができるようにしたいと考えています。私が取り組んでいるプログラムは、それを行と列として扱っています。私のデータベースでは、次のような事実があります。
matrix(["...o....",
".******.",
"...o....",
".*...*..",
"..o..*..",
".....*..",
".o...*..",
"....o..o"].
私は述語を持っています:
get(Row,Col,TheChar) :-
行と列の番号(インデックスは1から始まります)を受け取り、その特定の行と列のエントリ(TheEntry)を返します。
述語の頭が正しく構築されていない可能性があると感じていますが、リスト内の各文字列を再帰せずに文字ごとに調べて返す方法に焦点を当てています。
私はプロローグに不慣れで、これに大きな困難を抱えています。
どんな助けでも大歓迎です!
ありがとうございました!