无法在Prolog中定义谓词

One*_*ror 3 prolog

我刚开始学习Prolog,如果这有点天真,或者说很天真,请原谅我.我试图定义这个谓词

| ?- times(M,N,Product) :- Product is M*N.
Run Code Online (Sandbox Code Playgroud)

这给了我这个错误

uncaught exception: error(existence_error(procedure,(:-)/2),top_level/0)
Run Code Online (Sandbox Code Playgroud)

我正在使用GNU Prolog.这里的错是什么?

Rub*_*ens 6

假说,如果你想解释的执行过程中定义一个谓语或功能,则必须通过键入进入翻译的"用户"模式:

['user'].
Run Code Online (Sandbox Code Playgroud)

输入谓词之后,你只需要离开这个"区域",作为解释器你已经完成编码的确认,并且它可以开始将你的谓词编译成字节码 - 你将会是这样的,然后,允许通过您的函数名称访问.

要退出"用户"模式,只需按ctrl + d.

在swipl和gprolog中测试过:

SWI-Prolog version 5.10.4
(GNU Prolog) 1.3.0
Run Code Online (Sandbox Code Playgroud)

问候!