0
book('Hps','Pages','twohundred').
book('Lww','Pages','onehundred').
book('Aff','Pages','onehundred').
book('Jin','Pages','onehundred').
book('Hps','Colour','Black'). book('Lww','Colour','Red'). book('Aff','Colour','Red'). book('Jin','Colour','Black').
而且要發現它們是一百頁長的所有書籍的程序,但要排除的書籍,都是黑色的,你將如何去它?
我有以下規則
bookohpnb(X) :- book(Y,_,'onehundred'), book(Y,_,
但我想不出如何完成它的方式,這將排除這本書成果,這是黑色的。
我知道我可以讓程序找到紅色的,但我給出的例子只是一個非常大的程序的一小部分,在更大的程序中有更多的記錄。
我不認爲一個相當有效。如果有幫助,我需要展示一百頁的書籍縮寫('Hps','Lww''Aff''Jin'),並且不是黑色的。因此,查詢「bookohpnb(X)」的第一個結果。將是'Lww' - 打';'而下一個結果將是'Aff'。 –
我的不好,是的,你是對的,這是非常有用的 - 謝謝。 –
你應該用'\ +','\ + C ='Black''來代替'not'。這與'C'='Black''相同。任何方式,最好使用'dif(C,'Black')':參見'dif/2'上的文檔來了解更多。同樣奇怪的是,您將'book/3'的第二個參數作爲一個自由變量:最好說'book(B,'Pages','onehundred'),book(B,'Color',C) ,dif(C,'Black')。' – 2016-01-21 05:50:25