[Python-Dev] PEP 443 - Single-dispatch generic functions (original) (raw)
Antoine Pitrou solipsis at pitrou.net
Thu May 23 09:14:35 CEST 2013
- Previous message: [Python-Dev] PEP 443 - Single-dispatch generic functions
- Next message: [Python-Dev] PEP 443 - Single-dispatch generic functions
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
On Thu, 23 May 2013 02:33:57 -0400 Devin Jeanpierre <jeanpierreda at gmail.com> wrote:
On Thu, May 23, 2013 at 2:04 AM, Antoine Pitrou <solipsis at pitrou.net> wrote: > On Thu, 23 May 2013 12:12:26 +1000 > Nick Coghlan <ncoghlan at gmail.com> wrote: >> The binary operators can be more accurately said to use a complicated >> single-dispatch dance rather than supporting native dual-dispatch. > > Not one based on the type of a single argument, though.
Why not? I'd expect it to look something like this: @singledispatch def ladd(left, right): return NotImplemented @singledispatch def radd(right, left): return NotImplemented def add(left, right): x = ladd(left, right) if x is not NotImplemented: return x x = radd(right, left) if x is not NotImplemented: return x raise TypeError Then instead of defining add you define an overloaded implementation of ladd, and instead of defining radd you define an overloaded implementation of radd.
Well, I don't think you can say add() dispatches based on the type of a single argument. But that may be a question of how you like to think about decomposed problems.
Regards
Antoine.
- Previous message: [Python-Dev] PEP 443 - Single-dispatch generic functions
- Next message: [Python-Dev] PEP 443 - Single-dispatch generic functions
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]