ページビューの合計

イエスから目を離さないでいなさい。(へブル 12:2)

2017-06-27

再帰は難しいのかも?

「服を脱いで入浴する、体を洗って、風呂からでる」をプログラムすると

     服を脱ぐ、②入浴し、体を洗う、③体を拭く、④服を着る
こうすると、一本のスレッド()で表せる。これはとても分かり易い。

これを、『入浴』を
「一番上の服を脱ぎ籠の一番上に置く、そこで裸なら入浴し体を洗う、そうでなければ『入浴』を実行、終わったら籠の一番上の服を着る」という処理にすると、フローは次のようになるの。


たとえば「肌着とシャツ、セータ 3枚着ている人」が入浴する場合
お風呂に入ることを想像する
①セータを脱いで、籠にいれる 
②シャツを脱いで、籠にいれる 
③肌着を脱いで、籠にいれる   
③風呂にはいる、体をあらう、体を拭く// 「入浴する」処理
③籠から肌着をとって着る 
②籠からシャツをとって着る
①籠からセータをとって着る

①は最初の「入浴」処理、②は①から呼ばれる「入浴」処理、③は②から呼ばれる「入浴」処理
再帰プログラムのフローはこのようになり、分かりにくく難しく感じる。

LISPという言語は再帰を多用するので難しいと思われている。
これが再帰に関する私の感想である。