嫌われプログラミングの代弁者

「何で頭ごなしに嫌う人間が居るのか」を色々考える

型駆動開発の問題点 6

「基準点」は?

階位差を議論するとして、

  • 「基準点」(1階)は何かを決める

必要が有ると思います。

1階論理と言えば、Prolog言語なので、その言語要素程度が1階とすると良いと思います。

Prolog言語では、

  • 事実(「parent(john, mary).」 (ジョンはメアリーの親である、という事実))
  • 規則(「grandparent(X, Y) :- parent(X, Z), parent(Z, Y).」(XがZの親であり、かつZがYの親であるならば、XはYの祖父母である))

が主な言語要素なので、これと同列の、プログラミング言語の言語要素は1階だと思います。

 

 

値の参照について

ここで、

  • 値の他、値への参照1階の議論として扱いたい

のですが、

  • 関数定義の他、関数定義への参照1階から階位差が生まれる

という事実が有るので(なにせ高階関数なので)、

その辺の合理化が必要になります。

  • 1.1階まで(階位差0.1まで)は1階として議論してヨシ

とかだと、値への参照が1階でなかった場合にも、1階として議論が可能になると思います。

勿論、

  • 関数定義と、関数定義への参照の階位差が0.1より大な場合

は、別のやり方を考える必要が有ると思います。

 

 

結論

これからも「型駆動開発の問題点」でプログラミングが嫌いになる人は存在し続けることでしょう。