我堅持了這個問題...如何打印所有的事實?
isAt(keys, room3).
isAt(book, room3).
isAt(keys, room6).
isAt(keys, room4).
目前,ROOM3有按鍵和書籍。 我想打印鍵和書。 我試過這段代碼,顯然只打印一個。 (只是鍵)
look :- isIn(Location),
write('You are in '),
write(Location),
nl,
items_inroom(Location),
nl.
items_inroom(Location) :-
isIn(Location),
isAt(Item, Location),
write('Available Item(s):'),
write(Item),
nl.
items_inroom(_) :-
write('Available Item(s): None'),
nl.
items_inroom是試圖打印所有這些事實的代碼。 我該如何解決這個問題? 任何幫助將是偉大的!謝謝。
理想情況下,你會想用'bagof/3'或'SETOF/3',而不是'findall'(因爲他們失敗,如果沒有解決,不踐踏的選擇點是'findall'的方式做)。 – 2015-06-22 11:20:28
@Boris你是對的。我的主要目的是清楚地分離*數據處理*和*用戶界面*。 – dlask
謝謝你的幫助!有用。 @dlask – drunktiger