我希望能够为prolog中的is
运算符创建一个符号别名,也可以与pack func一起使用。到目前为止,我有这个:
:- use_module(library(func)).
:- op(50, xfy, [$]).
:- op(700, xfx, [#]).
#(X, Y) :- is(Y, X).
我可以运行以下查询:
?- 2*10+5 # X.
但是不能运行像:
?- write(#$2*10+5).
这给了我一个语法错误。
如何让#
和$
一起工作?
答案 0 :(得分:3)
($)/2
和(#)/2
都是二进制运算符:
:- op(50, xfy, [$]).
:- op(700, xfx, [#]).
因此,#$2*10+5
必须给出语法错误。 #($(2*10+5))
OTOH工作正常。