Подтвердить что ты не робот

Haskell: проверьте, является ли целое число или проверяет тип переменной

Итак, скажем, у вас есть переменная n.

Вы хотите проверить, целое ли оно, или еще лучше, проверить, какой тип он есть.

Я знаю, что есть функция в haskell, isDigit, которая проверяет, является ли это char.

Однако существует ли функция, которая проверяет, является ли n целым или даже лучше, дает тип n?

4b9b3361

Ответ 1

Если вы используете интерактивную подсказку Haskell (например, GHCi), вы можете ввести :t <expression>, и это даст вам тип выражения.

например.

Prelude> :t 9

дает

9 :: (Num t) => t

или, например,

Prelude> :t (+)

дает

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

Ответ 2


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

Но вы должны подумать о своем коде, это не очень похоже на Haskell, и это, вероятно, не то, что вы хотите.