let closure = { (args) -> ReturnT in ... }
**v.s.**
func function(args) -> ReturnT { ... }
Why didn't Apple follow principle of Occam's razor and make closure and function declarations to be equal? For example, closure could be defined like this:
let closure = (args) -> ReturnT { ... }
This is how it implemented in JavaScript and other scripting languages. This is also looks more reasonable because function and closure are actually identical. And, in contrary, putting arguments and return type inside the brackets looks weird and could mess a programmer.