b'\n_START_ARTICLE_\nD (linguagem de programa\xc3\xa7\xc3\xa3o)\n_START_SECTION_\nHist\xc3\xb3rico\n_START_PARAGRAPH_\nA linguagem D foi criada por Walter Bright, desenvolvedor de compiladores para as linguagens C e C++ e fundador da Digital Mars. Ela foi concebida em dezembro de 1999 para ser uma sucessora das linguagens C e C++._NEWLINE_\xc3\x89 uma linguagem de programa\xc3\xa7\xc3\xa3o de sistemas, focada em combinar o alto desempenho das linguagens C e C++ com a produtividade de outras linguagens modernas, tais como Ruby e Python.\n_START_SECTION_\nOl\xc3\xa1 Mundo\n_START_PARAGRAPH_\nimport std.stdio;void main(){_NEWLINE_   writefln("Ol\xc3\xa1, Mundo!");}_NEWLINE_ou, equivalente:_NEWLINE_import core.stdc.stdio;void main(){_NEWLINE_   printf("Ol\xc3\xa1, Mundo!\\n");}\n_START_SECTION_\nN-Primeiros N\xc3\xbameros Perfeitos\n_START_PARAGRAPH_\n/*Para compilar:rdmd NumerosPerfeitos.d* /import core.stdc.stdio;void main(char[][] args){_NEWLINE_    int n; // n primeiros n\xc3\xbameros perfeitos_NEWLINE_    int num = 0;_NEWLINE_    int soma;_NEWLINE_    int contador = 0;_NEWLINE__NEWLINE_    printf( "Entre com o valor de \'N\': ");_NEWLINE_    scanf("%d", &n);_NEWLINE__NEWLINE_    printf( "\\nOs N primeiros numeros perfeitos sao:\\n");_NEWLINE__NEWLINE_    do_NEWLINE_    {_NEWLINE_        num += 1;_NEWLINE_        soma = 0;_NEWLINE_        for ( int i=1; i <= num-1 ; i++ )_NEWLINE_        {_NEWLINE_            if( (num % i) == 0 )_NEWLINE_            {_NEWLINE_                soma += i;_NEWLINE_            }_NEWLINE_        }_NEWLINE_        if ( soma == num )_NEWLINE_        {_NEWLINE_            printf("%d\\n", soma);_NEWLINE_            contador += 1;_NEWLINE_        }_NEWLINE_    }while (contador != n);}/*N\xc3\x9aMEROS PERFEITOS- Um n\xc3\xbamero se diz perfeito se \xc3\xa9 igual a soma de seus divisores pr\xc3\xb3prios.- Divisores pr\xc3\xb3prios de um n\xc3\xbamero positivo N s\xc3\xa3o todos os divisores inteiros positivos de N exceto o pr\xc3\xb3prio N.\');- Por exemplo, o n\xc3\xbamero 6, seus divisores pr\xc3\xb3prios s\xc3\xa3o 1, 2 e 3, cuja soma = 6 (1 + 2 + 3 = 6);_NEWLINE_  Outro exemplo \xc3\xa9 o n\xc3\xbamero 28, cujos divisores pr\xc3\xb3prios s\xc3\xa3o 1, 2, 4, 7 e 14, e a soma dos seus divisores pr\xc3\xb3prios_NEWLINE_  \xc3\xa9 28 (1 + 2 + 4 + 7 + 14 = 28)* /\n_START_SECTION_\nClasses\n_START_PARAGRAPH_\nclass A{_NEWLINE_   public this() //Construtor_NEWLINE_   {_NEWLINE_      x = 10.0 + 7i;_NEWLINE_   }_NEWLINE__NEWLINE_   private cfloat x; //n\xc3\xbamero complexo}class B : A{_NEWLINE_   public this()_NEWLINE_   {_NEWLINE_      super(); //Chama o construtor da classe pai_NEWLINE_   }}\n_START_SECTION_\nArrays\n_START_PARAGRAPH_\n//Arranjos din\xc3\xa2micos:int[] a;a.length = 10; //comprimento igual a 10 posi\xc3\xa7\xc3\xb5esa = 50; //a[0], a[1] ... a[9]= 50a ~= 48; //adiciona uma posi\xc3\xa7\xc3\xa3o ao array e atribui 48 a elaint[] b;for(int i=0; i<30; i++){_NEWLINE_   b ~= i;}int[] c;c = b[1..10]; //c[0]= b[1], c[1] =b[2] ... c[8]= b[9]int[] d;d = a ~ c; // d[0]=a[0],d[1]=a[1]...,d[10]=a[10],d[11]=c[0]... d[19]=c[8]int* p = b.ptr; //p aponta para o primeiro elemento de bfor(int i = 0; i < b.length; i++)_NEWLINE_   printf("%d\\n", *(p+i));c.sort; //ordena o vetor c_NEWLINE_//Arranjos associativos:int[char[]] a; //array associativoa["hello"] = 4;a["tchau"] = 10;a["oi"] = 50;a["nome"] = 70;int* p;p = ("tchau" in a); //p aponta para uma chave de \xc3\xadndice "tchau" e se ela_NEWLINE_                   //n\xc3\xa3o existir, p ser\xc3\xa1 igual a nullif(p != null) //encontrou o \xc3\xadndice{_NEWLINE_   printf("%d\\n", *p);}a.remove("oi"); //remove a chave "oi"_NEWLINE_uint toHash(char[] str){_NEWLINE_   uint hash;_NEWLINE_   foreach (char c; str)_NEWLINE_      hash = (hash * 9) + c;_NEWLINE_   return hash;}_NEWLINE_\xc3\xa9 o mesmo que_NEWLINE_uint toHash(char[] str){_NEWLINE_   uint hash;_NEWLINE_   for(int i=0; i<str.length; i++)_NEWLINE_   {_NEWLINE_      char c = str[i];_NEWLINE_      hash = (hash * 9) + c;_NEWLINE_   }_NEWLINE_   return hash;}'