Я застрял на эту проблему ...Как распечатать все факты?
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'). –
@Boris Вы правы. Моей главной целью было четко разделить * обработку данных * и * пользовательский интерфейс *. – dlask
Благодарим за помощь! оно работает. @dlask – drunktiger