
I'm +1 on this. I've defined this function in my own code before. Using
pure instead leads to harder-to-read code for future me and for
collaborators. It also leads to worse type errors in the event that I mess
something up.
On Tue, Aug 13, 2019 at 5:11 AM David Feuer
I'm moderately +1 for consistency, and for NonEmpty as well. There is a concept here: create a container containing exactly one value. As Tikhon indicates, this is a different concept from pure. For example, a singleton ZipList has one element, while a pure one has infinitely many elements.
On Mon, Aug 12, 2019, 11:14 PM Taylor Fausak
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.Lis... - Elm: https://package.elm-lang.org/packages/elm/core/latest/List#singleton _______________________________________________ Libraries mailing list Libraries@haskell.org http://mail.haskell.org/cgi-bin/mailman/listinfo/libraries
_______________________________________________ Libraries mailing list Libraries@haskell.org http://mail.haskell.org/cgi-bin/mailman/listinfo/libraries
-- -Andrew Thaddeus Martin