我的第一个prolog微型程序没有';行不通
我浏览了Prolog,这是我第一次尝试编写它:它直接在我的第一个查询中出现bug。(在下面的例子中,我要求输入单词('test')) 我的意思是说:我的第一个prolog微型程序没有';行不通,prolog,Prolog,我浏览了Prolog,这是我第一次尝试编写它:它直接在我的第一个查询中出现bug。(在下面的例子中,我要求输入单词('test')) 我的意思是说: word/1 别名/2 别名是可交换的 如果一个变量是另一个变量的别名,那么它就是一个单词 A、 C和D是单词 B是A的别名 这是我列出清单时的知识库。在SWI Prolog控制台中 ?- listing. word(A) :- alias(A, B). word('A'). word('C'). word('D'). alias(A
- word/1
- 别名/2
- 别名是可交换的
- 如果一个变量是另一个变量的别名,那么它就是一个单词
- A、 C和D是单词
- B是A的别名
?- listing.
word(A) :-
alias(A, B).
word('A').
word('C').
word('D').
alias(A, B) :-
alias(B, A).
alias('A', 'B').
Yes
3 ?- word('test').
ERROR: Out of local stack
Exception: (59,743) alias(_L147, test) ?
知道我的knwoledge基地出了什么问题吗
alias(A, B) :-
alias(B, A).
alias('A', 'B').
这是一个无限循环。
例如,如果调用别名(2,4)
,则跟踪如下:
alias(2,4)
alias(4,2)
alias(2,4)
alias(4,2)
alias(2,4)
alias(4,2)
alias(2,4)
alias(4,2)
....
这是一个无限循环。
例如,如果调用别名(2,4)
,则跟踪如下:
alias(2,4)
alias(4,2)
alias(2,4)
alias(4,2)
alias(2,4)
alias(4,2)
alias(2,4)
alias(4,2)
....
你有一个左递归问题。
请看第133页:您有一个左递归问题。
请看第133页:你真是太好了。正是我所需要的。你真好。正是我需要的。