02 Jun 2008

7章 手続き 7.1~7.2 :: プログラミングGauche

7章は手続きについて。schemeでは手続き自身を、データを受け渡しするのと同じように、引数として渡したり返り値として戻したりできます。そうすることで、手続きを組み合わせたり、新たな機能を追加して、より高機能な手続きを作り出す事が簡単にできます。このような手続きを受け取ったり返したりする手続きを「高階手続き」と呼びます。この辺もやはりほかの言語には無い考え方なので、なかなか慣れませんね。数ページ読むだけでも時間がかかりました。

さて、本章ではかの有名な「ラムダ式」が登場しました。ラムダ式は、手続きそのものを直接生成します。この章以前まで手続きには、名前をつけて定義していました。

(define ( <手続きの名前> <引数> ... ) <式> ...)

一方ラムダ式は、名前をつけずに手続きを生成できます。

(lambda <引数> <式> ...)

今まではdefineを使って、手続きに名前をバインドして、名前経由で手続きを呼び出していましたが、ラムダ式を使うと、手続きそのものに直接アクセスできる、というイメージでしょうか。

まだうまく実感はできませんが、このような手続きを自在に受け渡しできる言語では、確かにラムダ式は強力なツールだなと、なんとなくですが思いました。