Diary?

2008-02-11
Mon

(17:25)

就職して以来ずっと職場で Windows を使わされているのだが、なぜにこんなポンコツで開発せにゃあならんのか。とにかく Windows は開発環境としては紙屑以下で、なぜなら紙屑はメモ帳に使えるが Windows のメモ帳は完全に終わっているからだ。最低限、 Unix の標準的なコマンドやツールを移植した奴を「でべろっぱー・えでぃしょん」とでも称して売り出せよ。そうすりゃ会社側に購入するよう交渉してやる。まあ、それでも俺個人で買うことは未来永劫無いと断言してもいいが。

(18:27)

去年はさっぱりプログラミング言語の習得に時間を費やせなかったので、実に久しぶりに Haskell の勉強を再開。やはりこういうときには入門書があると便利なので、「ふつうの Haskell プログラミング」を購入。まだ第一部までしか終わってないけど、非常にわかりやすく書かれていて今のところはかなりの好印象。

もっとも本および著者への印象と反比例して Haskell に対する「何故じゃ」という感覚は残りっぱなしなんだけど。例えば俺は Python でプログラムを書くときに次のようなコードをよく書く。

__all__ = ['foo', 'Bar']
def foo(...):
  # 関数本体
  
class Bar(object):
  # クラス本体
 
    :
    :
  
def main(...):
  # メイン関数
  
if __name__ == '__main__':
  import sys
  sys.exit(main(sys.argv[1:]))

つまりそのままスクリプトとしてもモジュールを使えるようにしてるんだけど、これが Haskell だと出来ないようだ。というのも、 Haskell では main 関数は Main モジュールで定義するようになっていて、もしも main 関数を他の名前の付けられたモジュールで定義しようとするとエラーになる。多分こういう場合にはライブラリ部分と実行ファイルは別に作ったりとか、 Prelude でインポートしてテストするんだろうけど、どうにも俺の好みではないなあ。特に俺はテストコードを (ある程度の規模までなら) 本体のソースコードに含めてしまって、それで Makefile に

test:
  python foo.py
  python hoge.py
       :
       :
       :

という感じで追加して make test とかをやっている。まあ、全然違う言語なんだからスタイルまで込みで頭を切り替えるのはむしろ当たり前なんだろうけどさ。

Creative Commons
この怪文書はクリエイティブ・コモンズ・ライセンスの元でライセンスされています。引用した文章など Kuwata Chikara に著作権のないものについては、それらの著作権保持者に帰属します。