43 lines
1.2 KiB
Racket
43 lines
1.2 KiB
Racket
#lang scribble/doc
|
|
@(require scribble/base
|
|
scribble/manual
|
|
scribble/eval
|
|
scribblings/reference/mz
|
|
"utils.rkt"
|
|
(for-label unstable/sequence
|
|
racket/contract
|
|
racket/base))
|
|
|
|
@(define the-eval (make-base-eval))
|
|
@(the-eval '(require unstable/sequence))
|
|
|
|
@title[#:tag "sequence"]{Sequences}
|
|
|
|
@defmodule[unstable/sequence]
|
|
|
|
@unstable[@author+email["Sam Tobin-Hochstadt" "samth@ccs.neu.edu"]]
|
|
|
|
|
|
@defproc[(in-syntax [stx syntax?]) sequence?]{
|
|
Produces a sequence equivalent to @racket[(syntax->list lst)].
|
|
@speed[in-syntax "syntax"]
|
|
|
|
@examples[#:eval the-eval
|
|
(for/list ([x (in-syntax #'(1 2 3))])
|
|
x)]}
|
|
|
|
@defproc[(in-pairs [seq sequence?]) sequence?]{
|
|
Produces a sequence equivalent to
|
|
@racket[(in-parallel (sequence-lift car seq) (sequence-lift cdr seq))].
|
|
}
|
|
|
|
@defproc[(in-sequence-forever [seq sequence?] [val any/c]) sequence?]{
|
|
Produces a sequence whose values are the elements of @racket[seq], followed by @racket[val] repeated.
|
|
}
|
|
|
|
@defproc[(sequence-lift [f procedure?] [seq sequence?]) sequence?]{
|
|
Produces the sequence of @racket[f] applied to each element of @racket[seq].
|
|
@examples[#:eval the-eval
|
|
(for/list ([x (sequence-lift add1 (in-range 10))])
|
|
x)]
|
|
} |