function operators

Kragen Sitaker kragen at
Tue Nov 27 20:19:07 CET 2001

"James A. H. Skillen" <jahs at> writes:

> Has anyone ever wished that Python had operators defined on functions?
> For example, suppose you want the function f(x) = cos(x) + sin(x).
> ...
> but wouldn't:
>     f = cos + sin
> be *much* nicer?
> ...
> Taking the idea of PEP 211 further, we could have the "outer product"
> operator "@" work on functions too.

You want something like the Functor class from in the
xoltar toolkit; it overloads * to mean composition, ~, &, and | to do
the appropriate shortcut logical operations, + to mean sequence, and
<< and >> to do currying.  See for more. It's pretty
nifty, probably the coolest code I found in the Vaults.

Last year sometime, I actually wrote a bunch of code to do algebraic
manipulations, and I overloaded all kinds of Python operators to
create expressions.  Can't remember if I ever posted it; if not, it's
gone now, anyway.

More information about the Python-list mailing list