1:- module(canny_situations_debugging, [print_situation_history_lengths/0]). 2
3:- use_module(situations). 4
5listen :-
6 unlisten,
7 debug(situation),
8 listen(situation(A), situation([A])),
9 listen(situation(A, B), situation([A, B])),
10 listen(situation(A, B, C), situation([A, B, C])).
11
12unlisten :-
13 context_module(M),
14 unlisten(M),
15 nodebug(situation).
16
17situation([Situation, was(Was, _)]) :-
18 !,
19 debug(situation, 'situation ~q WAS ~q', [Situation, Was]).
20situation([Situation, was(Was, _), now(Now, _)]) :-
21 !,
22 debug(situation, 'situation ~q WAS ~q NOW ~q', [Situation, Was, Now]).
23situation([Situation, now(Now, _)]) :-
24 debug(situation, 'situation ~q NOW ~q', [Situation, Now]).
25
26:- initialization listen. 27
28:- use_module(library(print/table)).
38print_situation_history_lengths :-
39 findall((Module:Situation)-Length,
40 ( situation_property(Module:Situation, history(History)),
41 length(History, Length)
42 ), Situations),
43 convlist([First-Second, First-Second]>>(Second > 1), Situations, Filtered),
44 sort(2, @>=, Filtered, Sorted),
45 print_table(member(_-_, Sorted))