読者です 読者をやめる 読者になる 読者になる

糸電話式のアレ

プログラミングのこと。毎日のこと。書いています。

Haskellはお仕事を楽にしてくれるか?

Haskell
お仕事の自動化にHaskellは有効か?

皆さん同じだと思いますが、ちょっとしたお仕事自動化したいときにはPerlが便利ですよね。
CPANは強力だし、情報も豊富です。

そんなわけで、ボクもちょこちょこ書いてるんですが、perlって汚い実装になりがちです。
多分、型がないとか、引数の渡し方が面倒でグローバル変数のほうが便利だとか、そういう理由なんですが。

んなわけで、出来上がった実装は人様に見せられないような状態になります。
これは面白くない。

ボクは基本的に書いたプログラムはオープンにして行きたい人なので、今後はちょっとしたバッチ処理もHaskellで書くことにしようと思っています。

Haskellで書くことで自然と安全で再利用性が高く、人に見せてもさほど恥ずかしくないコードが出来上がります。

そんで出来上がったコードから、有用そうなTipsを拾い上げてはGistでバラバラと公開していこうとしています。

既にいくつか公開して行っていますので、簡単に紹介。
「指定した文字列の大文字小文字の組み合わせ全パターンのリストを取得する」場合にはこう書きます。

「指定したディレクトリを再帰的に探索して末端のパスのリストを返したい」場合は、次のようにします。

まぁ、後者は、findコマンドを使ったほうが楽なのですが、とりあえずディレクトリ操作の練習も兼ねてやってみたところです。

上記の例を見て分かる通り、アルゴリズムの記述は凄く短く書けるんですが、ファイル操作などIOが絡むとやはり長ったらしくなってしまいます。

お仕事の自動化なんかは、ファイルIOがほとんどでしょうから、Haskellを使う事自体のメリットはさほど大きくないように感じます。
やはり、出来上がったモノに対してプログラマとしての納得感の大きさが主なメリットですね。しかし、出来上がったものは再利用性が高いので、積み重ねていくとまた違った答えが出てくるでしょう。

構文解析ならHaskellにまかせられる?

今日はとある理由で、わりと複雑な構文解析をする必要があっため、Haskell構文解析ライブラリであるParsecを色々といじっていたのですが、これがまた難しい!
まぁ、コレまで構文解析をあまり真剣にやったことはなかったので当たり前ですかね。。。(大抵はPerl正規表現でなんちゃって解析でOKなことが多いので)

なんとかライブラリを扱えるようになってきたかな、と言ったところなんですが、急いでいたので、perl正規表現でちゃちゃっとやってしまいました。

本当は、こういうことこそHaskellの出番なはずなんですが、未熟なボクではうまくいきませんでした。。。

これからも精進してHaskellで書いたほうが早く問題解決できるようになりたいですね。