抽象化という言葉で想起されるモデル

「抽象化」というと「高い」「低い」、「上げる」、「下げる」、「階層/レイヤー」という言葉を伴なうことが多いので、多くの人は、階層が積み上がったものを想像しているのではないかと思う。 また、全く違う概念を積み上げている雰囲気はないので、階層間には暗黙として概念の継承が前提とされていると思う。 自分もそういう想像をしていたが、大堀先生のYouTubeの講義の中でプログラムの副作用について、

  • プログラムは副作用が主目的
  • 手続き型言語は実世界の副作用を直接的に扱う
  • 関数型言語は副作用は直接扱わずその世界に閉じており、実世界で副作用がある操作とマッピングすることにより目的を達成する

ようなことを説明していた。 副作用に関しては、一つの現実世界を扱う言語と、純粋な世界と現実界とのマッピングというのが、これまでで一番納得できる説明だったかもしれない。 そこで話が飛躍するが「抽象化」について考えるに、階層として捉えるより、各々の世界と概念のマッピングと考えた方が色々としがらみなくすっきり把握できることも多いのではないだろうかと思ったりした。階層を想起することにより階層間の無意識の既存概念の継承がよくない影響を及ぼすこともあるのではないだろうか。とはいえ階層間の継承を利用しなければ不便なことも多いだろう。 しかし、個人的には色々すっきりした。例えば、古典哲学は、概念とそれが作用する世界は何だかんだで一つの世界として扱っているように思える。ヴィトゲンシュタイン論理哲学論考は、言語の世界と現実世界を分けたように思える。この辺りがヴィトゲンシュタインが哲学としては特異なところでもあり、理系の人にも好まれる理由なのかもしれない(後期は古典的な哲学の世界に近付くが)。 まあ、色々全然違うのかもしれない。