Dripです。
ふもさん、こんにちは。
確かに、プログラム言語は便利な機能をつければつけるほど小回りの効いた簡単なプログラムが
楽々かけるようになります。
しかしそれはとても危険なことなのです。
Flashで使用するActionScript2が良い例なのですが、変数や関数、ラベルなどを全て
変数などから指定できてしまうという驚異的な機能性を持っています。
・・こんなことができてしまいます。
hensu1="label"
hensu2="hensu3"
goto eval(hensu1) //これでlabelにジャンプできてしまいます。
stop
*label
mes "変数に入ったラベル名からジャンプしてきました"
mes "hensu3の内容は"+eval(hensu2)+"です。" //変数内に書かれた変数名で別の変数を参照できてしまいます。
確かに凄く便利そうな機能ですが、制限無しにさまざまな制約を破棄し、自由度を高めてしまうと、
プログラムを後から見ると、作った自分さえもわけがわからない、スパゲティになってしまう
ことが頻繁に発生してしまいます。
(大規模なプログラムでは保守管理がお手上げ状態になってしまいます。)
(なので最近はgotoはタブーとし、オブジェクト指向プログラミングが主流となりました。)
ネスト破棄や内部変数や関数の動的な操作は非常に大きなリスクを伴うのです。
小回りを効かせる機能の考案より、ネストを気にせず階層分けしたプログラムを書くために
モジュールや関数を学ぶ事はJavaやCに移行するときにきっとちからになると思います。
広い目でがんばってみてくださいね。^^