なんだこれは

はてなダイアリーから移転しました。

コールバック関数の比喩について

薮蹴さんにさそわれたのでボーリングしてきた。
あと、だらだらと話していたんだけど、コールバック関数について聞かれた。

コールバック関数というものはこう使うとか教えてもらったけど、どういうものなのかがイマイチわかり辛いとのこと。


普通の関数をAさんからBさんへの依頼と考える。

「Bさん、hogehogeして、heroheroして」Aさんは依頼した

AskAtoB(){
  hoge();
  hero();
  return;
}

と思う。

じゃあ、「Bさん、Cさんに「hogehogeして」ってお願いしといて」とAさんは依頼した
だったらこうならない?

AskAtoB( hogehoge() ){

 CsWork( hogehoge() );
 retutn;

}

まあ、あれだよね。関数は直に渡せないから、関数のアドレスを渡すんだけどね。

そういうと納得してくれたみたい