From: Christoph Date: 2002-09-11T05:35:41+09:00 Subject: Re: Larry Wall's comments on Ruby "GOTO Kentaro" wrote in .... > Well, we often choose `+' for commutative operation in algebra indeed. > Several years ago, I proposed to define String#* as concatination > because `*' can read as product and String is sometimes regarded as > semigroup which has product defined as concatination in theoretical > computer science. String#* could give some merit: > > - Product may be noncommutative and a*b != b*a doesn't surprise us > not so much. > - Repeatation would be naturally replaced with String#** and it looks > clearly noncommutative. > - A user could define 1+"2" and "2"+1 as 3 like Perl. > > I proposed also Array#*. But those proposals were rejected because > `*' looked strange for many people (including matz). I find it strange that ``*'' looks strange;-) The almost universally adhered to notational tradition in Math and theoretical CS, in denoting word concatenation with multiplication (like) symbols certainly grew out of the simple algebra experience were concatenation of variables translates into multiplication. aabc = a * a * b * c So you just turn this around and you are set ... . Besides Java, Python, Ruby, etc. are probably following (as I learnt today) a Basic traction ... and Larry needed to get some things right;-) /Christoph