тип fmap в Functor:
fmap :: Functor f => (a -> b) -> f a -> f b
похоже, сначала примените функцию (a → b) к параметру f a, чтобы создать результат типа b, затем примените f к нему, а результат будет f b
using Может быть, например:
fmap show (Just 1)
result is : Just "1"
то же самое, что сказать:
Just (show 1)
но когда (- > ) используется как функтор (в Control.Monad.Instances)
import Control.Monad.Instances
(fmap show Just) 1
result is : "Just 1"
то есть Just применяется сначала, а затем применяется show. в другом примере результат будет таким же:
fmap (*3) (+100) 1
result is 303
почему не * 3 сначала, а затем +100?