このディレクトリの索引
http://hibari.2ch.net/test/read.cgi/tech/1294061094/21
#  [1] 授業単元:C言語プログラミング 
#  [2] 問題文(含コード&リンク): http://ime.nu/www.dotup.org/uploda/www.dotup.org1340661.txt 
#  
#  6.外部変数を利用して自分が呼ばれた回数を数えて返す関数times()を作成せよ。

:- assertz(呼ばれた回数(timer1,0)).

'asserta/1,retract/1を利用して自分が呼ばれた回数を数えて返す述語times'(_タイマー名,_自分が呼ばれた回数) :-
        times(_タイマー名,_自分が呼ばれた回数).

times(_タイマー名,_自分が呼ばれた回数) :-
        retract(呼ばれた回数(_タイマー名,_これまでに呼ばれた回数)),
        _自分が呼ばれた回数 is _これまでに呼ばれた回数 + 1,
        asserta(呼ばれた回数(_タイマー名,_自分が呼ばれた回数)).