私はNatural
のデータタイプがbase
であることを発見しました。私は負でない整数型を使うつもりであると思われます。しかし、なぜ私がNatural
からInteger
までを好むべきかはっきりしていません。どちらの型も任意の精度を持ち、どちらも非常に最適化されたランタイム表現 - Integer
representationとNatural
representationを持っています。しかしNatural
can throw pure exceptions自然数を減算すると、実際にはコードに型の安全性が増しません。一方、Integer
はすべてのパッケージで人気があります。ハスケルで 'Natural'を 'Integer'で選択するのはいつですか?
だからいつ、なぜNatural
を使うべきですか?
これはちょっと意見が分かれるかもしれませんが、私の判断基準は「実行時エラーを否定的な結果にするには 'Natural'を選択してください」 – chi
@chi同意してください。 'Num'型クラスの中に' negate'と '( - )'を持っていますが、減算を許さないようにすることはできません。 – Shersh