我有谓词计算数字 N 的阶乘,但是当时间超过 1 秒时,它被中断:
factorial( 0, 1 ).
factorial( N, Value ) :-
N > 0,
Prev is N - 1,
factorial( Prev, Prevfact ),
Value is Prevfact * N.
fact(N,V) :-
catch(call_with_time_limit(1, factorial(N,V) ),
time_limit_exceeded,
write('time exceeded!')).
如何在阶乘中断之前获得 V 的最后一个值?
谢谢