65 lines
900 B
Text
65 lines
900 B
Text
|
#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
|
||
|
::
|
||
|
]
|
||
|
|
||
|
|