このディレクトリの索引
#  
#  述語名は'$call_n_count'である必要はない。 
#  

call_n(_n,P) :-
        call_n_id(_id),
        call(P),
        retract('$call_n_count'(_id,N_1)),
        succ(N_1,N),
        (  N = _n;
           N = _n,!,fail;
           asserta('$call_n_count'(_id,N))).

call_n_id(_id) :-
        _id is random(2147483647),
        \+(catch('$call_n_count'(_id,_),E,fail)),
        asserta('$call_n_count'(_id,0)),!.
call_n_id(_id) :-
        call_n_id(_id).