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

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

「いっちょかみ」の脅威と限界 2

Haskell言語の科学では無い部分

Haskell言語の、

  • 高階関数
  • 関数合成
  • モナド

は、科学では無く、個人的信条(モットー)に過ぎないと思います。

科学は、後からの検証が可能なはずですが、上3つは、それを許しません。

信条を持つ以上の事をするファクトを一切、出しません。

 

 

高階関数がもたらす物

高階関数は、結局、

  • 一次元の配列データに対し、
  • (模式的な言い方ですが)普通なら左から関数を適用する所、
  • (模式的な言い方ですが)右下方から関数を適用する

程度の差異しかもたらしません。

それを「高階」だという、後からの検証を可能にするファクトを一切、出しません。

これは科学では有りません。

 

 

関数合成は出来るのか?

関数の生来の性質より、合成が出来る、といいますが、

  • それは数学的関数の話で、
  • プログラム言語の関数でそれが出来るかどうかの、
  • 後からの検証を可能にするファクトを一切、出しません。

これも科学では有りません。

 

 

モナドは構成出来るのか?

副作用とは、

  • 自プログラムで再計算出来ない

値の参照です。

  • 自プログラムで再計算出来ない

にもかかわらず、

  • 自プログラムの型体系で記述可能

とする事に対する、後からの検証を可能にするファクトを一切、出しません。

個人の信条は尊重されるべきですが、それを科学と言って良いかは別の話です。

 

 

キャンセルとは、科学組織の常態である

素晴らしい関数型プログラミングは、上記の個人的信条から成り立っています。

間違いなく、科学では無く、これはキャンセルにつながる振る舞いです。

  • 党派的に酷い事をされて、それをされるとかなりの事を諦めないといけない

というのは、別に歴史学とかに限らないと思います。

実害も出ています。

AIに、

  • 実装と仕様(結果と原因)の階位差について尋ねても、
  • 原因と結果の階位差は極力1とするのが良いのでは?と尋ねても、
  • プログラミング分野に関する議論と受け止められると、(たしかに、その分野に関する議論とするのが、私の意図でしたが、)
  • 「関数を引数として受け取る関数」または「関数を戻り値として返す関数」の議論に接地してしまう

という現象が起きます。それもこれも、

  • 科学では無い事を
  • 科学の表記方法で多数公表されている

為、AIがそれを議論の前提としてしまうからだと思います。

 

 

結論

これからも『「いっちょかみ」の脅威と限界』でプログラミングが嫌いになる人は存在し続けることでしょう。