On Mon, Oct 18, 2021 at 9:22 PM Mathew Elman <mathew.el...@ocado.com> wrote:
>
> I don't know if this has been suggested before, or if this is outlandishly 
> impossible (though I would be surprised if it was), so apologies in advance 
> if so.

As stated, it basically is.... but the cool thing about crazy ideas
is, there's often a very similar one that CAN be implemented!

What you're basically asking for is a special type of operator. Python
ships with operators like "*" meaning multiplication, where you write
the operator between the two values. You can create your own using
some very simple abuses of syntax and a nice library.

> This sort of signature is particularly annoying for boolean checks like 
> `isinstance` (N.B. I am _not_ suggesting changing any builtins), which one 
> could wrap with:
>
>     def is_(obj)_an_instance_of_(type):
>         return isinstance(obj, type)
>
> For precedence in other languages, this is similar to curried functions in 
> functional languages e.g Haskell, especially if each part of a function were 
> to be callable, which would be up for debate.

How about this:

https://pypi.org/project/infix/

@div_infix
def instance_of(obj, type):
    return isinstance(obj, type)

>>> 42 /instance_of/ int
True

It's not precisely what you were asking about, but it works on all
current versions of Python, and allows a lot of flexibility.

ChrisA
_______________________________________________
Python-ideas mailing list -- python-ideas@python.org
To unsubscribe send an email to python-ideas-le...@python.org
https://mail.python.org/mailman3/lists/python-ideas.python.org/
Message archived at 
https://mail.python.org/archives/list/python-ideas@python.org/message/GSSOPCS3NRQASC2ZYNY33YYKA74XFYXG/
Code of Conduct: http://python.org/psf/codeofconduct/

Reply via email to