I have seen this quoted in a lot of places:
\"It is better to have 100 functions operate on one data structure than 10 functions on 10 data structures.\"
Structure and Interpretation of Computer Programs (SICP) answers your question as below:
You can see the original content of the online version of the book here
EDIT (included from comment):
"In Pascal the plethora of declarable data structures induces a specialisation within functions." Specialisation is bad because it inhibits "serendipity"/creativity - I would say - with my own words.
In other words if functions are too special then they cannot be reused in ways that were not known at the time of the function creation.
Nice example is fold
(https://hackage.haskell.org/package/base-4.8.1.0/docs/Data-Foldable.html) which is a data structure agnostic, general higher order function. It can be used on a tree, for example
data Tree a = Empty | Leaf a | Node (Tree a) a (Tree a).