2016-03-25 18 views
0

是否可以使用回縮的返回值?如何在prolog中使用回退布爾值?

我只是想讓功能打印出來的單詞,而不是布爾值, 所以我嘗試比較縮進值來打印語句,但它似乎不工作。

+0

你有沒有想要做什麼的例子? – SQB

+0

請顯示您的代碼,您要做什麼。 – lurker

回答

0

謂詞retract/1可以成功或失敗,就像任何其他謂詞一樣。


:- assert(a). 

test :- 
    retract(a), 
    writeln('a used to be true, but not any more.'), !. 

test :- 
    writeln('a was false'). 

在上面的例子中,評價test.時,retract(a)成功,所以writeln('...')進行評價時,其總是成功。
之後,一切,所以我們不能回溯到第二個條款。


%:- assert(a). 

test :- 
    retract(a), 
    writeln('a used to be true, but not any more.'), !. 

test :- 
    writeln('a was false'). 

在這個例子中,與assert(a)被註釋掉,retract(a)失敗,所以我們得到的test/0第二條款,通過寫「一個是假的」成功。

+0

謝謝。我只是想知道它是如何工作的。 – Hansel

+0

很高興幫助。如果它對你有幫助,不要忘記接受答案(你可以通過點擊旁邊的複選標記來做到這一點)。 – SQB