2014-01-12 36 views
0

如果我有一個項h其是形式 a > ba 其中a和b是常數的(儘管不一定名爲a和b),如何檢查H的形式?Prolog的模式匹配

無論 H == (X > Y) 也不 H =:= (X > Y) 不起作用。

+1

在SWI-Prolog中,我可以做'H =(X> Y)'。你可以嘗試一下嗎? – nhahtdh

+0

@nhahtdh這個答案,我想。 (1> 2)=(X> Y)。 X = 1, Y = 2.' – User

+0

'X =(a> b).'然後'X =(_> _)'將爲真,並且可以用於檢查形式'X> Y' 。你甚至不需要'X'和'Y'(除非你想知道它們的值)。要檢查'X'是否只是一個原子(如'a'),請使用'atom(X)'。 – lurker

回答

1

你所需要的就是統一=/2

H = (X > Y) 

至於你已經試過2層的替代品,他們是不是你想要的:

@Term1 == @Term2

True如果Term1相當於Term2。變量只與共享變量相同。


+Expr1 =:= +Expr2

True如果表達式Expr1計算結果爲數字等於Expr2

說明取自swi-prolog.org文檔,但由於這些是ISO功能,所以ISO-complient實現應該沒有任何區別。