Compare and contrast functional programming and object-oriented programming paradigms with concrete examples.