mylić o funkcji jako instancji Functor w haskell
typ fmapy w Functorze to:
<code>fmap :: Functor f => (a -> b) -> f a -> f b </code>
wygląda na to, że najpierw należy zastosować funkcję (a -> b) do parametru f a, aby utworzyć wynik typu b, a następnie zastosować do niego f, a wynikiem jest f b
używając Może na przykład:
<code> fmap show (Just 1) result is : Just "1" </code>
tak samo jak mówiąc:
<code>Just (show 1) </code>
ale gdy (->) jest używany jako Funktor (w Control.Monad.Instances)
<code>import Control.Monad.Instances (fmap show Just) 1 result is : "Just 1" </code>
to znaczy, najpierw stosuje się Just, a następnie stosuje się show. w innym przykładzie wynik jest taki sam:
<code> fmap (*3) (+100) 1 result is 303 </code>
dlaczego nie * 3 najpierw, a potem +100?