diff options
author | Mark H Weaver <mhw@netris.org> | 2013-12-20 18:12:37 -0500 |
---|---|---|
committer | Mark H Weaver <mhw@netris.org> | 2014-01-08 21:42:16 -0500 |
commit | 900a897cd31df98df06b84a478b77a7438739b54 (patch) | |
tree | d165b8b39954d1c004780e34974c1ab211754cce /doc/ref | |
parent | f659df44954a7f182361395396c5e0340b08c7dd (diff) | |
download | guile-900a897cd31df98df06b84a478b77a7438739b54.tar.gz |
Implement 'exact-integer?' and 'scm_is_exact_integer'.
* libguile/numbers.c (scm_exact_integer_p, scm_is_exact_integer):
New procedures.
(scm_integer_p): Improve docstring.
* libguile/numbers.h (scm_exact_integer_p, scm_is_exact_integer):
New prototypes.
* doc/ref/api-data.texi (Integers): Add docs.
* test-suite/tests/numbers.test ("exact-integer?"): Add tests.
Diffstat (limited to 'doc/ref')
-rw-r--r-- | doc/ref/api-data.texi | 23 |
1 files changed, 21 insertions, 2 deletions
diff --git a/doc/ref/api-data.texi b/doc/ref/api-data.texi index 05469f765..fda76f1dc 100644 --- a/doc/ref/api-data.texi +++ b/doc/ref/api-data.texi @@ -318,7 +318,8 @@ Scheme integers can be exact and inexact. For example, a number written as @code{3.0} with an explicit decimal-point is inexact, but it is also an integer. The functions @code{integer?} and @code{scm_is_integer} report true for such a number, but the functions -@code{scm_is_signed_integer} and @code{scm_is_unsigned_integer} only +@code{exact-integer?}, @code{scm_is_exact_integer}, +@code{scm_is_signed_integer}, and @code{scm_is_unsigned_integer} only allow exact integers and thus report false. Likewise, the conversion functions like @code{scm_to_signed_integer} only accept exact integers. @@ -333,7 +334,7 @@ will become exact fractions.) @deffn {Scheme Procedure} integer? x @deffnx {C Function} scm_integer_p (x) Return @code{#t} if @var{x} is an exact or inexact integer number, else -@code{#f}. +return @code{#f}. @lisp (integer? 487) @@ -354,6 +355,24 @@ Return @code{#t} if @var{x} is an exact or inexact integer number, else This is equivalent to @code{scm_is_true (scm_integer_p (x))}. @end deftypefn +@deffn {Scheme Procedure} exact-integer? x +@deffnx {C Function} scm_exact_integer_p (x) +Return @code{#t} if @var{x} is an exact integer number, else +return @code{#f}. + +@lisp +(exact-integer? 37) +@result{} #t + +(exact-integer? 3.0) +@result{} #f +@end lisp +@end deffn + +@deftypefn {C Function} int scm_is_exact_integer (SCM x) +This is equivalent to @code{scm_is_true (scm_exact_integer_p (x))}. +@end deftypefn + @defvr {C Type} scm_t_int8 @defvrx {C Type} scm_t_uint8 @defvrx {C Type} scm_t_int16 |