[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Chicken-users] (array-strict? (make-array '#() 7)) ; should return #t r
From: |
Terrence Brannon |
Subject: |
[Chicken-users] (array-strict? (make-array '#() 7)) ; should return #t right? |
Date: |
Tue, 4 Sep 2007 20:38:21 -0400 |
(require-extension array-lib)
(array-strict? (make-array '#() 7)) ; should return #t
However, it returns false... it seems to be a strict array to me.
I do need for a 1-dimensional structure created by make-array to be
testable by some predicate for a procedure I have written called
Shape, analagous to the J verb by the same name:
#;47> (array-strict? (Shape '(8) 5))
#f
#;48> (array-strict? (Shape '(1 8) 5))
#t
In J, both of these are arrays. The first is a rank-1 array and the
second is a rank-2 array.
This is the Shape procedure:
(define (Shape dim-list . data)
(let* ([dimension-list (if (list? dim-list) dim-list (list dim-list))]
[prototype '#()]
[dimensions (apply make-array-dimensions dimension-list)]
[cardinality (apply * dimension-list)]
[data-size (lambda () (length data))]
[list-logic (lambda (L)
(cond
((= (data-size) cardinality) data)
((> (data-size) cardinality) (take data cardinality))
((< (data-size) cardinality)
(take (apply circular-list data) cardinality))))]
[data* (if (list? data)
(list-logic data)
(make-list cardinality data))]
[vektor (list->vector data*)])
(apply vector->array vektor prototype dimension-list)))
- [Chicken-users] (array-strict? (make-array '#() 7)) ; should return #t right?,
Terrence Brannon <=