There\'s a neat guide here about overloading operators in Swift, but it doesn\'t say anything about treating operators as functions that I can pass around as variables like
If you give comparator
an explicit type, then it will work.
var comparator: (Int, Int) -> Bool = (<)
or
var comparator: (Double, Double) -> Bool = (<)
Less than <
isn't a single function, but a whole collection of them for different types. By identifying the type you are interested in comparing, you allow the compiler to select the correct less than function.