Scheme事始め2:「ただの関数」

  • 関数
    • 関数っていうのは、f(x,y) = ax^2 + bx + c+dyのようなもの
    • これをf()って、そう書かないといけない理由もないので、\hat {x,y} = ax^2+bx+c+dyと書くことにする
    • さらに=の記号は、\hat{x,y}は関数を定義するんだよ、という意味だと知っていれば、わざわざ書かなくても用は足りるので\hat{x,y} \; ax^2+bx+c+dyと書くことにする
    • さらにx,y,も空白文字で代用すれば\hat{x \; y} \; ax^2+bx+c+dyとできる
    • ただし\hat{x\;y}と言うとき、これはx,yの関数であることはわかるけれど、この関数が特になんという関数なのか、というのは決められない。それは\hat{x\; y}を「関数ですよ」としか宣言していないから
    • このように「関数である」ということだけを宣言する方法があるのは便利じゃない、ということで、このような「ただの関数」であることを示す記号と「ただの関数」ですよ、という名称を決めることにした
    • それが「ラムダ関数〜ただの関数」という呼び名であって、\hat{x\; y} = \lambda (x \; y)と言う記法である
  • Schemeではというコマンドに相当する
(lambda (a b x ) ( + (* a x) b))
  • 「ただの関数」が仰々しく『ラムダ』と呼ばれるのは、きちんと手続きとして計算機上で動くように構成するには、色々な決め事を持たせないといけないのだけれど、その背負っている決め事の重みを感じさせるため(のようなもの)