Wrong. Try writing a function which takes an array of shapes and prints the area of each shape. Check the line count using with and without OOPs\ inheritance. Next check what happens to the generic function when new shapes are added to the system. Check what happens when more properties other than area (like perimeter, rendering of the shape, number of sides etc.) need to be computed on the array of shapes .
The functional code for above will be downright ugly and even if you somehow get by using Maps to do some wiring yourself, you will end up writing so much boiler plate in your functional code which OOPS was handling automatically in the background.
Lack of experience is showing up in this article every where. After you write enough code in the industry with large team of developers, such that code has to survive mission critical apps for years in the environment, systems which have to model real world problems like Physics Engines, Image processors, Electronic Circuit simulators, you may possibly see the merits of OOPS. Both functional and OOPS paradigms have their own merits and weaknesses.
After you get some real coding experience for a substantial time , you will realize that in software, the only real things are 0's and 1's. Everything else is just an opinion.