1. Functions can be treated like values in Swift: they can be passed as parameters, returned from other functions, and assigned to variables.
2. Higher-order functions allow functions to be used as parameters or return values. Functions passed to higher-order functions require @escaping if they are used after the higher-order function finishes.
3. Functions store behaviors that can be passed around and used later. This enables many useful patterns, like the GAFunction example that chains asynchronous operations.
4. Libraries like RxSwift take advantage of these Swift features to provide generalized reactive programming capabilities.