|[6 earlier articles]|
|Re: Enumerated data types email@example.com (1990-08-24)|
|Re: Enumerated data types firstname.lastname@example.org (1990-08-27)|
|Re: Enumerated data types grover@brahmand.Eng.Sun.COM (1990-08-28)|
|Re: Enumerated data types corbett@lupa.Eng.Sun.COM (1990-08-29)|
|Re: Enumerated data types email@example.com (Pete Jinks) (1990-08-29)|
|Re: Enumerated data types firstname.lastname@example.org.COM (1990-08-29)|
|Re: Enumerated data types email@example.com (1990-08-29)|
|From:||firstname.lastname@example.org (Dr A. N. Walker)|
|Organization:||Maths Dept., Nott'm Univ., UK.|
|References:||<1990Aug23.email@example.com> <firstname.lastname@example.org> <email@example.com>|
|Date:||Wed, 29 Aug 90 14:26:41 GMT|
In article <firstname.lastname@example.org> email@example.com (Dik T. Winter) writes:
> 'proc'('real','int')'real' + = ('real' r, 'int' i)'real': ....
> [...]. The only kind of coercions allowed for operands
>is 'dereferencing', [...]
Also deproceduring and uniting, but not widening, rowing or voiding.
The reason is, of course, to prevent ambiguity -- you are not allowed to
overload operators with operands varying [eg] only in the reference levels,
but you are with operands varying [eg] only in row levels, so you can
disambiguate operands with the wrong reference levels, but not with the
wrong row levels.
I suspect that at least rowing could have been moved into the other
camp [though there may be some subtleties involving the interaction between
rows and references], but pragmatically one may well want to overload, in
particular, "*" to mean different things for scalars, vectors and matrices.
Andy Walker, Maths Dept., Nott'm Univ., UK.
Return to the
Search the comp.compilers archives again.