无法在Prolog中定义谓词
我刚刚开始学习无法在Prolog中定义谓词,prolog,Prolog,我刚刚开始学习Prolog,如果这有点幼稚,请原谅我,或者说是太幼稚了。我试图定义这个谓词 | ?- times(M,N,Product) :- Product is M*N. 这给了我这个错误 uncaught exception: error(existence_error(procedure,(:-)/2),top_level/0) 我正在使用GNU Prolog。这里的错误是什么?正如false所说,如果您想在解释器执行期间定义谓词或函数,必须输入解释器的“用户”模式: ['user
Prolog
,如果这有点幼稚,请原谅我,或者说是太幼稚了。我试图定义这个谓词
| ?- times(M,N,Product) :- Product is M*N.
这给了我这个错误
uncaught exception: error(existence_error(procedure,(:-)/2),top_level/0)
我正在使用GNU Prolog。这里的错误是什么?正如false所说,如果您想在解释器执行期间定义谓词或函数,必须输入解释器的“用户”模式:
['user'].
键入谓词后,您只需离开这个“区域”,作为对解释器的确认,即您已经完成了编码,解释器就可以开始将谓词编译为字节码,然后允许您通过函数名访问字节码
要离开“用户”模式,只需按ctrl+d
在swipl和gprolog中测试:
SWI-Prolog version 5.10.4
(GNU Prolog) 1.3.0
问候 查看用户手册8.7动态条款管理,尤其是:asserta/assertz 下一步将帮助您在gprolog中定义新谓词:
资产((乘以(M,N,乘积):-乘积是M*N))。这很奇怪。我用GNU Prolog(通过IDEOne)试过了,没有出现错误。在规则之前输入
[user]。
。@false:您能再详细一点吗?