「カリー化」の版間の差分

削除された内容 追加された内容
m編集の要約なし
m 圏論での説明にデカルト閉である必要ない
8行目:
カリー化とは直感的には、「関数の複数引数を、1引数ずつ順に、バラバラにする」ということである。たとえば、除算の関数 <math>{\rm div}(x, y) = \frac{x}{y}</math> をカリー化したものを <math>{\rm cdiv}</math> とすると、<math>{\rm cdiv} </math> はxのみを引数に取る。そして <math>{\rm inv}={\rm cdiv}(1)</math> とすると、<math>{\rm inv}</math> はyのみを引数に取る新しい関数となり、<math>{\rm inv}(y) = \frac{1}{y}</math>、つまり引数の逆数を返す関数になる。
 
[[理論計算機科学]]の分野では、カリー化を利用すると、複数の引数をとる関数を、一つの引数のみを取る複数の関数の[[ラムダ計算]]などの単純な理論的モデルと見なして研究できるようになる。[[圏論]]では、カリー化の概念を[[デカルト閉圏]]における[[冪対象]]の[[普遍性]]に見出せる。適当な2つの[[対象 (圏論)|対象]]の[[積 (圏論)|積]]から別の対象への[[射 (圏論)|射]] <math>f: X \times Y \to Z</math> に対して、射 <math>g: X \to Z^Y</math> が一意に対応する。
 
カリー化をする現実の動機の1つに、カリー化することで後述する[[部分適用]]が行いやすくなることが挙げられる。たとえば、加算を行う関数 <code>(+)</code> をカリー化してから、最初の引数だけに <code>1</code> を適用すれば、インクリメント用の関数が簡単に作れる。