簡単なCSVファイルの集計をHaskellでやろうと思ったら結構大変だったのでメモ。IO返す関数をはじめて書いた気がする。Nameごとに得点を集計して、合計得点でソートした結果を出力する。Ruby,5,1,7,3,面白いけど必要ないと思います。(30行)Haskellで書こうと思ったけど手が出なかったので、とりあえずRubyで書いた。やり方はあると思うけど、なるべく副作用を使わないやり方で。flat_map便利。(96行)Ruby版を参考に悩みながら書いたのが以下。summary)色々ハマったけど、以下のことを学んだ。sequenceでIOのリストからアクションの実行結果のリストを得られる。結果が要らない場合はsequence_でOK。{|x,y|...}相当。Data.Ord.comparingを使うとsort_byっぽく書ける。equalingみたいな。Transformをやってくれる関数はないのだろうか。Haskellだと比較関数が速いからいらない?getArgsからlinesを得るまでの流れをもっとスマートに書けないだろうか。paths)<br><br>にするとか。ちなみに、importするときはなるべく特定関数のみにするか、qualifiedすると読みやすくなります。summary<br><br>とか。表をいじり回すコマンドを以前から作っていたりするのですが、<br>それを使うとこんなですかねぇ。今日加えたものですが)<br><br>表を扱うことについては、もっとよい抽象化層があるんじゃないですかね。ujihisaさん<br><br>なるほど、fmapとかmapMを使うとすっきりしますね。たしかにたくさんモジュールをimportするとどのモジュールの関数かわかりにくいですね。akrさん<br><br>おお、そんなコマンドが。<br><br>たしかにリストでやるのはちょっと低レベルな気がします。<br>まだ、リストもロクに使えませんが...。16:26)比較以外の部分を僕なりに書いてみました。いつでも聞いてください。意識して書いたことがないです。