Rob Napier on why Swift is not a functional language:
Swift is a multi-paradigm, but it’s not OOP/functional. It’s OOP/generic.
Generic programming is primarily concerned with general purpose algorithms
that can be applied to arbitrary types. It has some similarities with
functional programming, and there are certainly languages that are both
functional and generic, but generic programming doesn’t care if the
algorithms are functions (things that take and return immutable values) or
processes (things that mutate state).