Friday, 28 January 2022

Stream style programmming

Java 9 以降、Scala もそうなんだけど、

  巨大なList / Queue を作って、それに lambda を map するプログラミング

が流行ってさ。並列処理向きとかいろいろあるわけですが。

  for文を自動的に書き直す

にみたいな余計なお世話も。Rustとかもごたんぶんにもれずそんな感じ。

まぁ、その時代の流行なんだけどさ。一つは

  fp 的な関数型プログラミング

だってのがあるとは思う。それはプログラムの正しさの証明につながっているわけなんだけど...

  確かにListを構成する性質(property)が明解になる

というのはある。でも、

  見かけの計算の計算量と、実際の計算量は自明には一致しない

ってのも。毎回巨大なリストを構築するわけはないわけで。そこを

  コンパイラを信じる

ってやるかっていうと、まぁ、生成コードを見るか、実測するかどっちかなら、まぁ。

いつものことなんだけど、自分のやってる方向が真逆だったりするのが面白いかな。

No comments: