CBFalconer wrote:
Just think about functions in general. What are you going to do with the values they return? In general, you will store them in a variable, which must have a type that can receive that function result. To have two (or more) things of the same type it is necessary to declare that type.
In general, this is a valid argument -- though not in the special case of strings, since according to EP (not CP, AFAIK), all string values are assignment compatible (except for capacity overruns), so a function result of some string type can be assigned to some other string type variable. But still, the syntax requires a function result to be a type-name.
Frank