functionとprocedureとの使い分けの目安

p.379, 第3段落, 非公式訳:

原則として、procedurefunctionのどちらでも使える場面であればサブプログラムとしてfunctionを使うことをお勧めします。サブプログラムの目的が値を1つだけ計算することである場合は、たといクライアントコード(訳註: サブプログラムを呼び出すほうのコード)の書き換えが少し必要であってもfunctionを使ってください。逆に、サブプログラムから値を返さない場合、あるいはサブプログラムから複数の値を返すことが絶対に必要な場合、あるいは他のオブジェクトを処理する手段としてサブプログラムを呼び出す場合は、procedureを使ってください。Table 15.2にfunctionprocedureとの使い分けの目安をまとめました。
――――――――――――――――――――――――――――――
訳註:
要するにprocedureだと、無関係のオブジェクトをうっかり書き換えてしまうおそれがあるので、極力functionを使ったほうが安全で楽、ということのようである。