Because Julia uses multiple dispatch, an effort is being made to ensure that all functions always mean the same thing. So the mathematical case affects the non-mathematical case.
I'm checking out of this conversation now so that I can get back to my actual job. I'm confident Stefan will make a good decision about this in due time. -- John On Jul 3, 2014, at 8:34 AM, yi lu <zhiwudazhanjiang...@gmail.com> wrote: > When you talk about convention, you regard julia language as a programming > language like MATLAB or a more general purpose language? Again, it is all > about string concatenation, not operations on a ring. > > > On Thu, Jul 3, 2014 at 11:13 PM, John Myles White <johnmyleswh...@gmail.com> > wrote: > That is true, but the convention exists nonetheless. Consider, for example, > this branch of the combinatorics literature: > http://en.wikipedia.org/wiki/Square-free_word > -- John > > > On Jul 3, 2014, at 8:09 AM, yi lu <zhiwudazhanjiang...@gmail.com> wrote: > >> I know abstract algebra. When talking about string concatenation, a monoid >> is enough. It is true that in a ring, "+" is a commutative operator, and "*" >> no commutative required, however, a ring is far beyond what needed to do a >> string concatenation job. >> >> >> On Thu, Jul 3, 2014 at 10:59 PM, John Myles White <johnmyleswh...@gmail.com> >> wrote: >> This is just the standard convention in mathematics. See just about any >> textbook on abstract algebra for a discussion of the reasons. >> >> I think it's safe to say that `+` will never be string concatenation, so >> it's better to focus energy on other proposals. >> >> -- John >> >> On Jul 3, 2014, at 7:57 AM, yi lu <zhiwudazhanjiang...@gmail.com> wrote: >> >>> @John I know that "*" means no commutative, but I see no reason "+" has a >>> meaning of commutative. >>> >>> >>> On Thu, Jul 3, 2014 at 10:53 PM, Stefan Karpinski <ste...@karpinski.org> >>> wrote: >>> That's even worse. >>> >>> >>> On Thu, Jul 3, 2014 at 10:52 AM, yi lu <zhiwudazhanjiang...@gmail.com> >>> wrote: >>> I will vote for "+", although I learn mathematics. Maybe that is why I am >>> not a mathematician. >>> >>> Yi >>> >>> >>> On Thu, Jul 3, 2014 at 10:45 PM, Stefan Karpinski <ste...@karpinski.org> >>> wrote: >>> On Thu, Jul 3, 2014 at 9:42 AM, Ivar Nesje <iva...@gmail.com> wrote: >>> We should really create a simple system where you can get those hints >>> printed in the REPL, without defining more methods. >>> >>> Yes, I think we should really pursue this avenue. >>> >>> For what it's worth – and perhaps something since I'm the original >>> perpetrator of the str*str concatenation syntax – I've come to regret this >>> operator choice. My reasoning at this point is that we want our operators >>> to have fairly "pure" meanings. I chose str*str because concatenation can >>> be viewed as a kind of multiplication in the ring of string patterns >>> (alternation in the regex sense is the addition operation, the empty string >>> is the unit and the non-matching pattern is the zero). However, many >>> operations can be viewed as a form of multiplication. In the max-plus >>> algebra, for example, addition is the multiplication operator. So, at this >>> point I think we should stick to very pure classical meanings for operators >>> in Base – the Base.* function should be just addition of numbers in the >>> classical sense, not the broader sense of addition in any conceivable ring. >>> >>> >>> >>> >> >> > >