2015-08-26 2 views
7

Sembra esserci due implementazioni del funtore costante:Qual è la differenza tra Const e Constant?

Perché ciascuno di essi esistono, e quale dovrei uso?

+1

bene il primo sembra avere più "batterie incluse";) – Carsten

+3

Questo è strano. 'Data.Functor.Constant' sembra essere rilasciato nel 2010, molto tempo dopo' Control.Applicativo'. E fornisce qualcosa che è meno utile di quello che c'era già disponibile. Quindi sembra davvero che 'Constant ab' sia praticamente inutile ... – Bakuriu

risposta

9

Fanno esattamente la stessa cosa. Per quanto ne sappia, la maggior parte delle persone usa Const perché è più vecchio (come indicato da Bakuriu), è in base e ha un nome più breve. Caso in questione: lens utilizza Const. C'era almeno uno discussion about unifying them nella mailing list delle biblioteche nel 2012, ma non è andato a buon fine, apparentemente a causa di divergenze di opinione sul nome e sul modulo più appropriato per questo.

+3

C'è una [proposta più recente] (https://mail.haskell.org/pipermail/libraries/2015-July/026014.html) di Kmett a sposta alcuni tipi da 'transformers' a' base', in cui ignora deliberatamente 'Constant' (ottengo una certa atmosfera di" Die già! "da quella discussione.) (Per essere onesti,' lens' in realtà fornisce qualche supporto per esso .) –