A function is like a variable because it allows something to be
repeated over and over again. In this case, the "something" is a set of
commands rather than a value. If a function that is called many times
needs to be changed, it only needs to be changed once, where the
function is defined.
Functions help to break down larger problems into smaller problems by
breaking down a larger task (such as drawing the complex shapes) into
a series of smaller tasks that are repeated. It is then easier to
troubleshoot the smaller task before looking at the larger task.
Another example would be if you have a block of code to make a robot
move, functions for moving forward, reverse, and turning could be
repeated over and over again. If the turn is off by a few degrees,
the turning function could be adjusted, rather than trying to need to
look through the entire code and finding every time the robot turns.