Functions should be:
All these desirable properties follow from obeying the Cardinal Rule of Functions.
| One Function to a Function |
|---|
That is, the code implementing a function should have one and only one task to do. Example tasks are:
Notice that these tasks correspond to classic control structures (composition of function calls, conditional branching, and iteration). A symptom that the rule has been broken is when several of these control structures appear in one function. Another symptom is when you have trouble keeping a function to less than a dozen lines of code, and/or its lines to less than 72 characters.
Another good sign that the rule has been broken is difficulty
naming the function clearly, or using names like
scan-and-compress-and-print.
Comments?
Send mail to Chris Riesbeck.