前不久我发现了Natural
数据类型base
。当你打算使用非负整数类型时,它应该被采用(就我看来)。但这并不完全清楚,为什么我应该更喜欢Natural
到Integer
。两种类型都具有任意精度,都具有相当优化的运行时表示 - Integer
representation和Natural
representation。但是当你减去自然数时,这不会真的为你的代码增加更多的类型安全。而Integer
在所有软件包中更受欢迎。何时在Haskell中选择'Integer'中的'Natural'?
那么何时以及为什么要使用Natural
?
这可能有点自以为是,但我的标准是“如果你更喜欢运行时错误的负面结果,选择'自然'” – chi
@chi同意。虽然我们在'Num'类型类中有'negate'和'( - )',所以我们可以做到不允许减法。 – Shersh