59 lines
1.1 KiB
Racket
59 lines
1.1 KiB
Racket
#lang scribble/manual
|
|
@(require (for-label racket))
|
|
|
|
@title{Pcollect}
|
|
Apply a function to a pattern@section{categories}
|
|
Streams-Patterns-Events>Patterns>Filter
|
|
@section{related}
|
|
Classes/Pselect, Classes/Preject
|
|
|
|
@section{description}
|
|
|
|
Modifies each value by passing it to the function.
|
|
|
|
|
|
@section{classmethods}
|
|
|
|
|
|
@section{method}
|
|
new
|
|
@section{argument}
|
|
func
|
|
A link::Classes/Function::. Receives values from
|
|
@racketblock[pattern::.
|
|
]
|
|
@section{argument}
|
|
pattern
|
|
A link::Classes/Pattern::.
|
|
|
|
|
|
@section{examples}
|
|
|
|
|
|
@racketblock[
|
|
(
|
|
a = Pcollect( { |item| item * 3 }, Pseq( #[ 1, 2, 3 ], inf ) );
|
|
x = a.asStream;
|
|
9.do( { x.next.postln; } );
|
|
)
|
|
::
|
|
|
|
The message ]
|
|
|
|
@racketblock[collect:: returns a Pcollect when passed to a pattern. Note that because the pattern is converted to a link::Classes/Stream:: (more precisely a link::Classes/FuncStream::) the collect function is evaluated for one item each time the message ]
|
|
|
|
@racketblock[next:: is passed.
|
|
]
|
|
|
|
@racketblock[
|
|
(
|
|
a = Pseq( #[ 1, 2, 3 ], inf ).collect( { arg item; item * 3 } );
|
|
a.postln;
|
|
|
|
x = a.asStream;
|
|
9.do( { x.next.postln; } );
|
|
)
|
|
::
|
|
]
|
|
|
|
|