我有一个代码片段,如下所示
displayAge :: Show a => Maybe a -> IO ()
displayAge maybeAge =
case maybeAge of
Nothing -> putStrLn "Invalid year"
Just maybeAge -> putStrLn $ show maybeAge
Run Code Online (Sandbox Code Playgroud)
该函数从控制台获取其参数,并通过readMay函数传递给它,如下所示;
main = do
putStrLn "Your birth year"
strYear <- getLine
let maybeAge = do
intYear <- readMay strYear
return (processYear intYear)
displayAge maybeAge
Run Code Online (Sandbox Code Playgroud)
你能解释一下这个displayAge函数的类型声明吗?为什么Show a用?