=== Top of the Swiki === Attachments ===
Using Curly Braces
You can use curly braces in Squeak to construct runtime-evaluated collections and do multiple value assignments. Tim Olson posted the following explanation of the uses of curly braces in Squeak:
Curly braces are now used in Squeak to construct runtime-evaluated collections and to implement multiple-value assignment. For those of you who may not have seen it, Squeak lets you do the following:
1) Runtime-evaluated Collection Brace stacks can be used to create runtime-evaluated arrays almost as easily as literal arrays:
{a. b-3. c squared}
is equivalent to:
Array with: a with: b-3 with: c squared
any type of collection can be used by adding an as: message:
{a. b-3. c squared} as: OrderedCollection
2) caseOf: statements
One of the uses of 1) above is in building a runtime collection of block associations for caseOf: statements:
stateMachineState caseOf:
{ [1] -> [(firstByte << 2) bitOr: (secondByte >> 6)].
[2] -> [(firstByte << 6) bitOr: (secondByte >> 2)]}.
3) Multiple value assignment (Not valid after Version 2.6)
Brace stacks on the left-hand-side of an assignment can be used to assign multiple values in parallel:
{a. b} := #(1 2). "a := 1. b := 2"
{a. b} := {b. a}. "swap"