由于 lambda 演算,Haskell 比许多语言更具数学性,但我认为域对于数字是不完整的:例如,我们有Integerand ,但没有or , or作为域。这有时会使函数不安全,而编译器可能已经捕获了类型错误。例如:mod仅在运行时
输出。但我们可以有类似的东西;类似守卫、间隔或其他数据类型的东西……在游戏中,我希望我的角色在其生命中拥有一个正数。或者从 0 到 100,不下,不上。当他被击中时,我需要打电话给丑陋的人。甚至 C 也有和。FloatPositiveNegative[1..5]50*** Exception: divide by zeromod :: Integral a => a -> a -> amod :: Integral a, a != 0 => a -> a -> apositive x = if x > 0 then x else 0signedunsigned
这是一个弱点还是他们没有“间隔”域的原因?有解决这个问题的包吗?