programming languages functional example book haskell functional-programming coding-style

languages - Haskell coding-style: map, fmap o<$>?



functional programming vs oop (2)

¿Hay alguna razón para preferir una de las siguientes anotaciones sobre las demás o es simplemente una cuestión de preferencia?

map toLower "FOO" fmap toLower "FOO" toLower <$> "FOO"

Como `fmap` : me doy cuenta de que <$> es lo mismo que `fmap` . ¿Estoy en lo cierto al suponer que el map es solo una forma menos general de fmap ?


Como dices, el map es una forma menos general de fmap . Si sabe que tiene una lista, entonces usaría el map ya que aclara el código y si comete un error, es probable que el mensaje de error sea menos confuso. Sin embargo, en gran medida es una cuestión de preferencia.

(<$>) es lo mismo que fmap . Hasta el GHC 7.10 no fue exportado por el Prelude, por lo que no estaba disponible de manera predeterminada, pero incluso con versiones anteriores de GHC, es fácil de importar desde Data.Functor o Control.Applicative y en la Data.Functor es una forma bastante Data.Functor de hacerlo.


Estoy de acuerdo con Ganesh en que el map es más claro para las listas. Uso <$> sobre fmap , a menos que se aplique parcialmente. Así que usaría fmap reverse para declarar una función que invierte todos los elementos de algún functor, pero si tengo todos los argumentos disponibles (por ejemplo, si estoy escribiendo una línea en un bloque do ) tiendo a usar la forma del operador: reverse <$> fx