Chapter1: Recursion and Callbacks

この章はRecursionとCallback(Sub Routine Reference)に慣れましょう。と言うのが主な主題(本当かよ!!)。
すなわち、より多くのケースで使えるような汎用的な関数を作るためには、どうしたらよいか!! 例えば、あるデータを処理して、その結果をあるときはテキスト出力して、またあるときは、グラフ出力して。。。と言うように。
通常であれば、それぞれの関数を作ってやればよいのだが、それだといわゆる2重持ちになってしまい、どちらか一方が追従しない、と言う問題が発生しうる。ここでは、処理を記述した関数をメインの関数に渡してやって、自由な処理をさせる、と言うやり方をとっている。いわゆる、高階関数というやつですね。
もう一つの主題はCallback。ここでは、HTMLを例に挙げて、順々にParseして行ったときに、Tagに遭遇したときには、どのような処理をして、生のデータに遭遇したときには、どの処理をして。。。と言うのを、これまた高階関数で渡している。そして、HTMLにしろ、ディレクトリ走査にしろ、データ自体はRecursiveなので、処理もRecursiveで書いた方がいいよ〜、と言うのがこの章だね。