>> Procedure names should reflect what they do; function names should reflect what they return. Functions are used in expressions, often in things like if's, so they need to read appropriately.
This never occured to me, but makes perfect sense, I usually know what I want a function to return, no need to make the name more generic than it needs to be.