il tipo di FMAP in Functor è:confuso circa funzione di istanza di Functor in Haskell
fmap :: Functor f => (a -> b) -> f a -> f b
sembra, la funzione (a -> b) si applicano prima al parametro di fa per creare un risultato di tipo b, quindi applicare f ad esso, e il risultato è fb
utilizzando Forse un esempio:
fmap show (Just 1)
result is : Just "1"
equivale a dire:
Just (show 1)
ma quando (->) è usato come un funtore (in Control.Monad.Instances)
import Control.Monad.Instances
(fmap show Just) 1
result is : "Just 1"
che è, solo è applicare prima, poi spettacolo viene applicato. in un altro esempio, risultato è lo stesso:
fmap (*3) (+100) 1
result is 303
perché non * 3, poi 100?
sì, la tua risposta è fantastica! Ho fatto un grosso errore. Grazie mille. –
Confondo "parametro tipo" con un parametro concreto –