我无法弄清楚如何在不使用递归而是回溯的情况下从字符串列表中访问单个字符。
例如,我有这个字符串列表,我希望能够从这些字符串之一返回单个字符('。''o','*')。我正在处理的程序将其视为行和列。这是我的数据库中的一个事实,如下所示:
matrix(["...o....",
".******.",
"...o....",
".*...*..",
"..o..*..",
".....*..",
".o...*..",
"....o..o"].
我有谓词:
get(Row,Col,TheChar) :-
它采用行号和列号(索引从 1 开始)并返回该特定行和列的条目 (TheEntry)。
我有一种感觉,我的谓词头可能没有正确构建,但我真的更专注于如何逐个字符地遍历列表中的每个字符串而不递归并返回它。
我是 prolog 的新手,对此我有很大的困难。
任何帮助将不胜感激!
谢谢!