2016-05-17 14 views
20

Mentre leggevo un pezzo di codice Haskell mi sono imbattuto in questo: <$>. Cosa significa in Haskell? Dopo alcune ricerche su google rimango al buio.

+2

Questo non è l'ultimo "simbolo strano di Haskell" che incontrerai :) – Jubobs

+1

FYI symbolhound (http://symbolhound.com/?q=%3C%24%3E+haskell) o più specificatamente hoogle (https : //www.haskell.org/hoogle/? hoogle =% 3C% 24% 3E) sono utili in questa situazione. – ron

risposta

34

Google non è il miglior motore di ricerca per Haskell. Prova Hoogle o Hayoo, entrambi si punta subito to this:

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

E 'semplicemente un sinonimo infisso per fmap, in modo da poter scrivere per esempio

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

Come la maggior parte funzioni infissa, non è built-in sintassi, solo una definizione di funzione. Ma i funtori sono uno strumento così fondamentale che lo <$> si trova praticamente ovunque.