Haskell:检查是否为整数,或检查变量的类型

时间:2010-11-09 08:05:38

标签: haskell

所以,假设你有一个变量n。

你想检查它是否是一个整数,或者更好,但检查它是什么类型。

我知道haskell中有一个函数,isDigit会检查它是否为char。

但是有一个函数可以检查n是否为整数,或者更好,是否给出了n的类型?

2 个答案:

答案 0 :(得分:19)


import Data.Typeable
isInteger :: (Typeable a) => a -> Bool
isInteger n = typeOf n == typeOf 1

但是你应该考虑一下你的代码,这不像Haskell应该的那样,而且它可能不是你想要的。

答案 1 :(得分:11)

如果您正在使用交互式Haskell提示符(如GHCi),则可以键入:t <expression>,这将为您提供表达式的类型。

e.g。

Prelude> :t 9

给出

9 :: (Num t) => t

或者例如

Prelude> :t (+)

给出

(+) :: (Num a) => a -> a -> a