Haskell言語の科学では無い部分
Haskell言語の、
- 高階関数
- 関数合成
- モナド
は、科学では無く、個人的信条(モットー)に過ぎないと思います。
科学は、後からの検証が可能なはずですが、上3つは、それを許しません。
信条を持つ以上の事をするファクトを一切、出しません。
高階関数がもたらす物
高階関数は、結局、
- 一次元の配列データに対し、
- (模式的な言い方ですが)普通なら左から関数を適用する所、
- (模式的な言い方ですが)右下方から関数を適用する
程度の差異しかもたらしません。
それを「高階」だという、後からの検証を可能にするファクトを一切、出しません。
これは科学では有りません。
関数合成は出来るのか?
関数の生来の性質より、合成が出来る、といいますが、
- それは数学的関数の話で、
- プログラム言語の関数でそれが出来るかどうかの、
- 後からの検証を可能にするファクトを一切、出しません。
これも科学では有りません。
モナドは構成出来るのか?
副作用とは、
- 自プログラムで再計算出来ない
値の参照です。
- 自プログラムで再計算出来ない
にもかかわらず、
- 自プログラムの型体系で記述可能
とする事に対する、後からの検証を可能にするファクトを一切、出しません。
個人の信条は尊重されるべきですが、それを科学と言って良いかは別の話です。
キャンセルとは、科学組織の常態である
素晴らしい関数型プログラミングは、上記の個人的信条から成り立っています。
間違いなく、科学では無く、これはキャンセルにつながる振る舞いです。
- 党派的に酷い事をされて、それをされるとかなりの事を諦めないといけない
というのは、別に歴史学とかに限らないと思います。
実害も出ています。
AIに、
- 実装と仕様(結果と原因)の階位差について尋ねても、
- 原因と結果の階位差は極力1とするのが良いのでは?と尋ねても、
- プログラミング分野に関する議論と受け止められると、(たしかに、その分野に関する議論とするのが、私の意図でしたが、)
- 「関数を引数として受け取る関数」または「関数を戻り値として返す関数」の議論に接地してしまう
という現象が起きます。それもこれも、
- 科学では無い事を
- 科学の表記方法で多数公表されている
為、AIがそれを議論の前提としてしまうからだと思います。
結論
これからも『「いっちょかみ」の脅威と限界』でプログラミングが嫌いになる人は存在し続けることでしょう。