random_integer(Lower, Upper, R) :-
var(R),
( (var(Lower) ; var(Upper)) ->
- instantiation_error(random_integer/3)
+ instantiation_error(random_integer/3)
; \+ integer(Lower) ->
- domain_error(integer, Lower, random_integer/3)
+ type_error(integer, Lower, random_integer/3)
; \+ integer(Upper) ->
- domain_error(integer, Upper, random_integer/3)
+ type_error(integer, Upper, random_integer/3)
; Upper > Lower,
random(R0),
R is floor((Upper - Lower) * R0 + Lower)