On Thu, Jan 20, 2011 at 10:22 PM, karol skocik karol.skocik@gmail.com wrote:
Some time ago, I tried to communicate on IRC channel about a very, very simple addition: string+, which is obviously a nice, small name for (apply #'concatenate 'string strings).
Pet peeve: string+ is a *small* name, but it is not a *nice* name for string concatenation. Additive notation for string concatenation is extremely ugly and counter-intuitive for anyone who has studied mathematics. It is extremely annoying that C++, JavaScript and a few other languages have adopted this convention. Additive notation is normally used for commutative operations, which string concatenation is not.
There already is a standard notation for string concatenation, from long before the days of computers and programming languages. Mathematically, strings under concatenation is the free monoid (http://en.wikipedia.org/wiki/Monoid) over the set of all available characters. The single binary operation in a non-commutative monoid is nearly always written as multiplication. And even if you don't know anything about abstract algebra, multiplicative notation makes much more sense: After all, even in elementary high school algebra, abc*de equals abcde, but abc+de does not.
Therefore, if you really need a function for string concatenation and want to share it with the world, please name it string*, not string+
Tord