Also Functional programming has its own set of patterns (with more cryptic names w.r.t. OOP's patterns; such as Functor, Monoid and Monad).

Here's a nice introduction (in C++11) to the Functor pattern by Bartosz Milewski.