make better use of can_be in between library
This commit is contained in:
@@ -18,11 +18,10 @@ enumerate_nats(I0, N) :-
|
|||||||
enumerate_nats(I1, N).
|
enumerate_nats(I1, N).
|
||||||
|
|
||||||
gen_nat(N) :-
|
gen_nat(N) :-
|
||||||
integer(N), !, N >= 0.
|
can_be(integer, N),
|
||||||
gen_nat(N) :-
|
( var(N) -> enumerate_nats(0, N)
|
||||||
var(N), !, enumerate_nats(0, N).
|
; true
|
||||||
gen_nat(N) :-
|
).
|
||||||
throw(error(type_error(integer, N), gen_nat/1)).
|
|
||||||
|
|
||||||
enumerate_ints(I, I).
|
enumerate_ints(I, I).
|
||||||
enumerate_ints(I0, N) :-
|
enumerate_ints(I0, N) :-
|
||||||
@@ -33,11 +32,10 @@ enumerate_ints(I0, N) :-
|
|||||||
enumerate_ints(I1, N).
|
enumerate_ints(I1, N).
|
||||||
|
|
||||||
gen_int(N) :-
|
gen_int(N) :-
|
||||||
integer(N), !.
|
can_be(integer, N),
|
||||||
gen_int(N) :-
|
( var(N) -> enumerate_ints(0, N)
|
||||||
var(N), !, enumerate_ints(0, N).
|
; true
|
||||||
gen_int(N) :-
|
).
|
||||||
throw(error(type_error(integer, N), gen_int/1)).
|
|
||||||
|
|
||||||
repeat_integer(N) :-
|
repeat_integer(N) :-
|
||||||
N > 0.
|
N > 0.
|
||||||
|
|||||||
Reference in New Issue
Block a user