2016-07-14 26 views
0

返回值我發現在序言一些「功能」返回一些值,比如分/ 2和max/2等,儘管絕大多數只返回true或false。這些被調用或分組不同於布爾值嗎?另外,如何確定他們是否正在返回一個值,而不是通過每個函數的文檔。我可以在函數中找到返回某個值的列表嗎?在序言

+0

謂詞不返回的東西,他們* *統一用變量的值。此外謂詞成功('true')或失敗('false')。 –

+0

max和min怎麼樣? – rnso

回答

1

操作如min,max,log等,具體爲arithmetic functions,與標準謂詞不一樣。他們使用is/2=:=/2等評估標準謂詞不會返回值,甚至沒有真的還是假的。他們成功或失敗。這與返回值不同。作爲函數返回一個值意味着你可以在變量中捕獲這個值,但是沒有從謂詞返回的真/假數據。 Prolog解釋器只是顯示真或假,以便知道它是否成功。一些解釋器可能分別輸出是或者不是真或假。

爲了知道如果給定的期限是謂詞或函數,上面提到的文件是你最好的選擇,因爲它列出了所有有效的算術功能。這一切都在一個地方,所以並不難。函數只能用於數字。如文檔中所述,您還可以使用例如current_arithmetic_function(Head)來確定Head是否爲可評估函數。