Ho provato ad assegnare un valore sollevato a a
.In GHCi, perché non posso mostrare `pure 1` in REPL?
λ> :m Control.Applicative
λ> let a = pure 1
Quando ho valutato a
in REPL, stampa 1
.
λ> a
1
Pertanto, ho pensato che ci potrebbe essere un'implementazione di show
per a
, e provato questo:
λ> show a
Ma la GHCi tiri un errore:
<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
Qualcuno ha qualche idee su questo?
Hai provato a verificare ': digitare a'? Questo ti direbbe qualcosa, forse. – AJFarmar
@AJFarmar In realtà, non tanto, dal momento che GHCi non ha ancora default 'm' su' IO', ancora. – chi
Un po 'di meta-spiegazione è in ordine. Mentre si può pensare a GHCi come "interprete Haskell", è in realtà un tipo piuttosto diverso di bestia. È uno strumento per sviluppare interattivamente i programmi Haskell. Mentre Haskell si preoccupa molto di mantenere le cose carine e coerenti, GHCi si preoccupa soprattutto di convenienza e utilità. – dfeuer