Const和Constant有什么区别?

Lam*_*iry 8 haskell

似乎有两个常量仿函数的实现:

  • ConstControl.Applicative

  • ConstantData.Functor.Constant

为什么它们都存在,我应该使用哪一个?

dup*_*ode 11

他们确实做了同样的事情.据我所知,大多数人使用,Const因为它更老(如Bakuriu所指出的),base并且名称较短.例证:lens使用Const.早在2012年,至少有一次关于将它们统一在图书馆邮件列表中的讨论,但它没有通过,似乎是因为对该名称和最合适的模块的意见分歧.

  • Kmett有一个[更新的提案](https://mail.haskell.org/pipermail/libraries/2015-July/026014.html)将某些类型从`transformers`转移到`base`,其中他故意忽略"常数"(我已经从讨论中获得了"已经死!"的氛围.)(公平地说,`lens`实际上为它提供了一些支持.) (4认同)