Partout où j'ai essayé d'utiliser map
, fmap
a également fonctionné. Pourquoi les créateurs de Haskell ont-ils ressenti le besoin d'une fonction map
? Ne pourrait-on pas simplement supprimer ce qui est actuellement connu sous le nom de fmap
et fmap
?
Réponses
Trop de publicités?Je tiens à apporter une réponse à attirer l'attention sur augustss du commentaire ci-dessus:
Ce n'est pas réellement comment ça se passe. Ce qui s'est passé est que le type de carte a été généralisé pour couvrir Foncteur en Haskell 1.3. I. e., en Haskell 1.3 fmap a été appelé carte. Ce changement est ensuite revenue en Haskell 1.4 et fmap a été introduit. La raison de ce changement était pédagogiques; lors de l'enseignement de Haskell pour les débutants de la très général type de carte messages d'erreur les plus difficiles à comprendre. À mon avis, ce n'était pas la bonne façon de résoudre le problème.
Haskell 98 est considéré comme un pas en arrière par certains Haskellers (moi y compris), les versions précédentes ayant défini d'une manière plus abstraite et cohérente de la bibliothèque. Oh bien.
Des raisons historiques.
La première venue map
, parce que, eh bien, il y avait des listes.
Puis quelqu'un a dit: "qu'il soit foncteurs!". Et a été un peu vexé, b/c map
était déjà pris. Alors ils ont dit "fuck it, appellent fmap
."
Et il en fut ainsi.
Ensuite, Functor
est devenu une partie de la bibliothèque standard, et toute personne a dit "c' fmap
nom est boiteux, mais nous ne voulons pas changer le nom de l' map
, parce que cela risquerait de casser des trucs."
Donc ils n'ont pas.
Edit: Ou, selon le cas, en fait, je me trompe: voir augustss de commentaire ci-dessous.