```swift func changeB(a:String, b: inout String) { b = "\(a)\(b)" } var s="this" changeB(a:"changing ", b:&s) print(s) //===================================================================== func outer() -> (Int) -> Int { var incr = 0 func inner(_ a:Int) -> Int { incr += 1 return a+incr } return inner } let x = outer() x(33) //===================================================================== Array::sorted(by: (T,T)->Bool) let nums = [7,5,14,12,16] // Sort with inferred types let snums = nums.sorted(by:{a,b in a>b}) // Sort with positional parameters let snums2 = nums.sorted(by:{$0>$1}) // Sort with function name let snums3 = nums.sorted(by:>) // Sort with a trailing closure let snums4 = nums.sorted() {$0>$1} // Sort with parentheses omitted let snums5 = nums.sorted {$0>$1} //===================================================================== enum Earthsea: CaseIterable { case AWizardOfEarthsea case TheTombsOfAtuan case TheFarthestShore case Tehanu } for book in Earthsea.allCases { print(book) } //===================================================================== struct Point { var x: Int = 0 var y: Int = 0 } let p = Point(x:3, y: 4) let p2 = Point(x:4, y: 5) enum Shape { case circle(center:Point, radius:Double) case rect(lowerLeft:Point, upperRight:Point) } let s = Shape.circle(center:p, radius:1.5) switch s { case .circle(let c, let r): print("It's a circle \(c) \(r)") case let .rect(ll, ur): print("Just a rect \(ll) \(ur)") default: print("default") } let sr = Shape.rect(lowerLeft: p, upperRight: p2) switch sr { case .circle(let c, let r): print("It's a circle \(c) \(r)") case let .rect(ll, ur): print("Just a rect \(ll) \(ur)") default: print("default") } ```