Hatena::Grouphaskell

猫とC#について書く代わりにHaskellとF#について書くmatarilloの日記 このページをアンテナに追加 RSSフィード

2015-12-07

演算子オーバーロードとユーザ定義型変換とカスタム数値リテラルとジェネリック単位元と

| 19:57 | 演算子オーバーロードとユーザ定義型変換とカスタム数値リテラルとジェネリック単位元と - 猫とC#について書く代わりにHaskellとF#について書くmatarilloの日記 のブックマークコメント

(12/8追記: 檜山さんの新しい記事を受けて、別バージョンを書きました。https://gist.github.com/matarillo/d9861bcce64b4b6ae4da 明日には新しいブログエントリーを書くつもりです。)


Re: コンピュータは「掛け算は足し算とする」を理解できるか - 猫とC#について書く代わりにHaskellとF#について書くmatarilloの日記 - haskellの続き。

もともとの コンピュータは「掛け算は足し算とする」を理解できるか - 檜山正幸のキマイラ飼育記に近しいコードに書き直しました。

Qをプリフィックスとするカスタム数値リテラルを定義してみました。

0Q1Qの扱いをどうするか悩みましたが、実数 0.0および1.0からの変換と同じ扱いにしました。

MinPlus半環の単位元が必要な場合は、MinPlus.ZeroおよびMinPlus.Oneを使う想定です。

この2つが定義されているので、LanguagePrimitives.GenericZeroLanguagePrimitives.GenericOneを使うこともできます。といってもインライン関数以外で使ってもそんなにうれしくないですが……