Proposal: Add singleton function to Data.List module

George Wilson george at wils.online
Tue Aug 13 03:59:08 UTC 2019


Weak +1, I'd want it in NonEmpty too if it's going into List.

On Tue, 13 Aug 2019 at 13:37, Joseph C. Sible <josephcsible at gmail.com> wrote:
>
> -1. AFAICT, "Polymorphic, works for any `Functor`" is an upside of
> just using `pure`, not a downside. (Please correct me if I'm wrong,
> and there is some disadvantage that I don't see.) Also, it looks like
> for everything that has a `singleton`, it's something that isn't an
> applicative functor, so they have them instead of `pure`, not in
> addition to it.
>
> Joseph C. Sible
>
> On Mon, Aug 12, 2019 at 12:14 PM Taylor Fausak <taylor at fausak.me> wrote:
> >
> > I originally made this suggestion on GitLab, but I was told to make it here instead.
> >
> > https://gitlab.haskell.org/ghc/ghc/issues/17042
> >
> > ---
> >
> > # Add list singleton function
> >
> > ## Motivation
> >
> > Sometimes it is convenient to have a function to wrap an element in a list. There are many ways to do this already, but none of them are as clear as a separate monomorphic function.
> >
> > - `pure`: Polymorphic, works for any `Functor`.
> > - `pure @[]`: Noisy, requires `-XTypeApplications`.
> > - `(: [])`: Subjectively ugly.
> > - `(\x -> [x])`: Syntactically noisy.
> >
> > This Twitter thread includes some additional commentary: https://twitter.com/taylorfausak/status/1159264862247280640
> >
> > ## Proposal
> >
> > I would like to add a `singleton` function to `Data.List` that mirrors the `singleton` function for other containers: https://www.stackage.org/lts-14.0/hoogle?q=singleton
> >
> > ``` hs
> > singleton :: a -> [a]
> > singleton x = [x]
> > ```
> >
> > Other Haskell-like languages include this function:
> >
> > - PureScript: https://pursuit.purescript.org/packages/purescript-lists/5.4.0/docs/Data.List#v:singleton
> > - Elm: https://package.elm-lang.org/packages/elm/core/latest/List#singleton
> > _______________________________________________
> > 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