Pperform applies a selector to a list of patterns

superclass: Pattern

*new(selectorPattern, receiver, pat1, ... patN)

selectorPattern - a pattern of symbols (binary operators) or functions of two arguments

receiver, pat2, ... patN - a pattern of objects, receiver and arguments

see also: Preduce

// examples

// perform a sequence of addition and subtraction

(

a = Pperform(Pseq(['+', '-'], 16), Pseq([0, 1, 2, 3], inf), Pseq([3, 4, 5], inf));

x = a.asStream;

x.nextN(20);

)

// duplicate and multiply

(

a = Pperform(Pseq(['dup', '*'], 8), Pseq([0, 1, 2, 3], inf), Pseq([3, 4, 5, 6], inf));

x = a.asStream;

x.nextN(20);

)