1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-05-20 11:40:18 +02:00
guile/module/rnrs
Mark H Weaver 7112615f73 Implement finite?' in core and fix R6RS finite?' and `infinite?'
* libguile/numbers.c (scm_finite_p): Add new predicate `finite?' from
  R6RS to guile core, which returns #t if and only if its argument is
  neither infinite nor a NaN.  Note that this is not the same as (not
  (inf? x)) or (not (infinite? x)), since NaNs are neither finite nor
  infinite.

* test-suite/tests/numbers.test: Add test cases for `finite?'.

* module/rnrs/base.scm: Import `inf?' as `infinite?' instead of
  reimplementing it.  Previously, the R6RS implementation of
  `infinite?' did not detect non-real complex infinities, nor did it
  throw exceptions for non-numbers.  (Note that NaNs _are_ considered
  numbers by scheme, despite their name).

  Import `finite?' instead of reimplementing it.  Previously, the R6RS
  implementation of `finite?' returned #t for both NaNs and non-real
  complex infinities, in violation of R6RS.

* NEWS: Add NEWS entries, and reorganize existing numerics-related
  entries together under one subheading.

* doc/ref/api-data.texi (Real and Rational Numbers): Add docs for
  `finite?' and scm_finite_p.
2011-01-28 12:21:14 +01:00
..
arithmetic Several fixes to R6RS libraries 2010-08-28 10:16:30 -07:00
io implement port-eof? 2011-01-21 08:27:08 +01:00
records Some tweaks to the R6RS support 2010-11-25 23:04:12 +01:00
base.scm Implement finite?' in core and fix R6RS finite?' and `infinite?' 2011-01-28 12:21:14 +01:00
bytevectors.scm add #:version (6) to rnrs bytevectors and ports 2010-06-02 22:19:40 +02:00
conditions.scm Some tweaks to the R6RS support 2010-11-25 23:04:12 +01:00
control.scm rnrs control only depends on (guile) 2010-12-10 18:04:02 +01:00
enums.scm Enumeration set universe comparisons should be done with `equal?' 2010-11-21 15:35:44 -05:00
eval.scm remove encoding of versions into the file system (for now?) 2010-06-16 22:20:28 +02:00
exceptions.scm Several fixes to R6RS libraries 2010-08-28 10:16:30 -07:00
files.scm Reorganize the R6RS I/O condition types 2010-11-24 23:04:24 +01:00
hashtables.scm Fix argument passing for external hash functions in `(rnrs hashtables)'. 2010-07-14 01:16:19 -04:00
lists.scm Explicit definitions for memp' and assp' in `(rnrs list)'; the predicate 2010-08-08 20:23:14 -04:00
mutable-pairs.scm fix ^L typo 2010-06-19 14:45:03 +02:00
mutable-strings.scm typo in mutable-strings 2010-06-19 15:40:25 +02:00
programs.scm remove encoding of versions into the file system (for now?) 2010-06-16 22:20:28 +02:00
r5rs.scm remove encoding of versions into the file system (for now?) 2010-06-16 22:20:28 +02:00
sorting.scm remove encoding of versions into the file system (for now?) 2010-06-16 22:20:28 +02:00
syntax-case.scm Fix make-variable-transformer export 2010-09-19 12:15:37 +02:00
unicode.scm remove encoding of versions into the file system (for now?) 2010-06-16 22:20:28 +02:00