数学における関数は写像の項を参照。ここではコンピュータサイエンス、プログラミングにおける関数を説明する。サブルーチンともいう。メソッドはサブルーチンの一種であるが, 厳密には異なる概念である。
数学における関数(写像)は入力に対して一意的な出力が存在する。対してサブルーチンは, それ以外の事も行う。例えば、その関数を呼び出した回数を返す関数(カウンタ)などである。サブルーチンは、同一の入力に対して必ずしも同一の結果を返すとは限らない。サブルーチンはシステムの状態を変化させうる。これを副作用という。例のカウンタも副作用を持つ(何故ならば呼び出した回数を記憶しているからである)。写像が返値を必ず持つのに対し、サブルーチンは必ずしも返値を持たない。値を返さないサブルーチンを手続き、他方を関数と呼ぶ流儀もある。
返値を必ずしも持たない関数は部分写像と看做すことができる。また副作用を伴う関数は、環境 と元の引数
から、環境
と返値
への写像
と看做せる。したがってプログラムにおける関数と、数学的な関数が全く異なった概念であるというわけでもない。実際コンピュータは数学的にモデル化されている(e.g.チューリングマシン、ラムダ計算)。
Cf. 割込み