さて、今回はPOP3クライアントのモジュールを書いてみようと思います。前回、半泣きでテストを書いてみたので、それに合わせてつらつらと書いていけば良いはずです。 ところでPOP3では、三つの状態(AUTHORIZATION, TRANSACTION, UPDATE)が規定されています。「クライアント側だから考慮しなくていいかなぁ」と迷ったものの、そういう仕様を知ってしまった以上は実装してみたいと思います。趣味のYAGNI破りです。 では、前回ざっと決めたデザイン(オブジェクトを使う、POP3サーバーとの入出力は関数で包んじゃう、など)に沿ってコードを書いていきます。いつも通り、コンパイルエラーの山と戦うのですが、経験値が上がってきたおかげで以前ほど、苦しまなくなってきました。 で、できたのがこんなコード。 type stat = | Authrization | Transaction |