Extended Type Design.

Andrei Alexandrescu (See Website For Email) SeeWebsiteForEmail at erdani.org
Fri Mar 16 14:21:33 PDT 2007


Benji Smith wrote:
> Andrei Alexandrescu (See Website For Email) wrote:
>>
>> Working in NLP myself, I totally disagree. Natural language is rife 
>> with homonimy and synonimy, and we're all very, very happy with that. 
>> But in this case we don't even have to go that far: "super" is an 
>> adjective meaning primarily "of high grade or quality" and qualifies a 
>> noun. If there's no noun, you don't know what is "of high grade or 
>> quality". It's a fact, and we don't even blink.
>>
>> Andrei
> 
> I've also worked in NLP quite a bit, but I don't think the constructs of 
> natural languages are necessarily healthy in artificial languages.
[snip]

Me neither. Of course you don't want to do WSD to figure out the meaning 
of a keyword in a context. All I'm saying is that you can be expressive 
without blowing up your vocabulary by using collocations.

> I used to write a lot of perl code, and the constructs it borrowed from 
> natural language (synonymy, homonimy, anaphora, implied words, pronouns, 
> etc) are some of the things that drove me away from the language toward 
> languages with more explicit semantics (java, C#, python, d).

I think it's pretty clear to many in which places Perl went a little too 
far :o).

> But that's just me. Not everyone will agree with my opinion, and if I'm 
> not in the consensus, I'll concede. But there seem to be a lot of people 
> who agree with me.

I don't think so. This discussion is very small in numbers, and the 
strength of the interlocutors' arguments does not increase their number. 
  At the end of the day, if we design a good feature, people (who 
participated here or not) will be glad to use it; if not, they won't. 
And that's that.

> I reiterate: "const" and "readonly" are the way to go. (Methods which 
> promise not to modify the values of their parameters should use 
> "readonly" rather than "const" in their method signatures.)

This makes const gratuitously incompatible to C++'s const, and (worse) 
also adds a keyword that's its equivalent. I don't think this can fly.


Andrei



More information about the Digitalmars-d mailing list