4 + { arg aNumber; ^this.subclassResponsibility(thisMethod) }
5 - { arg aNumber; ^this.subclassResponsibility(thisMethod) }
6 * { arg aNumber; ^this.subclassResponsibility(thisMethod) }
7 / { arg aNumber; ^this.subclassResponsibility(thisMethod) }
8 mod { arg aNumber; ^this.subclassResponsibility(thisMethod) }
9 div { arg aNumber; ^this.subclassResponsibility(thisMethod) }
10 pow { arg aNumber; ^this.subclassResponsibility(thisMethod) }
12 performBinaryOpOnSeqColl { arg aSelector, aSeqColl, adverb;
13 ^aSeqColl.collect({ arg item;
14 item.perform(aSelector, this, adverb)
17 performBinaryOpOnPoint { arg op, aPoint, adverb;
18 ^Point.new(this.perform(op, aPoint.x, adverb), this.perform(op, aPoint.y, adverb));
30 @ { arg aNumber; ^Point.new(this, aNumber) }
31 complex { arg imaginaryPart; ^Complex.new(this, imaginaryPart) }
32 polar { arg angle; ^Polar.new(this, angle) }
35 for { arg endValue, function;
38 while ({ i <= endValue }, { function.value(i, j); i = i + 1; j = j + 1 });
40 forBy { arg endValue, stepValue, function;
44 while ({ i <= endValue }, { function.value(i,j); i = i + stepValue; j=j+1; });
46 while ({ i >= endValue }, { function.value(i,j); i = i + stepValue; j=j+1; });
50 forSeries { arg second, last, function;
51 // called by generator expression
52 // compiler replaces this with special byte codes.
56 step = if (this < last, 1, -1);
58 last ?? { last = if (second < this, -inf, inf) };
61 ^this.forBy(last, step, function)