n 次元のベクトルにアクセスしたいのですが、どういうわけか (empty?'()) が false を返し続けます。
;; n 次元ベクトルにアクセスする
;; (access-nd vector a-list-of-numbers) -> 要素
;; (access-nd (vector (vector 'x 'y) 'a 'b)) 0 1 ) -> x
(define (access-nd avector . alist)
(cond
((and (not(empty? alist)) (vector? avector))
(vector-ref (access-nd avector (rest alist)) (first alist)))
(else avector)))
助けてください。
編集:修正されたコード
(define (access-nd avector . alist)
(cond
((and (not(empty? alist)) (vector? avector))
(apply access-nd (vector-ref avector (first alist)) (rest alist)))
(else avector)))