分解してしまう

関数型言語は、何もかも徹底的に分解してその意味を熟考し、その結果汎用にできるものを汎用的に拡張し、全体を再構築した、そんな言語だと思います(特にLisp)。それで高階関数やら、奇妙な概念の継続みたいなものが生まれてきたんだろうなぁと想像します。

匿名関数を例にこれを考えて見ます。SICPからの受け売りですがw

int add( int x, int y )
{
  return x + y;
}

こういう関数を作ることを、「関数の本体を作る」ことと、それに「名前を付ける」ことの2つに分解して考えた結果、「名前を付ける」部分を省けば、それが「匿名関数」です。

( x, y ) => x + y

SICP、刺激的ですよ。