[Python-ideas] Revisiting dedicated overloadable boolean operators

Todd toddrjen at gmail.com
Sat Aug 4 14:40:54 EDT 2018


On Sat, Aug 4, 2018 at 9:13 AM, Steven D'Aprano <steve at pearwood.info> wrote:

> On Fri, Aug 03, 2018 at 03:17:42PM -0400, Todd wrote:
>
> > Boolean operators like the sort I am discussing have been a standard part
> > of programming languages since forever.  In fact, they are the basic
> > operations on which modern microprocessors are built.
> >
> > The fact that Python, strictly speaking, doesn't have them is extremely
> > unusual for a programming language.
>
> I'm rather surprised at this claim.
>
> Can you give a survey of such overridable boolean operators which are
> available on modern microprocessors?
>
> What programming languages already have them? When you say "forever",
> are you going back to Fortran in the 1950s?
>

Sorry I wasn't clear, I didn't mean overloadable boolean operators are
standard, but rather boolean operators in general.  I was trying to point
out that there is nothing domain-specific about boolean operators.


> > In many cases they aren't necessary in
> > Python since Python's logical operators do the job well enough, but there
> > are a set of highly diverse and highly prominent cases where those
> logical
> > operators won't work.
>
> Can you list some of these diverse and highly prominent use-cases?
>
> I can think of two:
>
> - elementwise boolean operators, such as in numpy;
>
> - SQL-like DSL languages;
>
> plus a third rather specialised and obscure use-case:
>
> - implementing non-binary logical operators, for (e.g. ternary
>   or fuzzy logic).
>

Also symbolic mathematics like in sympy.  That is three.


> > There are workarounds, but they are less than
> > optimal for the reasons I describe, and the previous discussion I linked
> to
> > goes into much more detail why these new operators are important.
>
> There are certainly advantages to using binary operators over named
> functions, and a shortage of good, ASCII punctuation suitable for new
> operators.
>
> I don't think much of your names bOR etc.
>
> I think that before adding more ad hoc binary operators, we ought to
> consider the possibility of custom operators.


I am personally very strongly against custom operators.  I just have
visions of someone not liking how addition works for some particular class
and deciding implementing a "+" operator would be a great idea.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-ideas/attachments/20180804/a35aa17f/attachment-0001.html>


More information about the Python-ideas mailing list