Simplifying functions

Traditionally, computer science students are told to keep their functions simple. It is often said that one function should correspond to one single action. Indeed, the more a function has cyclomatic complexity, the harder it is to reuse, maintain and test. The more a function becomes a purely logical being that has no real-world roots in a clearly identifiable action, the harder it is to grasp and use in combination with other functions.