Prolog:递增变量
Prolog: incrementing variable
我是学习序言的初学者。我在执行此操作时遇到了一些问题:我想创建一个全局变量并递增该变量。我是这样做的:
assert(X,10).
inc(X,Y):- Y is X+1.
但是我有这个错误:
ERROR: is/2: Arguments are not sufficiently instantiated
一般来说,在 Prolog 中最好完全避免 global variables。但是如果你非常需要它们...
:- dynamic my_counter/1.
my_counter(10).
increment :-
retract(my_counter(C)),
succ(C, C1) /* or C1 is C+1 */,
assertz(my_counter(C1)).
SWI-Prolog 有一个我今天看到的成语:flag/3
来自pl-fcgi介绍,一个用于fastcgi服务器的高性能全局计数器
service_request :-
flag(count, N, N+1), ...
要知道值,可以使用
?- flag(count, C, C).
我是学习序言的初学者。我在执行此操作时遇到了一些问题:我想创建一个全局变量并递增该变量。我是这样做的:
assert(X,10).
inc(X,Y):- Y is X+1.
但是我有这个错误:
ERROR: is/2: Arguments are not sufficiently instantiated
一般来说,在 Prolog 中最好完全避免 global variables。但是如果你非常需要它们...
:- dynamic my_counter/1.
my_counter(10).
increment :-
retract(my_counter(C)),
succ(C, C1) /* or C1 is C+1 */,
assertz(my_counter(C1)).
SWI-Prolog 有一个我今天看到的成语:flag/3
来自pl-fcgi介绍,一个用于fastcgi服务器的高性能全局计数器
service_request :-
flag(count, N, N+1), ...
要知道值,可以使用
?- flag(count, C, C).