Haskell で grep を読んで |
返信 |
haskell |
http://d.hatena.ne.jp/mzp/20081009/grep を見てたら書きたくなったので書いたというか、コピペして短くしたれと思ったら逆に冗長になったというか。
というわけでこんな感じにしてみました -> http://gist.github.com/16494
もともと Perl 使いなので ARGF よりもダイヤモンド演算子<> のほうがみやびに思えるからそういう演算子を定義した上でそれを前置で使ってます。ふつうは演算子の前置は部分適用とかに使うんですがそういうのとも違います。より Perl っぽく見せるためです。じゃあ Perl で書けよ。そうですね。
あ、型も微妙に変えてます。
argf :: [String] -> (String -> IO ()) -> ()
(<>) :: [String] -> (String -> a) -> IO a
えーと、渡すのは pure function のほうがよくね?というのと IO () だけにしか使えないのは不便じゃねっていう感じですね。
でもほんとうは、 http://gist.github.com/16495 みたく書けたらうれしいなと思っています。
コマンドライン引数を明示的に渡さなくてもいいし、さらに getArgs すら要らないっていう。
State か何かを使えばできそうなので誰か作ってください。
あ、そういえば地味にモジュール (Text.RegexPR) 使ってます。cabal install regexpr するか適当にソースを削るかコメントアウトすると動くと思います。
投稿者 zuu9xi | 返信 (0) | トラックバック (0)