Proposal: Add singleton function to Data.List module
George Wilson
george at wils.online
Wed Aug 21 05:31:43 UTC 2019
Hi Taylor,
I'm on the Core Libraries Committee. Thank you for your proposal.
Regarding the +-1 messages in this thread, they are useful to gauge
community opinion, but they are not votes because the libraries
process is not determined by a vote.
Despite seeming innocuous, the proposed change requires careful
consideration: Data.List is specified by the Haskell Report, so adding
this function would affect the report.
While simple changes to base are typically handled directly by one of
base's maintainers, this change is report-affecting, so it is
"controversial" (as defined in [1]). Hence the CLC is discussing the
proposed change amongst ourselves before a maintainer makes their
decision.
[1] https://wiki.haskell.org/Library_submissions
Cheers,
George
On Tue, 20 Aug 2019 at 11:24, Taylor Fausak <taylor at fausak.me> wrote:
>
> It has been a week since I submitted my proposal. During that time, 28 people voted, with 16 expressing approval and 12 expressing disapproval. To everyone that voted so far: Thank you! You made for interesting discussion.
>
> I still feel that Haskell would be improved by the addition of a `singleton` function to the `Data.List` module. (And also `Data.List.NonEmpty`, even though that wasn't part of my original proposal.) I would be happy to open a merge request adding code, tests, and documentation.
>
> I haven't done so yet because I don't know what the next steps are. Can someone from the CLC tell me how an official approval or rejection can be reached, and how long that might take? Thanks!
>
> On Mon, Aug 19, 2019, at 6:39 AM, Helmut Schmidt wrote:
>
>
> Andreas, you seem to be mistaken there'd only be one container API? But there's several container APIs besides "Data.Set" which provide some collection of elements!
>
> https://hackage.haskell.org/package/dlist-0.8.0.7/docs/Data-DList.html#v:cons
>
> https://hackage.haskell.org/package/dlist-0.8.0.7/docs/Data-DList.html#v:append
>
>
>
>
> https://hackage.haskell.org/package/text-1.2.4.0/docs/Data-Text.html#v:cons
>
> https://hackage.haskell.org/package/text-1.2.4.0/docs/Data-Text.html#v:append
>
> http://hackage.haskell.org/package/vector-0.12.0.3/docs/Data-Vector.html#v:cons
>
> https://hackage.haskell.org/package/bytestring-0.10.10.0/docs/Data-ByteString.html#v:cons
>
> https://hackage.haskell.org/package/bytestring-0.10.10.0/docs/Data-ByteString.html#v:append
>
> Am Mo., 19. Aug. 2019 um 08:16 Uhr schrieb Andreas Abel <andreas.abel at ifi.lmu.de>:
>
> Helmut, do you actually know the container APIs?
>
> Show me cons and append in Data.Set!
>
> On 2019-08-18 19:40, Helmut Schmidt wrote:
> >
> >
> > Am So., 18. Aug. 2019 um 17:17 Uhr schrieb Oliver Charles
> > <ollie at ocharles.org.uk <mailto:ollie at ocharles.org.uk>>:
> >
> > On Sun, 18 Aug 2019, 5:47 pm Helmut Schmidt,
> > <helmut.schmidt.4711 at gmail.com
> > <mailto:helmut.schmidt.4711 at gmail.com>> wrote:
> >
> >
> > All these philosophical arguments calling for "consistency" with
> > the container APIs or that function need words for the human
> > mind to comprehend seem short-sighted to me. If we were
> > consistent about the proposal itself we'd also demand to add
> >
> > cons = (:)
> >
> > empty = []
> >
> > toList = id
> >
> > fromList = id
> >
> >
> > I honestly have no problem with any of these.
> >
> >
> > I forgot
> >
> > append = (++)
> >
> > We also need to address another elephant in the room... those pesky
> > tuples and their special privileged non-wordy syntax!
> >
> > pair = (,)
> >
> > triple = (,,)
> >
> > quadruple = (,,,)
> >
> > quituple = (,,,,)
> >
> > sextuple = (,,,,,)
> >
> > septuble = (,,,,,,)
> >
> > octuple = (,,,,,,,)
> >
> > If Haskell were invented in this century's EU Haskell source code would
> > be littered with €s instead of $s but then again I wonder why £ wasn't
> > picked. But I digress. We can kill two birds with one stone here:
> >
> > apply = ($)
> >
> > strictApply = ($!)
> >
> > compose = (.)
> >
> >
> > It's fun to imagine how code using those definitions would like! But
> > it's still a -1 for me, sorry!
> >
> >
> >
> >
> > _______________________________________________
> > Libraries mailing list
> > Libraries at haskell.org
> > http://mail.haskell.org/cgi-bin/mailman/listinfo/libraries
> >
>
> _______________________________________________
> Libraries mailing list
> Libraries at haskell.org
> http://mail.haskell.org/cgi-bin/mailman/listinfo/libraries
>
>
> _______________________________________________
> Libraries mailing list
> Libraries at haskell.org
> http://mail.haskell.org/cgi-bin/mailman/listinfo/libraries
More information about the Libraries
mailing list