サブルーチン
おおむね歴史が古い言語から説明する。
引数をとり、値を返すという、数学における関数との類似性から、言語によっては関数 (function) とも呼ばれるわけであるが、一般にプログラミング言語における関数は、数学におけるそれとは以下のような点が異なる。
引数が同じでも状況に応じて戻り値が異なる(状態を持つ)
関数の処理の実行によってシステムに変化が発生する(副作用を持つ)
(「関数」と「手続き」を区別しない言語では)戻り値が存在しない場合がある
これに対し、関数型言語では状態や、プログラム自身に影響するような副作用をもたないことを基本とするなど、数学の関数に近い性質を持つ。特に純粋関数型言語では数学の関数と同等であり、同様の性質(参照透過性など)を持つことが利用される。