ashinn / chibi-scheme

Official chibi-scheme repository
Other
1.2k stars 142 forks source link

SRFI 231: interval-cartesian-product fix #983

Closed gambiteer closed 2 months ago

gambiteer commented 2 months ago

Currently we have

> chibi-scheme
> (import (srfi 231))
> (interval-cartesian-product)
ERROR in final-resumer: not enough args
    #<procedure interval-cartesian-product 1+>
    0

A fix:

diff --git a/lib/srfi/231/base.scm b/lib/srfi/231/base.scm
index 27b3a755..2058fbf8 100644
--- a/lib/srfi/231/base.scm
+++ b/lib/srfi/231/base.scm
@@ -247,9 +247,10 @@
                (interval-ub iv)
                scales)))

-(define (interval-cartesian-product iv0 . o)
-  (make-interval (apply vector-append (map interval-lb (cons iv0 o)))
-                 (apply vector-append (map interval-ub (cons iv0 o)))))
+(define (interval-cartesian-product .  o)
+  (assert (every interval? o))
+  (make-interval (apply vector-append (map interval-lb o))
+                 (apply vector-append (map interval-ub o))))

 ;; Storage Classes