なんだか話題になってるから書く。 やっと初心者を脱して中級者になりかけてるプログラミング学習者が関数型言語に何を感じているかを書こうと思う。 1 圏論とかいらないんじゃないの?Haskellが短いコードでプログラムを書けるというのは分かる。 forループをmapやfoldで抽象化する利点も分かる。 それでやりたい処理のほぼ全てがまかなえるということも実感している。 副作用のない小さな関数を合成して大きな関数を作る利点も分かる。 再利用性も上がるし、どこからどう影響を受けているかが簡単に分かるからバグも出にくい。 ただ、Haskellの基礎になってる圏論が何の役に立つのかは、まったく分からない。 むしろ邪魔なんじゃないかと思う。 ファンクターやモナドの概念が圏論で扱われているのは分かるけど、圏論なんて名前だけ知ってればコードを書くのに不都合はないだろう。 圏論が必要なのは、Haskellを設
![プログラム中級者が感じる関数型の違和感](https://cdn-ak-scissors.b.st-hatena.com/image/square/b1638cdb5807a4788e4ba3c1109a984166e095fc/height=288;version=1;width=512/https%3A%2F%2Fanond.hatelabo.jp%2Fimages%2Fog-image-1500.gif)