所以,假设你有一个变量n。
你想检查它是否是一个整数,或者更好,但检查它是什么类型。
我知道haskell中有一个函数,isDigit会检查它是否为char。
但是有一个函数可以检查n是否为整数,或者更好,是否给出了n的类型?
答案 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