コールバック (情報工学)
コールバックの形式はプログラミング言語によって異なる。
C言語とC++では、他の関数に関数へのポインタを引数として渡すことができる。クイックソートをライブラリで実装した qsort() はコールバックを利用した例である。
Scheme や ML といった関数型言語などでは、他の関数の引数としての関数へのポインタをより一般化したクロージャが利用可能である。
インタプリタ指向の言語などでは、関数 B に引数として関数 A の「名前」を渡すことができ、B が A を eval によって呼び出すことができる。
オブジェクト指向言語では、何らかの抽象インタフェースを実装したオブジェクトを使うことができ、実装の詳細を隠蔽できる。そのようなオブジェクトを使えば、アプリケーション固有のコードを独自に実装できる。これは一種のコールバックであると同時に、操作対象のデータが付属している。この考え方は、Visitor パターン、Observer パターン、Strategy パターンといった各種デザインパターンの実装に活用されている。
C++ では、オブジェクトが関数呼び出し操作の独自の実装をすることができる。Standard Template Library はそういった(関数オブジェクトと呼ばれる)オブジェクトを受け付ける。