如何在Prolog中统一术语运算符?
例如,我可以在SWI-Prolog中统一操作数:
?- +(X,Y) = 1 + 2.
X = 1,
Y = 2.
但是如何统一操作员?
?- Op(X,Y) = 1 + 2.
ERROR: Syntax error: Operator expected
我希望Prolog回来
X = 1,
Y = 2,
Op = +.
谢谢。
I can unify operands in SWI-Prolog, for example:
?- +(X,Y) = 1 + 2.
X = 1,
Y = 2.
but how to unify an operator?
?- Op(X,Y) = 1 + 2.
ERROR: Syntax error: Operator expected
I hope Prolog to return
X = 1,
Y = 2,
Op = +.
Thanks.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您统一条款。
+(1,2)
和1 + 2
都是同一术语。您可以使用大学谓词(
= ..
)分解这样的术语:You unify terms. Both
+(1,2)
and1 + 2
are the same term.You may use the univ predicate (
=..
) to decompose a term like this: