2008/05/30

[scheme]ネストでカプセル化

前に、Bugle Diary: [scheme][algorithm]ニュートン法によるルート計算という記事で、ニュートン法を使ったルートの計算を紹介しました。

その時、最後に、「ネストされると()が増えてわかりにくい」ということを書いたのですが、よくよくソースを見てみると、「これってひょっとしたらカプセル化なのでは??」と思い、再度、考察してみることにしました。

例えば、下の場合が、そのネストされているプロシージャーなのですが、

(define (hoge1 x)
(define (hoge2 y)
(+ x y)
)
(hoge2 2)
)

これは、hoge1で与えた引数に2を足した値を返すプロシージャーで、ネストされるプロシージャーの特徴として、hoge1プロシージャーの中に、hoge2のプロシージャを宣言しておいて、hoge1がhoge2を使っているんだけど、hoge1を運用する人は、hoge2の挙動を気にする必要がないんだよね。

hoge2は、外からわかならいというわけで、「これってカプセル化じゃーん」と思ったのです。

ただ、書籍には、カプセル化とは書かれていなかったので、違う呼び方をするのかもしれません。

うーん、でも、やっぱり、外で宣言したほうが、見やすいんじゃーないのかなーって思うんだけど。

0 コメント:

コメントを投稿