Questions tagged «unit-type»

6
究竟Haskell中的()是什么?
我正在阅读Learn Has a Haskell,在monad章节中,对我来说,()每种类型都将其视为一种“空值”。当我检查()GHCi的类型时,我得到 >> :t () () :: () 这是一个非常令人困惑的声明。看来这()本身就是一种类型。我对它如何适合该语言以及它似乎能够代表任何类型感到困惑。

1
在Haskell中评估函数->()有什么规则?
就像标题中所说的那样:对Haskell函数返回单元进行评估有什么保证?有人会认为在这种情况下无需运行任何类型的评估,()除非存在明确的严格性要求,否则编译器可以将所有此类调用替换为立即值,在这种情况下,代码可能必须决定是否应返回()或底部。 我已经在GHCi中对此进行了实验,似乎发生了相反的情况,也就是说,似乎正在评估这种功能。一个非常原始的例子是 f :: a -> () f _ = undefined f 1由于存在,评估会引发错误undefined,因此肯定会发生某些评估。但是,尚不清楚评估的深度。有时它看起来像需要评估返回函数的所有调用一样深入()。例: g :: [a] -> () g [] = () g (_:xs) = g xs 如果使用,此代码将无限循环g (let x = 1:x in x)。但是之后 f :: a -> () f _ = undefined h :: a -> () h _ …
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.