Haskell 赋值类型

标签 haskell

来自 haskell.org 网站:每个表达式都有一个类型。那么什么是类型

main = putStrLn "Hello, World!"
我想知道 main 的类型是什么是,但整行的类型是什么。另外,是否有可能在 ghci 中以某种方式获得这种类型?我试过了
:t (main = putStrLn "Hello, World!")
但这不起作用。

最佳答案

main = putStrLn "Hello, World!"不是表达式,因此没有类型。这是一个定义,它分配了一个类型为 IO () 的值。 (由 putStrLn :: String -> IO () 的评估产生)到名称 main .
根据定义,可以找到main的类型:

> :t main
main :: IO ()

关于Haskell 赋值类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65563480/

相关文章:

haskell - Cabal 包安装失败

haskell - 如何运行已部署的 Haskell Web 应用程序

haskell - Haskell 中的基本求和

haskell - 是 (map f) == concatMap (map f . ( :[]))?

haskell - 我们自己的数据类型的最大值

Haskell 单子(monad) IO

performance - 何时在 Haskell 中严格评估?

performance - 分析 Haskell 程序

haskell - 如何获取 TemplateHaskell 命名变量的文字值

haskell - 使用 as-pattern 时的非详尽模式