Haskellの美しいコード
Haskellは、言語自体への引き出しの多さ、関数型に対する経験、数学知識、センスなどによってかなり書くコードの美しさに差が出る(しらんけど)
他の手続き的な言語に比べても顕著な気がする(しらんけど)
逆に、キレイにハマればめちゃくちゃキレイになる印象がある
有名リポジトリのコードが一概に美しいとは感じない
ここでの「美しい」はかなり感覚的なものmrsekut.icon
型駆動である
GHC拡張を巧みに使う
適した抽象化を行う
適したライブラリを使用する
パット見、ごちゃごちゃしていなく見通しが良い
引数が多すぎない
一つ一つの関数が大きすぎない
etc.
ありがちな、あまり美しくないもの
手続き脳に引っ張られている
以前にGoで書かれた本をHaskellで実装しているリポジトリがあって、どれどれ、と見てみたら本のアーキテクチャそのままだったのであまりアレだった
ネストがヤバい
引数が多すぎる
パット見、ごちゃごちゃしてる
一つの関数で書ける処理を、その存在を知らないせいで3つの関数を組み合わせて書いている
etc.
mrsekut.iconが「うつくしい..」と感じたのはこの辺
大きめ
まぁまぁ大きめのリポジトリ全体を通してキレイ
コメントがないのに何をやっているか把握できる
小さめ
キレイにハマり過ぎて怖い、こんなこと頻繁にできるのだろうか
自分で実際に何も見ずに書いてみた後にこのコードを見て驚愕した
短め
と言っても、mrsekut.iconそこまでHaskellコードリーディングを日常的に行っているわけではない