user-defined operators

Martin J. Logan <>
Fri Mar 26 23:34:55 CET 2004


On Fri, 2004-03-26 at 16:18, Eric Newhuis wrote:
> This is orthogonal to user-defined operators.
> 
> One can already define confusing function names.  Consider:
> 
> dbg:ctpg(gq, x, 1) is no less confusing than {gq, x, 1} `@#` Blah.

I am just getting at the fact that if you have polymorphic functions and
you define your operators based on those functions then you naturally
have operator overloading. When you have overloading you have the
potential for the mess below.   | Which I would argue is worse.
                               \/

> 
> 
> > How about this?
> >
> >     N `@#` Primes
> >     Seconds `@#` 60
> >     MoreSeconds `@#` (Seconds `@#` String `@#` String2)
> >
> > I want my `operator` to be defined as such.
> >
> > '@#'(A, B) when is_integer(A), is_list(B) -> ...
> > '@#'(A, B) when is_integer(A), is_integer(B) -> ...
> > '@#'(A, B) when is_list(A), is_list(B) -> ...




More information about the erlang-questions mailing list