root/tags/lgt2212/library/integer.lgt

Revision 365, 0.8 KB (checked in by pmoura, 6 years ago)

Changed "authors" key in info/1 directive to "author".

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
Line 
1
2:- object(integer,
3    extends(number)).
4
5
6    :- info([
7        version is 1.0,
8        author is 'Paulo Moura',
9        date is 2000/7/24,
10        comment is 'Integer data type predicates.']).
11
12
13    :- public(between/3).
14
15    :- mode(between(+integer, +integer, ?integer), zero_or_more).
16
17    :- info(between/3, [
18        comment is 'Returns integers in the interval defined by the two first arguments.',
19        argnames is ['Lower', 'Upper', 'Integer']]).
20
21
22    between(Lower, Upper, Integer) :-
23        integer(Lower),
24        integer(Upper),
25        (var(Integer) ->
26            Lower =< Upper,
27            generate(Lower, Upper, Integer)
28            ;
29            integer(Integer),
30            Lower =< Integer,
31            Integer =< Upper).
32
33
34    generate(Lower, _, Lower).
35
36    generate(Lower, Upper, Integer) :-
37        Lower < Upper,
38        Next is Lower + 1,
39        generate(Next, Upper, Integer).
40
41
42    valid(Integer) :-
43        integer(Integer).
44
45
46:- end_object.
Note: See TracBrowser for help on using the browser.