Here’s a tutorial from Javier Soto on functional programming in which he goes in-depth describing some functional programming concepts using Swift examples.

In the tutorial Javier explains what a functor is, and using nice example describes what a specific type of functor – the monad – is.

You can find the tutorial on Javier Soto’s blog.