Olin Lathrop wrote: >>> I think part of the point is that certain features, like the string >>> handling Sergio described, require a lot less special syntax when >>> built in than they would require special functions if "built in" >>> that way. >> >> Can you make up an example here? I think it's the other way round: >> if it's built into the language, there tends to be a special syntax, >> whereas if it's part of a standard library, it tends to use the >> standard syntax that's already there. > > I did provide some examples that you snipped. Using, for example, > the "+" operator for string concatenation is no additional syntax at > all. It can also handle various cases of strings of different types > (ASCII, unicode, whatever) or whether they are characters or strings > if the language makes such a distinction. Unless you allow for > function overloading, you'd have a large mess of function names for > all the possible combinations. Even without overloading you probably > have a few for different special cases for efficiency. > > Using the operator in this example, it is easier for the compiler to > "see" what is going on and deal with the combinations of string types > and special cases itself. You could in theory define a generalized > string concatenation function that the compiler understands as a > special case, but that's really the same thing with a different > syntax, more work for the compiler writer, and less readable code. > > I'd rather write > > strb <-- stra + stru + " more stuff" > > than > > strb <-- StringConcatenate(stra, stru, " more stuff"); > > and I think Sergio is saying that from a compiler writer's point of > view he'd prefer the first also. So do I, but I fail to understand why this requires that the string handling is built into the compiler. Your preferred syntax looks (in principle) quite similar to the C++ std::string syntax, where normal string handling is implemented in a standard library. Gerhard -- http://www.piclist.com PIC/SX FAQ & list archive View/change your membership options at http://mailman.mit.edu/mailman/listinfo/piclist