dev*_*ium 7 operator-overloading prolog
我用以下代码定义了一个prolog文件:
divisible(X, Y) :-
X mod Y =:= 0.
divisibleBy(X, Y) :-
divisible(X, Y).
op(35,xfx,divisibleBy).
Run Code Online (Sandbox Code Playgroud)
Prolog抱怨说
'$ record_clause'/ 2:无权修改static_procedure`op/3'
我究竟做错了什么?我想定义一个divisibleBy运算符,它允许我编写如下代码:
4 divisibleBy 2
Run Code Online (Sandbox Code Playgroud)
谢谢.
Fre*_*Foo 14
使用
:- op(35,xfx,divisibleBy).
Run Code Online (Sandbox Code Playgroud)
:-告诉Prolog解释器在加载文件时评估下一个术语,即进行谓词调用,而不是将其视为定义(在这种情况下是重新定义op/3).
| 归档时间: |
|
| 查看次数: |
2771 次 |
| 最近记录: |