logo
TurboProlog / Документация / TOM_1

Пример использования директивы shorttrace

/* Программа CH10EX03.PRO */

shorttrace write_list, assert_fact

domains

list = symbol*

database

owns (symbol,symbol)

predicates

assert_facts

gather_goods (symbol)

write_list(list)

clauses

assert_facts:-

assert ( owns(micki,dog) ),

assert ( owns(micki,car) ),

assert ( owns(micki,dress) ),

assert ( owns(eloise,car) ),

assert ( owns(claudio,tennis_racket) ),

assert ( owns(claudio,sneakers) ),

assert ( owns(kenny,boots) ).

gather_goods (Who) :-

findall (Goods,owns (Who,Goods),Goods_list),

write (Who,"owns:\n"),

write_list (Goods_list).

write_list ([]) :- !.

write_list ([H|T]) :-

write (H,"\n"),write_list (T).

goal

assert_facts,

gather_goods (micki),

write ("That's all!\n").