y = 1 + 2 * 3 / 4 * 5 - 6 + 7 multiplyBy:2. z = w = 2 + 3 multiplyBy:2. x = (((1 + 2 * 3) multiplyBy:3) add: 5) + 2. x = ((1 + 2 * 3) multiplyBy:3). p = 5 multiply(by:3 add:(2 + 1)). q = 10 squared squared. p1 setAge:2 squared squared + 4 squared multiply(by:2 add:4 + 1 * 3) in:"mon" + "ths". M = xz multiply(by:3 add:2) squared. M = xz multiply(by:3 add:2); squared. x = OrderedCollection new add: 2; add: 4; add: 6; yourself. age = Person new(name:"John Doe" age:34) setAge:144 inUnit:"months"; ageInMonths. x = 5. q = 10 if x > 2. q = if x > 2 then 10 else 20 end. cout put:5 multiply(by:5 add:2) if x > 2. if x > 2 then cout put:"Greater" else cout put:"Less" end Q = match yz in 1 => age = age, 2 => age = age / 12, 3 => age = age / 365, _ => age = 0 end. while x > 2 do cout put:"message" end for i in 0 to:100 step:2 do cout put:'Count is {i}' end cout put:"message" while x > 2. cout put:'Count is {i}' for i in 0 to:100 step:2. z = do x = 1. y = 2. ^x + y end. class Person /** every message handler can have one or both of the following: - a message name (in this case, 'init') - a set of one or more parameters (wrapped in parentheses if the message has a name) each parameter has an internal name and an (optional) label, specified as a pair of identifiers separated by a colon (:). the label comes first, and is the name used by whoever is sending the message the internal name comes second, and is used by the message handler itself as a variable name. you can omit the label for a parameter by specifying an underscore (_) as the label, but this is not recommended. it looks weird, it obscures the meaning of the message, and is really only supported for compatibility with lambdas. **/ - init(name:name age:age) self::name = name. self::age = age! - test(param:data _:extra) | cout put:'Received {data}, {extra}'. - name | ^self::name. - age | ^self::age. - ageInMonths | ^self::age * 12. - setName:name | self::name = name. - setAge:age | self::age = age. - setAge:age inUnit:units match units in #years => self::age = age, #months => self::age = age / 12, #days => self::age = age / 365, _ => self::age = 0 end! - getAgeInUnit:units ^match units in #years => self::age, #months => self::age / 12, #days => self::age / 365, _ => 0 end! $ exampleProperty | get => self::val, set => self::val = value. $ exampleProperty2 | get => self::val. $ exampleProperty3 | get => 42. $ exampleProperty4 (get, set) $ exampleProperty5 (get) end