move sequence/c into the part of the docs for racket/sequence
This commit is contained in:
parent
30610babe3
commit
0c2ca96ad2
|
@ -146,7 +146,7 @@ example, a hash table generates two values---a key and its value---for
|
||||||
each element in the sequence.
|
each element in the sequence.
|
||||||
|
|
||||||
@; ----------------------------------------------------------------------
|
@; ----------------------------------------------------------------------
|
||||||
@subsection{Sequence Predicate and Contract}
|
@subsection{Sequence Predicate and Constructors}
|
||||||
|
|
||||||
@defproc[(sequence? [v any/c]) boolean?]{
|
@defproc[(sequence? [v any/c]) boolean?]{
|
||||||
Returns @racket[#t] if @racket[v] can be used as a @tech{sequence},
|
Returns @racket[#t] if @racket[v] can be used as a @tech{sequence},
|
||||||
|
@ -158,46 +158,6 @@ each element in the sequence.
|
||||||
(sequence? "word")
|
(sequence? "word")
|
||||||
(sequence? #\x)]}
|
(sequence? #\x)]}
|
||||||
|
|
||||||
@defproc[(sequence/c [#:min-count min-count (or/c #f exact-nonnegative-integer?) #f]
|
|
||||||
[elem/c contract?] ...)
|
|
||||||
contract?]{
|
|
||||||
|
|
||||||
Wraps a @tech{sequence},
|
|
||||||
obligating it to produce as many values as there are @racket[elem/c] contracts,
|
|
||||||
and obligating each value to satisfy the corresponding @racket[elem/c]. The
|
|
||||||
result is not guaranteed to be the same kind of sequence as the original value;
|
|
||||||
for instance, a wrapped list is not guaranteed to satisfy @racket[list?].
|
|
||||||
|
|
||||||
If @racket[min-count] is a number, the stream is required to have at least that many elements in it.
|
|
||||||
|
|
||||||
@defexamples[
|
|
||||||
#:eval sequence-evaluator
|
|
||||||
(define/contract predicates
|
|
||||||
(sequence/c (-> any/c boolean?))
|
|
||||||
(in-list (list integer?
|
|
||||||
string->symbol)))
|
|
||||||
(for ([P predicates])
|
|
||||||
(printf "~s\n" (P "cat")))
|
|
||||||
(define/contract numbers&strings
|
|
||||||
(sequence/c number? string?)
|
|
||||||
(in-dict (list (cons 1 "one")
|
|
||||||
(cons 2 "two")
|
|
||||||
(cons 3 'three))))
|
|
||||||
(for ([(N S) numbers&strings])
|
|
||||||
(printf "~s: ~a\n" N S))
|
|
||||||
(define/contract a-sequence
|
|
||||||
(sequence/c #:min-count 2 char?)
|
|
||||||
"x")
|
|
||||||
(for ([x a-sequence]
|
|
||||||
[i (in-naturals)])
|
|
||||||
(printf "~a is ~a\n" i x))
|
|
||||||
]
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@subsection{Sequence Constructors}
|
|
||||||
|
|
||||||
|
|
||||||
@defproc*[([(in-range [end number?]) stream?]
|
@defproc*[([(in-range [end number?]) stream?]
|
||||||
[(in-range [start number?] [end number?] [step number? 1]) stream?])]{
|
[(in-range [start number?] [end number?] [step number? 1]) stream?])]{
|
||||||
Returns a sequence (that is also a @tech{stream}) whose elements are
|
Returns a sequence (that is also a @tech{stream}) whose elements are
|
||||||
|
@ -654,7 +614,7 @@ If @racket[min-count] is a number, the stream is required to have at least that
|
||||||
values in the sequence), the @exnraise[exn:fail:contract].}
|
values in the sequence), the @exnraise[exn:fail:contract].}
|
||||||
|
|
||||||
@; ----------------------------------------------------------------------
|
@; ----------------------------------------------------------------------
|
||||||
@subsection[#:tag "more-sequences"]{Sequence Combinations}
|
@subsection[#:tag "more-sequences"]{Sequence Combinations & Contract}
|
||||||
|
|
||||||
@note-lib[racket/sequence]
|
@note-lib[racket/sequence]
|
||||||
|
|
||||||
|
@ -783,6 +743,43 @@ If @racket[min-count] is a number, the stream is required to have at least that
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@defproc[(sequence/c [#:min-count min-count (or/c #f exact-nonnegative-integer?) #f]
|
||||||
|
[elem/c contract?] ...)
|
||||||
|
contract?]{
|
||||||
|
|
||||||
|
Wraps a @tech{sequence},
|
||||||
|
obligating it to produce as many values as there are @racket[elem/c] contracts,
|
||||||
|
and obligating each value to satisfy the corresponding @racket[elem/c]. The
|
||||||
|
result is not guaranteed to be the same kind of sequence as the original value;
|
||||||
|
for instance, a wrapped list is not guaranteed to satisfy @racket[list?].
|
||||||
|
|
||||||
|
If @racket[min-count] is a number, the stream is required to have at least that many elements in it.
|
||||||
|
|
||||||
|
@defexamples[
|
||||||
|
#:eval sequence-evaluator
|
||||||
|
(define/contract predicates
|
||||||
|
(sequence/c (-> any/c boolean?))
|
||||||
|
(in-list (list integer?
|
||||||
|
string->symbol)))
|
||||||
|
(for ([P predicates])
|
||||||
|
(printf "~s\n" (P "cat")))
|
||||||
|
(define/contract numbers&strings
|
||||||
|
(sequence/c number? string?)
|
||||||
|
(in-dict (list (cons 1 "one")
|
||||||
|
(cons 2 "two")
|
||||||
|
(cons 3 'three))))
|
||||||
|
(for ([(N S) numbers&strings])
|
||||||
|
(printf "~s: ~a\n" N S))
|
||||||
|
(define/contract a-sequence
|
||||||
|
(sequence/c #:min-count 2 char?)
|
||||||
|
"x")
|
||||||
|
(for ([x a-sequence]
|
||||||
|
[i (in-naturals)])
|
||||||
|
(printf "~a is ~a\n" i x))
|
||||||
|
]
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
@; ======================================================================
|
@; ======================================================================
|
||||||
@section[#:tag "streams"]{Streams}
|
@section[#:tag "streams"]{Streams}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user