dotkuwaの日記: IF文こそが高階論理操作の本体ではないか
関数のシグニチャは、必ず1階です。1階を強制します。
だから、数行の中身の関数にぶつ切りにすると見通しが
良くなりますが、表現力が落ちます。
表現力が落ちた条件で、機能は前と同じであることを
保とうとすると、しわ寄せがセキュリティーに行き、
セキュリティ完全無視の、通り一遍の機能(完全な正常
動作以外は利用者が悪い)になります。
引数を関数にしても、実引数の関数に関数呼び出しの
シグニチャが有る以上、単に1階の集まりです。
---------------------
電車の台車の技術に、仮想心皿方式というのが有ります。
>台車左右に配置されるボルスタアンカーを直角クランクピンで連結すると、
>回転中心となる箇所に心皿や中心ピンを設けることなく、台車を所定の
>位置で回転させることができる。
(Wikipedia 日本語版 「ボルスタアンカー」より)
プログラマーが必要に応じて適宜加えている、テストを
非常に困難にするIF文こそが、
・地を這う物が、仮想的に1階を超えた(空を飛ぶものが
可能な)操作をするためのギミック
(電車の台車で言うとクランクピンやボルスタアンカーの様な)
・これにより、プログラムで直接表現できない、制約など
を間接的に実現している。
・そもそもが1階である、現実のプログラミングで、その様な
制約を直接表現する方法が無い。関数でぶつ切りにすると
折角試行錯誤で得た、仮想的高階論理操作が死ぬ。
・ぶつ切りにして良いのはその直接表現する方法が有る世界に
限るが、今次世界はそうではない。
ではないでしょうか?
単に、プログラムを関数のシグニチャでぶつ切りにする事
が素晴らしいとするのは、無責任です。
IF文こそが高階論理操作の本体ではないか More ログイン