性懲りもなく、Squeakをいじりつづけています(^^;
簡単にプログラムができますが、ちょっと凝ったことをしようとすると、なかなかに
これが難しかったりもします。
例えば、再帰(recursive)を使ったプログラムを書こうとしたら、Squeakでは、
ブロックを再帰的に呼び出すことはできないらしいです。
じゃあ、再帰はできないのかというとそうでもないです。
あちこちめぐってサンプルをあれこれ見ているうちに、フィボナッチや階乗計算
をするものを見つけたのでそれを倣って、書いてみました。コレ
再帰を実装するには、スタックを擬似的に(?)実装してやればいいのです。
そのために、「入れ物」という部品(中身は集合)を持ってきて、そこに、
ドラゴン曲線の描画に必要な情報を詰め込んだオブジェクト(ここでは
ピンク色の四角)をコピーして詰め込んでいきます。
あとは、手続き dragon がこれを上から順に手繰って、中身を参照しつつ
作業するだけです。
現在の計算機の仕組みに迫るような実相方法ですね。
計算機の仕組みを理解する一助になるかもしれません。
……なんて(^^;
コメント