She*_*rsh 8 haskell integer primitive-types integer-arithmetic
不久前我发现了Natural
数据类型base
.当您打算使用非负整数类型时,它应该被视为(在我看来).但我不清楚为什么我更愿意这样Natural
做Integer
.两种类型都具有任意精度,两者都具有相当优化的运行时表示 - Integer
表示和Natural
表示.但是当你减去自然数时,Natural
可以抛出纯粹的异常,这并没有真正为你的代码添加更多的类型安全.虽然Integer
在所有套餐中更受欢迎.
那么何时以及为什么要使用Natural
?
我不明白您为什么要使用Natural
或Integer
。为什么不使用它Rational
呢?它具有任意精度,具有优化的运行时表示形式,并且适用于自然数,整数和有理数!
我的观点是,我们应该选择一种在语义上有意义的类型。让我们用自然数来统计街上的房屋,用整数记录下一次高尔夫比赛,并用理性来划分新鲜的蓝莓派。