2014-04-12 54 views
1

比較2個數字:定義一個謂詞great,其中需要3個參數 - 我想要比較它們的2個 數字和返回 最大數字的輸出變量。Prolog中最多2個數字

Ex。

?- great(X,3,5). 
X=5. 
在Prolog的語言

+6

你的意思是Prolog的?或者是否有某種「bro」 - Prolog命名爲「brolog」的變體? :-D –

+0

prolog抱歉,我的錯 – user3527224

+0

@Sergey這很有趣。 :D – lurker

回答

1

你真的應該read the documentation。也許甚至讀一good book on the language

  • </2 「小於」
  • >=/2 「大於或等於」
  • =</2 「小於或等於」

對於「等於」,你可以使用:

  • =/2是(roughl Y) 「等於」(unifiable含)
  • =:=/2是算術平等
  • =\=/2是算術不平等

我敢肯定,你可以理出頭緒。

或者,你可避免的Prolog的比較操作完全和簡單地說

gt(X,Y,Z) :- Z is max(X,Y) . 

或使用判別函數選擇所需的值:

gt(X,Y,Z) :- D is sign(X-Y) + 1 , nth0(D,[Y,X,X],Z) .