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

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

「高階関数」のおかしさ 3

人間を誉める場合は

当代の英傑に対し、王侯貴族に匹敵する地位で誉める事は有ると思います。

でもたとえば、大阪の普通の人に対して「貴方は今太閤ですね」とか誉めても、バカにするな的な事を関西弁で言われるだけだと思います。

名前に対して重きを置いていればいるほど、バカにされたと思ってもおかしく有りません。

 

高階関数”は

私見ですが、3階関数が実現出来れば、

  • ユニバーサルで(プログラムの微調節など不要な)
  • 時間が経つに連れての仕様変更にも当たり前の様に追従出来る
  • 自動テストが構成出来る

と思います。

自動テストを切望する人間にしてみれば、高階関数は王侯貴族どころか、聖杯といった聖なる対象となるべきはずのものです。

それに対し、

  • 引数に関数をとれる関数

を”高階関数”と言うのは、いかにも不可思議です。
”高階”とは、単なる2階でも無く、3階でも無い、無限の階梯を含意した名前です。

もちろん、同期・非同期の記述の分野ではその”高階関数”は、唯一無二の効力を示すと思います。それは事実だと思います。

でも、なんで”高階関数”なのでしょうか?

 

反証可能性

カール・ポパーは、

  • ある理論が科学的であると言えるのは、その理論を反証するような決定的実験(事実)があらかじめ特定できる場合であり、

と述べているそうで*1 、それを「反証可能性」と言うそうですが、

  • 引数に関数を取れる関数を”高階関数”と言う

事に対し、反証可能性極非常に乏しいのでは無いかと思えてなりません。

反証したくても、なんでそういう関数と高階関数が結びつくのか、皆目見当が付きません。

 

「価値操作」

また同じ本*2で、科学には、

  • 科学システムの外部にある社会的な価値一般

を高める効果が有るとされており、

  • 関数型プログラミングが、実績の有無に関わらず高評価を得て
  • それに関わるタイミングを逸した人間の評価を下げるまでになり
  • 単なるプログラミングの短縮形にしか過ぎないmap関数などが、ことさら重要で有るとされたり

するのは、関数型プログラミングやmap関数などが、

からだと思います。

しかし、それは科学でしょうか? 引数に関数を取れる関数と、高階関数に何か関連は有るのでしょうか?

私は、無いと思います。ポパーの科学かどうかの判別法からすると、科学では無いと思います。
まだ、32bit CPU2つで64bit級だと言う方が(反証可能性が有る分)科学的だと思います。

 

結論

これからも「高階関数」のおかしさにより幻惑されたせいでプログラミングが嫌いになる人は存在し続けることでしょう。 

 

*1:自由の論法(自由学芸叢書) ポパー・ミーゼス・ハイエク (創文社オンデマンド叢書) [電子書籍版] 橋本努

*2:同上