この記事はF# Advent Calendar 2013の21日目です。 ひとつ前の記事は、@zeclさんの判別共用体で型付きDSL。弾幕記述言語BulletMLのF#実装、FsBulletML作りました。です。 弾幕、素敵ですね。楽園の素敵な巫女さん関連の美しい弾幕もいいですが、殺しに来る弾幕も好きです。死ぬがよい。 数値型 intやfloatなどの数値型はプログラム中に頻繁に登場します。プログラミングの本分は計算であるといえるのでこれは当然でしょう。 その反面、あまりにも当たり前に登場する型であるがゆえに生じる問題もあります。 数値型関連のミスはコンパイルエラーとならない! 例えば、人間を表すPerson型の変数に間違えて車を表すCar型のインスタンスを代入しちゃった! なんてミスはコンパイル時(IDEや高機能エディタを使用していれば編集時)に検出されますが、 身長を表すint型の変数