diff options
author | Mark H Weaver <mhw@netris.org> | 2013-07-16 03:33:02 -0400 |
---|---|---|
committer | Mark H Weaver <mhw@netris.org> | 2013-07-16 03:55:06 -0400 |
commit | 62460767e133b4516c30920a4ba705889fb99f18 (patch) | |
tree | 7494550e39d54c490d7a57fea56a8de4d9d03887 /module | |
parent | 284859c2f9b7072dd0bc1215d43663bb87858025 (diff) | |
download | guile-62460767e133b4516c30920a4ba705889fb99f18.tar.gz |
Allow fl+ and fl* to accept zero arguments.
Fixes <http://bugs.gnu.org/14869>.
Reported by Göran Weinholt <goran@weinholt.se>.
* module/rnrs/arithmetic/flonums.scm (fl+, fl*): Accept zero arguments.
* test-suite/tests/r6rs-arithmetic-flonums.test (fl+, fl*): Add tests.
Diffstat (limited to 'module')
-rw-r--r-- | module/rnrs/arithmetic/flonums.scm | 14 |
1 files changed, 6 insertions, 8 deletions
diff --git a/module/rnrs/arithmetic/flonums.scm b/module/rnrs/arithmetic/flonums.scm index b65c294b5..558b0afd0 100644 --- a/module/rnrs/arithmetic/flonums.scm +++ b/module/rnrs/arithmetic/flonums.scm @@ -103,15 +103,13 @@ (apply assert-flonum flargs) (apply min flargs))) - (define (fl+ fl1 . args) - (let ((flargs (cons fl1 args))) - (apply assert-flonum flargs) - (apply + flargs))) + (define (fl+ . args) + (apply assert-flonum args) + (if (null? args) 0.0 (apply + args))) - (define (fl* fl1 . args) - (let ((flargs (cons fl1 args))) - (apply assert-flonum flargs) - (apply * flargs))) + (define (fl* . args) + (apply assert-flonum args) + (if (null? args) 1.0 (apply * args))) (define (fl- fl1 . args) (let ((flargs (cons fl1 args))) |