struct Stack { var items = [T]() var empty:Bool { return items.count == 0 } func peek() -> T { return items[items.count - 1] } mutating func pop() -> T { return items.removeLast() } mutating func push(obj:T) { items.append(obj) } } var stack = Stack() stack.push(1) stack.push(2) println(stack.pop()) println(stack.peek()) stack.pop() println(stack.empty)