On 06/10/2016 15:43, Sjoerd Job Postmus wrote:
On Thu, Oct 06, 2016 at 03:01:36PM +0100, Paul Moore wrote:
On 6 October 2016 at 14:45, Filipp Bakanov <fil...@bakanov.su> wrote:
For now there are many usefull builtin functions like "any", "all", etc. I'd
like to propose a new builtin function "equal". It should accept iterable,
and return True if all items in iterable are the same or iterable is emty.
That's quite popular problem, there is a discussion of how to perform it on
stackoverflow
(http://stackoverflow.com/questions/3844801/check-if-all-elements-in-a-list-are-identical)
- all suggestions are either slow or not very elegant.
What do you think about it?

It's not a problem I've needed to solve often, if at all (in
real-world code). But even if we assume it is worth having as a
builtin, what would you propose as the implementation? The
stackoverflow discussion highlights a lot of approaches, all with
their own trade-offs. One problem with a builtin is that it would have
to work on all iterables, which is likely to preclude a number of the
faster solutions (which rely on the argument being an actual list).

It's an interesting optimisation problem, and the discussion gives
some great insight into how to micro-optimise an operation like this,
but I'd question whether it needs to be a language/stdlib feature.

Paul

I've needed it several times, but can't really remember what for
anymore, which makes me think it's not really that important.
A motivating reason for adding it to the builtins would be that it can
be written in C instead of Python, and hence be a lot faster.

This should be on the bug tracker as "release blocker" as we clearly need something that is fast that isn't that important.

--
My fellow Pythonistas, ask not what our language can do for you, ask
what you can do for our language.

Mark Lawrence

_______________________________________________
Python-ideas mailing list
Python-ideas@python.org
https://mail.python.org/mailman/listinfo/python-ideas
Code of Conduct: http://python.org/psf/codeofconduct/

Reply via email to