Haskellは美しいです。あれは事実です。それは簡潔で速いなどです。あなたの多くはそれを書くことは大きな喜びであることを認めるでしょう。一方で、あまりにも洗練されたコードを書き込もうとすると、その簡潔さが不利になるかもしれないと思います。たとえば、最近友人のプロジェクトを開いて、次のようなものを見つけました。
stationDepartures id sc=map (\(s1,list)->(stationName $ (stationMap $ system sc) Map.! s1,list)) ( Map.toList (Map.fromListWith (++) (map (\((s1,s2),(d,start,dur))->(s2,[start])) (Map.toList (Map.filterWithKey (\(s1,s2) _ ->s1==id) (Map.unions (List.map times (Map.elems $ schedule sc))))))))
このワンライナーは私には絶対に読めませんでした。これはもちろん非常に極端な例ですが、私のHaskellコードが他の人には読めないように見えるかもしれないことに気付くのに役立ちました。Haskellで美しいコードを作成するための原則は何だろうと思い始めました。たとえば、ラムダ関数はコードを読みにくくするため、不要であると見なされる人もいます。あれについてどう思う?Haskellコードが「美しい」と見なされるために満たすべき要件は何ですか?