假设您拥有一个变量n。
您想要检查它是否为整数,甚至更好的是检查它的类型。
我知道在Haskell中有一个名为isDigit的函数,可以检查它是否为字符。
但是,是否有一个函数可以检查n是否为整数,或者更好的是,提供n的类型信息呢?
假设您拥有一个变量n。
您想要检查它是否为整数,甚至更好的是检查它的类型。
我知道在Haskell中有一个名为isDigit的函数,可以检查它是否为字符。
但是,是否有一个函数可以检查n是否为整数,或者更好的是,提供n的类型信息呢?
import Data.Typeable
isInteger :: (Typeable a) => a -> Bool
isInteger n = typeOf n == typeOf 1
但是你应该考虑一下你的代码,它并不太像Haskell应该是什么样子的,而且很可能也不是你想要的。
:t <expression>
,这将显示表达式的类型。Prelude> :t 9
提供
9 :: (Num t) => t
Prelude> :t (+)
提供
(+) :: (Num a) => a -> a -> a
isDigit
,我认为他想要检查一个字符串是否表示一个整数,而不是检查一个给定的变量是否为整数,尽管标题是这样说的。此外,你的类型签名是错误的:你漏掉了Typeable
约束条件。 - sepp2k