chibi-scheme/lib/srfi/231/base.sld

54 lines
2.1 KiB
Scheme

;;> The base array definitions of SRFI 231, plus some extra internal
;;> bindings.
(define-library (srfi 231 base)
(import (scheme base)
(scheme list)
(scheme vector)
(chibi assert))
(export
;; Miscellaneous Functions
vector-iota
translation? permutation?
;; Intervals
make-interval interval? interval-dimension interval-lb interval-ub
interval-lower-bound interval-upper-bound interval-lower-bounds->list
interval-upper-bounds->list interval-lower-bounds->vector
interval-upper-bounds->vector interval= interval-volume
interval-subset? interval-contains-multi-index? interval-projections
interval-fold-left interval-fold-right
interval-for-each interval-dilate interval-intersect
interval-translate interval-permute
interval-scale interval-cartesian-product
interval-width interval-widths
interval-empty?
;; Indexing
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
;; Storage Classes
make-storage-class storage-class? storage-class-getter
storage-class-setter storage-class-checker storage-class-maker
storage-class-copier storage-class-length storage-class-default
generic-storage-class
storage-class-data? storage-class-data->body
;; Arrays
make-array array? array-domain array-getter array-dimension
mutable-array? array-setter specialized-array-default-safe?
specialized-array-default-mutable? array-empty?
make-specialized-array make-specialized-array-from-data
specialized-array? array-storage-class array-indexer array-body
array-safe? array-coeffs array-adjacent? array-packed?
specialized-array-share array-ref array-set!
%make-specialized %array-setter-set!
specialized-getter specialized-setter
array-freeze!
)
(cond-expand
(chibi
(import (only (chibi) make-immutable!)))
(else
(begin (define-syntax make-immutable! (syntax-rules () ((_ x) #f))))))
(include "base.scm"))