8
我試圖分配一個提升值到a
。在GHCi中,爲什麼我不能在REPL中顯示'純1'?
λ> :m Control.Applicative
λ> let a = pure 1
當我在REPL評估a
,它打印1
。
λ> a
1
因此,我認爲有可能是show
的實施a
,並試圖這樣:
λ> show a
但GHCI拋出一個錯誤:
<interactive>:70:1-4:
No instance for (Show (f0 a0)) arising from a use of ‘show’
The type variables ‘f0’, ‘a0’ are ambiguous
Note: there are several potential instances:
instance (Integral a, Show a) => Show (GHC.Real.Ratio a)
-- Defined in ‘GHC.Real’
instance (Show a, Show b) => Show (a, b) -- Defined in ‘GHC.Show’
instance (Show a, Show b, Show c) => Show (a, b, c)
-- Defined in ‘GHC.Show’
...plus 32 others
In the expression: show a
In an equation for ‘it’: it = show a
沒有人有任何關於這個的想法?
你試過檢查':type a'嗎?那可能會告訴你一些事情。 – AJFarmar
@AJFarmar其實,並沒有那麼多,因爲GHCi並沒有將'm'默認爲'IO'。 – chi
元解釋的一點是爲了。雖然你可能認爲GHCi是一個「Haskell解釋器」,但它實際上是一種非常不同的野獸。它是交互式開發Haskell程序的工具。儘管Haskell對保持良好和一致性很擔心,但GHCi主要關心便利性和實用性。 – dfeuer