In the blog post Don't structure data all the way down, the author discusses different ways to structure a circle datatype and how to implement the parameters to a Radius function.
area({circle, {point,0,0}, 17.4})
Kind of messy. What about a function to build a circle for us? Then we could do this:
area(make_circle(0, 0, 17.4))
We could also have a shorter version of make_circle that only takes a radius, defaulting the center point to 0,0. Okay, stop, we're engineering ourselves to death. All we need is a simple function to compute the area of a circle:
area(R) -> math:pi() * R * R.
He is talking about the functions in the Erlang language, which is functional and not object oriented (OO). My question is, does this argument hold for OO languages, and does it hold for functional languages?