#lang scheme (define (sequence-ref s i) (define-values (more? get) (sequence-generate s)) (let loop ([n i]) (if (more?) (if (zero? n) (get) (begin (get) (loop (sub1 n)))) (error 'sequence-ref "Sequence does not contain ~e elements" i)))) (define (sequence-count s) (define-values (more? get) (sequence-generate s)) (let loop ([i 0]) (if (more?) (begin (get) (loop (add1 i))) i))) (define (sequence->list s) (for/list ([e s]) e)) ; XXX (define (sequenceof c) sequence?) (provide (all-defined-out))