64 lines
900 B
Racket
64 lines
900 B
Racket
#lang scribble/manual
|
|
@(require (for-label racket))
|
|
|
|
@title{Penvir}
|
|
use an environment when embedding the pattern in a stream@section{related}
|
|
Classes/Pkey
|
|
@section{categories}
|
|
Streams-Patterns-Events>Patterns>Data Sharing
|
|
|
|
@section{ClassMethods}
|
|
|
|
|
|
@section{method}
|
|
new
|
|
|
|
@section{argument}
|
|
envir
|
|
an environment with objects to embed.
|
|
|
|
@section{argument}
|
|
pattern
|
|
pattern or stream, usually a link::Classes/Pfunc::, link::Classes/Prout::.
|
|
|
|
@section{argument}
|
|
independent
|
|
if true streams can write to the environment without influencing other streams created from this pattern. if false, the streams write to a common namespace.
|
|
|
|
@section{Examples}
|
|
|
|
|
|
|
|
@racketblock[
|
|
(
|
|
x = (a:8);
|
|
y = Penvir(
|
|
x,
|
|
Pfunc { ~a * 2 }
|
|
);
|
|
|
|
t = y.asStream;
|
|
)
|
|
|
|
t.next;
|
|
|
|
|
|
|
|
(
|
|
x = (a:8);
|
|
y = Penvir(
|
|
x,
|
|
Pfunc { ~a = ~a * 2 }
|
|
);
|
|
|
|
t = y.asStream;
|
|
z = y.asStream;
|
|
)
|
|
|
|
t.next;
|
|
t.next;
|
|
x.postln; // x stays unchanged
|
|
::
|
|
]
|
|
|
|
|