显示函数的标准包只返回一个常量字符串:
λ> :m +Text.Show.Functions
λ> show (+1)
"<function>"
GHCi的:type
命令更有用:
λ> :t (+1)
(+1) :: Num a => a -> a
在运行时是否无法获得如此高水平的细节?编译过程是否会留下关于函数的任何信息,除非它们是函数?
答案 0 :(得分:3)
不完全相同的详细信息,但您可以使用Data.Typeable中的typeOf
:
Prelude> import Data.Typeable
Prelude Data.Typeable> typeOf (+1)
Integer -> Integer