use new predicates from library(error)

This commit is contained in:
Markus Triska
2020-04-27 17:42:05 +02:00
parent 2b1692a860
commit 8e1ba58551
7 changed files with 23 additions and 33 deletions

View File

@@ -6,6 +6,8 @@
the random seed. This makes everything completely reproducible.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
:- use_module(library(error)).
% succeeds with probability 0.5.
maybe :- '$maybe'.
@@ -22,9 +24,9 @@ random_integer(Lower, Upper, R) :-
( (var(Lower) ; var(Upper)) ->
throw(error(instantiation_error, random_integer/3))
; \+ integer(Lower) ->
throw(error(domain_error(integer, Lower), random_integer/3))
domain_error(integer, Lower, random_integer/3)
; \+ integer(Upper) ->
throw(error(domain_error(integer, Upper), random_integer/3))
domain_error(integer, Upper, random_integer/3)
; Upper > Lower,
random(R0),
R is floor((Upper - Lower) * R0 + Lower)
@@ -47,11 +49,11 @@ rnd_(N, R0, R) :-
set_random(Seed) :-
( nonvar(Seed) ->
( Seed = seed(S) ->
( var(S) -> throw(error(instantiation_error, set_random/1))
( var(S) -> instantiation_error(set_random/1)
; integer(S) -> '$set_seed'(S)
; throw(error(type_error(integer(S), set_random/1)))
; type_error(integer, S, set_random/1)
)
)
; throw(error(instantiation_error, set_random/1))
; instantiation_error(set_random/1)
).