为什么Text.Show.Functions只返回<function>?

时间:2017-04-14 11:05:31

标签: haskell reflection

显示函数的标准包只返回一个常量字符串:

λ> :m +Text.Show.Functions 
λ> show (+1)
"<function>"

GHCi的:type命令更有用:

λ> :t (+1)
(+1) :: Num a => a -> a

在运行时是否无法获得如此高水平的细节?编译过程是否会留下关于函数的任何信息,除非它们是函数?

1 个答案:

答案 0 :(得分:3)

不完全相同的详细信息,但您可以使用Data.Typeable中的typeOf

Prelude> import Data.Typeable
Prelude Data.Typeable> typeOf (+1)
Integer -> Integer