2016-05-17 21 views
20

Podczas czytania fragmentu kodu Haskella natknąłem się na to: <$>. Co to znaczy w Haskell? Po przeszukaniu google pozostaje w ciemności.

+2

To nie jest ostatni "dziwny symbol Haskella", z którym się spotkasz :) – Jubobs

+1

Symbole FYI (http://symbolhound.com/?q=%3C%24%3E+haskell) lub dokładniej hoogle (https : //www.haskell.org/hoogle/? hoogle =% 3C% 24% 3E) są przydatne w tej sytuacji. – ron

Odpowiedz

34

Google nie jest najlepszą wyszukiwarką dla Haskell. Spróbuj Hoogle lub Hayoo zarówno skieruje Cię od razu to this:

(<$>) :: Functor f => (a->b) -> f a -> f b 

To jedynie synonimem infix dla fmap, więc można napisać np

Prelude> (*2) <$> [1..3] 
[2,4,6] 
Prelude> show <$> Just 11 
Just "11" 

Podobnie jak większość funkcji infiksowych, to nie wbudowanej składni, po prostu definicja funkcji. Ale funktory są tak podstawowym narzędziem, że <$> znajduje się prawie wszędzie.