Remove complex and imaginary types?

davidl davidl at 126.com
Mon Jan 7 00:15:31 PST 2008


在 Mon, 07 Jan 2008 15:43:51 +0800,Oskar Linde  
<oskar.lindeREM at OVEgmail.com> 写道:

> Walter Bright wrote:
>> The issue comes up now and then about why have complex and imaginary  
>> types, rather than using structs? All but one of the advantages of  
>> having them be core types can be addressed with advancing compiler  
>> technology. Getting rid of them will release 6 keywords, and make the  
>> core language simpler. Given the increasing complexity of D, this will  
>> help.
>>  The remaining advantage is that of imaginary literals, i.e. the i  
>> postfix:
>>      3 + 5i
>>  Assuming we solve the literal problem, existing code would only need  
>> to add:
>>      import std.complex;
>>  to acquire complex and imaginary types.
>
> Sounds like a good idea. Complex math is probably only used in a very  
> small subset of D code, and if most advantages of having the types built  
> in are rendered irrelevant I see no reason not to take this opportunity  
> to simplify the language.
>
> Regarding literals, I'd say this is would be an adequate replacement for  
> the above expression:
>
> 	3 + 5*i
>
> And last, getting rid of the creal and ireal keywords can only be a good  
> thing. :)
>

Oh, I didn't think of making i a struct...

This would ban the use of i as a variable name. A lot of beginning  
tutorials use i as a variable name :)
And sometimes I use it for convenience. And that would break a lot test  
purpose code.

-- 
使用 Opera 革命性的电子邮件客户程序: http://www.opera.com/mail/



More information about the Digitalmars-d mailing list