Rational is currently restricted to numbers: Rational{T<:Number}.  I’m 
assuming Number implicitly means commutative number (i.e., not Quaternion).  



> On 4 Apr 2016, at 8:55 PM, Tim Holy <[email protected]> wrote:
> 
> On Sunday, April 03, 2016 09:28:28 AM Scott Jones wrote:
>> With \\, would you worry about confusion from the fact that in a \\ b, a is
>> 
>>> in
>>> the denominator? Especially if it gets called the "integer division
>>> operator."
>> 
>> It might confuse some of the mathematicians, used to a \ b as a inverse
>> multiplication operator, however, other languages use a \ b for what in
>> Julia is div(a, b) or a÷b,
>> so I really don't think a definition of \\ as div(a, b) would be that much
>> of a problem, no worse than other things you have to remember in Julia,
>> and it's reminiscent of the // integer division operator in Python and Lua.
> 
> Thinking about it a second time, there's another reason I'd recommend against 
> this choice: if you're working with non-commutative numbers, for consistency 
> \\ too should be reserved for forming Rationals rather than meaning something 
> completely different. In other words, b//a means RightRational(b, a) 
> (b*inv(a)) 
> and a\\b means LeftRational(a, b) (inv(a)*b). I suspect our current Rational 
> framework implicitly assumes commutativity, but that's a separate issue and 
> one that, with a suitable number-traits system, is cleanly resolvable.
> 
> I'm not trying to argue that making rationals with non-commutative numbers is 
> a daily task, but to me consistency in the meaning of notation seems like the 
> most important guiding principle. Code gets read many more times than it is 
> written, so I don't mind a few extra keystrokes if it makes reading code 
> clearer.
> 
> But once again, it seems there just aren't enough characters on the keyboard.
> 
> Best,
> --Tim
> 

Reply via email to