前に、Bugle Diary: [scheme][algorithm]ニュートン法によるルート計算という記事で、ニュートン法を使ったルートの計算を紹介しました。
その時、最後に、「ネストされると()が増えてわかりにくい」ということを書いたのですが、よくよくソースを見てみると、「これってひょっとしたらカプセル化なのでは??」と思い、再度、考察してみることにしました。
例えば、下の場合が、そのネストされているプロシージャーなのですが、
(define (hoge1 x) |
これは、hoge1で与えた引数に2を足した値を返すプロシージャーで、ネストされるプロシージャーの特徴として、hoge1プロシージャーの中に、hoge2のプロシージャを宣言しておいて、hoge1がhoge2を使っているんだけど、hoge1を運用する人は、hoge2の挙動を気にする必要がないんだよね。
hoge2は、外からわかならいというわけで、「これってカプセル化じゃーん」と思ったのです。
ただ、書籍には、カプセル化とは書かれていなかったので、違う呼び方をするのかもしれません。
うーん、でも、やっぱり、外で宣言したほうが、見やすいんじゃーないのかなーって思うんだけど。
0 コメント:
コメントを投稿