Prolog 如何";写一个谓词,返回一个与literal相反的;在序言中?
如何编写一个谓词,该谓词将返回Prolog中与文本相反的结果,以便在执行以下查询时得到以下答案Prolog 如何";写一个谓词,返回一个与literal相反的;在序言中?,prolog,Prolog,如何编写一个谓词,该谓词将返回Prolog中与文本相反的结果,以便在执行以下查询时得到以下答案 ?- opposite(+a,L). L = -a. ?- opposite(-a,L). L = +a. 这很简单 opposite(+(X),-(X)). opposite(-(X),+(X)). 因为+或-不是常数(原子)a的一部分,而是它前面的运算符(因此-a实际上是一个非运算符表达式-(a))。因此,我们只需要捕获X中运算符前面的任何内容,并说L是相同X前面的相反运算符 因此: ?- o
?- opposite(+a,L).
L = -a.
?- opposite(-a,L).
L = +a.
这很简单
opposite(+(X),-(X)).
opposite(-(X),+(X)).
因为+
或-
不是常数(原子)a
的一部分,而是它前面的运算符(因此-a
实际上是一个非运算符表达式-(a)
)。因此,我们只需要捕获X
中运算符前面的任何内容,并说L
是相同X
前面的相反运算符
因此:
?- opposite(-a,X).
X = +a.
?- opposite(+a,X).
X = -a.
这很简单
opposite(+(X),-(X)).
opposite(-(X),+(X)).
因为+
或-
不是常数(原子)a
的一部分,而是它前面的运算符(因此-a
实际上是一个非运算符表达式-(a)
)。因此,我们只需要捕获X
中运算符前面的任何内容,并说L
是相同X
前面的相反运算符
因此:
?- opposite(-a,X).
X = +a.
?- opposite(+a,X).
X = -a.