mirror of
https://github.com/ashinn/chibi-scheme.git
synced 2025-05-19 05:39:18 +02:00
Add index-swap, fix assert in array-append
This commit is contained in:
parent
06f0cc0225
commit
27ea774e2e
4 changed files with 10 additions and 4 deletions
|
@ -10,7 +10,7 @@
|
|||
;; Miscellaneous Functions
|
||||
translation? permutation?
|
||||
;; Indexes
|
||||
index-rotate index-first index-last
|
||||
index-rotate index-first index-last index-swap
|
||||
;; Intervals
|
||||
make-interval interval? interval-dimension interval-lower-bound
|
||||
interval-upper-bound interval-lower-bounds->list
|
||||
|
|
|
@ -28,6 +28,12 @@
|
|||
(iota (- n (+ k 1)) (+ k 1))
|
||||
(list k))))
|
||||
|
||||
(define (index-swap n i j)
|
||||
(let ((result (vector-iota n 0)))
|
||||
(vector-set! result i j)
|
||||
(vector-set! result j i)
|
||||
result))
|
||||
|
||||
;; Intervals
|
||||
|
||||
(define-record-type Interval
|
||||
|
|
|
@ -23,7 +23,7 @@
|
|||
interval-width interval-widths
|
||||
interval-empty?
|
||||
;; Indexing
|
||||
index-rotate index-first index-last
|
||||
index-rotate index-first index-last index-swap
|
||||
indexer->coeffs coeffs->indexer default-indexer default-coeffs
|
||||
invert-default-index interval-cursor interval-cursor-next!
|
||||
interval-cursor-next interval-cursor-get interval-fold
|
||||
|
|
|
@ -571,8 +571,8 @@
|
|||
(define (array-append axis arrays . o)
|
||||
(assert (and (exact-integer? axis)
|
||||
(pair? arrays)
|
||||
(< -1 axis (array-dimension (car arrays)))
|
||||
(every array? arrays)))
|
||||
(every array? arrays)
|
||||
(< -1 axis (array-dimension (car arrays)))))
|
||||
(let* ((a (car arrays))
|
||||
(a-domain (array-domain a))
|
||||
(storage (if (pair? o) (car o) generic-storage-class))
|
||||
|
|
Loading…
Add table
Reference in a new issue