On this page:
in-syntax
in-pairs
in-sequence-forever
sequence-lift
in-slice
Version: 5.2.1

23 Sequences

Sam Tobin-Hochstadt <samth@ccs.neu.edu>

This library is unstable; compatibility will not be maintained. See Unstable: May Change Without Warning for more information.

 (require unstable/sequence)

(in-syntax stx)  sequence?
  stx : syntax?
Produces a sequence equivalent to (syntax->list lst).
An in-syntax application can provide better performance for syntax iteration when it appears directly in a for clause.

Example:

> (for/list ([x (in-syntax #'(1 2 3))])
    x)

'(#<syntax:2:0 1> #<syntax:2:0 2> #<syntax:2:0 3>)

(in-pairs seq)  sequence?
  seq : sequence?
Produces a sequence equivalent to (in-parallel (sequence-lift car seq) (sequence-lift cdr seq)).

(in-sequence-forever seq val)  sequence?
  seq : sequence?
  val : any/c
Produces a sequence whose values are the elements of seq, followed by val repeated.

(sequence-lift f seq)  sequence?
  f : procedure?
  seq : sequence?
Produces the sequence of f applied to each element of seq.

Example:

> (for/list ([x (sequence-lift add1 (in-range 10))])
    x)

'(1 2 3 4 5 6 7 8 9 10)

The subsequent bindings were added by David Vanderson.

(in-slice length seq)  sequence?
  length : exact-positive-integer?
  seq : sequence?
Returns a sequence where each element is a list with length elements from the given sequence.

Example:

> (for/list ([e (in-slice 3 (in-range 8))]) e)

'((0 1 2) (3 4 5) (6 7))