2015-08-26 1 views
7

Wydaje się, że dwie implementacje stałej funktora:Jaka jest różnica między Const a Constant?

Dlaczego oboje istnieją, a które z nich należy posługiwać się?

+1

Cóż, pierwszy wydaje się mieć więcej "baterii w zestawie";) – Carsten

+3

To jest dziwne. 'Data.Functor.Constant' wydaje się być wydany w 2010 roku, długo po' Control.Applicative'. I zapewnia coś, co jest mniej użyteczne niż to, co było już dostępne. Tak naprawdę wygląda na to, że "Ciągłe ab" jest prawie bezużyteczne ... – Bakuriu

Odpowiedz

9

Robią to samo. O ile mi wiadomo, większość ludzi używa Const, ponieważ jest starsza (jak zauważył Bakuriu), jest w base i ma krótszą nazwę. Przykład: lens używa Const. W 2012 roku na liście mailingowej bibliotek pojawił się co najmniej jeden numer discussion about unifying them, ale nie doszedł do skutku, najwyraźniej z powodu różnic w opiniach na temat nazwy i najbardziej odpowiedniego dla niego modułu.

+3

Jest jeszcze bardziej aktualna propozycja (https://mail.haskell.org/pipermail/libraries/2015-July/026014.html) autorstwa Kmetta na przenieś niektóre typy z 'transformatorów' na' base', w których celowo ignoruje 'Constant' (dostaję z tej dyskusji pewną" Die już! "). (Aby być uczciwym,' lens' faktycznie zapewnia pewne wsparcie .) –