Haskell函数返回整数

我如何编写一个返回Integer的函数?

f True = 1
f False =0
f 1 = 1
f 2.30 = 2


类型a -> Integer的唯一函数将是常量函数。 这是一个由类型的参数性保证的自由定理(由于Haskell的一些不完善的角落,所以模仿一些欺骗)。

这是一个这样的功能的例子:

f :: a -> Integer
f _ = 1

一般来说,没有办法做到这一点,而且这也不是可取的,但是您提到的以及其他一些案例可以通过丑陋的黑客获得:

f :: Enum n => n -> Integer
f x = toInteger (fromEnum x)

作为一般规则,最好简单地假装Enum类不存在,因为它设计得非常糟糕,并且其一些实例表现不佳。

链接地址: http://www.djcxy.com/p/80797.html

上一篇: Haskell function returning Integer

下一篇: Haskell: iterate in State, how to force the behaviour I want?