Differences between Procedural, Object-Oriented, and Functional Programming Paradigms

Describe the differences between procedural, object-oriented, and functional programming paradigms.