BlockClosure extend [
>> other [ ^ [ :x | other value: (self value: x) ] ]
]
NewPrice := [ :str | str asInteger ].
DoublePrice := [ :price | price * 2 ].
WholesalePrice := [ :price :advantage | price + advantage ].
WholesalePrice80 := [ :price | WholesalePrice value: price value: 80 ].
WholesalePrice200 := [ :price | WholesalePrice value: price value: 200 ].
CalcPrice := NewPrice
>> DoublePrice
>> WholesalePrice80
>> DoublePrice
>> WholesalePrice200.
(#('120' '100') collect: CalcPrice) do: [ :price | price displayNl ].
QmxvY2tDbG9zdXJlIGV4dGVuZCBbCgk+PiBvdGhlciBbIF4gWyA6eCB8IG90aGVyIHZhbHVlOiAoc2VsZiB2YWx1ZTogeCkgXSBdCl0KCk5ld1ByaWNlIDo9IFsgOnN0ciB8IHN0ciBhc0ludGVnZXIgXS4KRG91YmxlUHJpY2UgOj0gWyA6cHJpY2UgfCBwcmljZSAqIDIgXS4KV2hvbGVzYWxlUHJpY2UgOj0gWyA6cHJpY2UgOmFkdmFudGFnZSB8IHByaWNlICsgYWR2YW50YWdlIF0uCldob2xlc2FsZVByaWNlODAgOj0gWyA6cHJpY2UgfCBXaG9sZXNhbGVQcmljZSB2YWx1ZTogcHJpY2UgdmFsdWU6IDgwIF0uCldob2xlc2FsZVByaWNlMjAwIDo9IFsgOnByaWNlIHwgV2hvbGVzYWxlUHJpY2UgdmFsdWU6IHByaWNlIHZhbHVlOiAyMDAgXS4KCkNhbGNQcmljZSA6PSBOZXdQcmljZQoJCT4+IERvdWJsZVByaWNlCgkJPj4gV2hvbGVzYWxlUHJpY2U4MAoJCT4+IERvdWJsZVByaWNlCgkJPj4gV2hvbGVzYWxlUHJpY2UyMDAuCgooIygnMTIwJyAnMTAwJykgY29sbGVjdDogQ2FsY1ByaWNlKSBkbzogWyA6cHJpY2UgfCBwcmljZSBkaXNwbGF5TmwgXS4=