時間と空間を一緒にしたパターンの功罪
人は時間と空間を独立に考えるのが苦手だ。だから、時間と空間の使い方を一緒にパッケージ化したパターンを使いたがる。そのようなパターンの典型はcall/returnだ。call/returnは偉大な発明で、制御構造を考えることを劇的に簡単にした。
だが、どんな素晴らしいアイディアにも弊害やダークサイドがある。call/returnがあまりにも普及して、これが制御の基本構造のように思われてしまった。実際は、call/returnは相当に高級で複雑な構造だ。もっともっとプリミティブな構造に分解できる。そして、プリミティブ/アトミックな構造でないと記述できない現象や原理がある。
いったんはcall/returnを忘れて、より基本的な時間的構造、空間的構造によってcall/returnを再構築してみる必要がある。今の感触では、call/returnを採用すると、計算現象の整合的な記述はできないと思う。むしろ、call/returnは正確な記述の障害・弊害となる。ある水準の計算に、call/returnを持ち込んではいけないのだ。