「服を脱いで入浴する、体を洗って、風呂からでる」をプログラムすると
① 服を脱ぐ、②入浴し、体を洗う、③体を拭く、④服を着る
こうすると、一本のスレッド(糸)で表せる。これはとても分かり易い。
これを、『入浴』を
「一番上の服を脱ぎ籠の一番上に置く、そこで裸なら入浴し体を洗う、そうでなければ『入浴』を実行、終わったら籠の一番上の服を着る」という処理にすると、フローは次のようになるの。
たとえば「肌着とシャツ、セータ 3枚着ている人」が入浴する場合
お風呂に入ることを想像する
①セータを脱いで、籠にいれる
②シャツを脱いで、籠にいれる
③肌着を脱いで、籠にいれる
③風呂にはいる、体をあらう、体を拭く// 「入浴する」処理
③籠から肌着をとって着る
②籠からシャツをとって着る
①籠からセータをとって着る
①は最初の「入浴」処理、②は①から呼ばれる「入浴」処理、③は②から呼ばれる「入浴」処理
再帰プログラムのフローはこのようになり、分かりにくく難しく感じる。
LISPという言語は再帰を多用するので難しいと思われている。
これが再帰に関する私の感想である。
