Выражение (define v #(1 2 3))
является сокращением для создания нового вектора, в стандартной схеме это эквивалентно следующему:
(define v (list->vector '(1 2 3)))
Или это:
(define v (make-vector 3))
(vector-set! v 0 1)
(vector-set! v 1 2)
(vector-set! v 2 3)
После того, как вектор создается (с помощью любого из указанных процедур), правильный способ доступа к элементу в векторе - это вызов процедуры vector-ref
- очевидно, потому что это вектор , а не список элементов:
(vector-ref v 0)
В предыдущем выражении, v
вектор и 0
индекс которого элемент мы хотим получить. Взгляните на documentation для более подробного объяснения описанных выше процедур.
Попробуйте 'vector-ref' ... (например, http://people.csail.mit.edu/jaffer/r5rs_8.html) – Dirk