> Int maxBound
在ghci中
,我得到
Not in scope: data constructor 'Int'
即使我import Data.Int
,仍然是問題仍然存在。這裏發生了什麼?
> Int maxBound
在ghci中
,我得到
Not in scope: data constructor 'Int'
即使我import Data.Int
,仍然是問題仍然存在。這裏發生了什麼?
編輯:該函數的官方文檔是在http://www.haskell.org/ghc/docs/7.0.3/html/libraries/base-4.3.1.0/Prelude.html#v:maxBound
首先,你應該做
Prelude> maxBound :: Int
9223372036854775807
Prelude>
開始。如果你看看maxBound
類型簽名:
Prelude> :t maxBound
maxBound :: (Bounded a) => a
然後maxBound
是一個返回a
類型的函數,其中a
是Bounded
。但是,它不接受任何參數。 Int maxBound
意味着您正嘗試使用數據構造函數Int
和參數maxBound
創建一些內容。
對於您的特定錯誤消息,您正嘗試使用Int
- 這是一種類型 - 作爲值,導致出現錯誤。導入Data.Int
不會幫助。
這不是有效的Haskell。
maxBound
是定義的是在the Bounded
class類型的最大元素的常數:
Prelude> :t maxBound
maxBound :: Bounded a => a
要獲得界任何特定類型的,你需要把它專注於一個特定的類型。 Type annotations由::
語法上表現給出,就像這樣:
Prelude> maxBound :: Int
9223372036854775807
一個完整的一邊,鏈接到ZVON是不好的做法,這些天:這是非常過時的,有時甚至誤導。最好鏈接到Prelude或基礎庫的Hackage文檔。 – 2011-04-24 02:59:52
對不起,這是第一個谷歌鏈接。我會改變它。 – 2011-04-24 14:47:22