Gerhard Fiedler 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. ******************************************************************** Embed Inc, Littleton Massachusetts, http://www.embedinc.com/products (978) 742-9014. Gold level PIC consultants since 2000. -- http://www.piclist.com PIC/SX FAQ & list archive View/change your membership options at http://mailman.mit.edu/mailman/listinfo/piclist