]> Repositorios git - scryer-prolog.git/commitdiff
make better use of can_be in between library
authorMark Thom <[email protected]>
Sun, 24 Feb 2019 22:15:00 +0000 (15:15 -0700)
committerMark Thom <[email protected]>
Sun, 24 Feb 2019 22:15:00 +0000 (15:15 -0700)
src/prolog/lib/between.pl

index 78aaf26f3b6bc8f5965466a3b9be33dda4678d9f..60c2a99aa83812074659ab0e1a675da1930c32e9 100644 (file)
@@ -18,11 +18,10 @@ enumerate_nats(I0, N) :-
     enumerate_nats(I1, N).
 
 gen_nat(N) :-
-    integer(N), !, N >= 0.
-gen_nat(N) :-
-    var(N), !, enumerate_nats(0, N).
-gen_nat(N) :-
-    throw(error(type_error(integer, N), gen_nat/1)).
+    can_be(integer, N),
+    (   var(N) -> enumerate_nats(0, N)
+    ;   true
+    ).
 
 enumerate_ints(I, I).
 enumerate_ints(I0, N) :-
@@ -33,11 +32,10 @@ enumerate_ints(I0, N) :-
     enumerate_ints(I1, N).
 
 gen_int(N) :-
-    integer(N), !.
-gen_int(N) :-
-    var(N), !, enumerate_ints(0, N).
-gen_int(N) :-
-    throw(error(type_error(integer, N), gen_int/1)).
+    can_be(integer, N),
+    (   var(N) -> enumerate_ints(0, N)
+    ;   true
+    ).
 
 repeat_integer(N) :-
     N > 0.