我無法弄清楚如何從字符串列表中訪問單個字符而不使用遞歸,而是回溯。Prolog - 從列表中獲取元素
例如我有這個字符串列表,我希望能夠從這些字符串之一返回單個字符('。''o','*')。我正在處理的程序將其視爲行和列。這是我的數據庫中的事實是這樣的:
matrix(["...o....",
".******.",
"...o....",
".*...*..",
"..o..*..",
".....*..",
".o...*..",
"....o..o"].
我有謂:
get(Row,Col,TheChar) :-
,需要一個行和列數(用從1開始的索引),並返回條目( TheEntry)在特定的行和列。
我有一種感覺,我的謂詞頭可能無法正確構建,但我真的更關注如何通過字符逐個字符串地瀏覽每個字符串而無需遞歸併返回它。
我是新來的prolog和我有這個主要困難。
任何幫助都將不勝感激!
謝謝!
你能解釋一下你的意思嗎?「通過列表中的每個字符串按字符而不遞歸」?如果你想遍歷一串不確定的長度,你將無法做到這一點,沒有某種類型的遞歸。只有當你知道字符串的長度時,你纔可以像寫n個子句(如果length = n)來訪問單個字符。 – twinterer