• [^] # Re: Y'a-t-il encore besoin de nouveaux langages "bas niveau"?

    Posté par . En réponse à la dépêche Le langage D. Évalué à 2. Dernière modification le 11 juin 2012 à 15:12.

    les attributs @xxxx permettent de mettre en place des optimisations pour le compilateur qui ne sont pas détectable ou pas facilement. Certains d'entre eux permettent de garantir la fiabilité de la fonction rendant le programme finaux plus sûre, la sécurité des applications est un gros problème en programmation.

    Ce n'est justement pas un langage avec des idées de 30 - 40 ans. Voici un court script pour effectuer les opérations décrites ci-dessus. A noter que les opérations utilisant map et reduce sont parallélisées.

    import std.string;
    import std.stdio;
    import std.algorithm;
    import std.array;
    import std.typecons;
    import std.math;
    void main( string[] args ){
     int[] tab = [-1, 0, 1, 2, 3];
     tab = array(map!("a + 1")(tab));
     writeln( tab );
     size_t moyenne = reduce!("a + b")(0, tab) / tab.length;
     writefln( "La moyenne est de %d", moyenne);
     auto r = reduce!("a + b", "a + b * b")(tuple(0, 0), tab);
     writefln( "somme: %d | somme des carées: %d | moyenne: %d | écart type: %f",
     r[0],
     r[1],
     r[0] / tab.length,
     sqrt(cast(float)(r[1] / tab.length - moyenne * moyenne))
     );
     string toto = "Mon prénom est " ~ "Toto";
     writeln(toto);
     string toto2 = "Mon prénom est %s".format( "Toto" );
     writeln(toto2);
    }
    
    
    [0, 1, 2, 3, 4]
    La moyenne est de 2
    somme: 10 | somme des carées: 30 | moyenne: 2 | écart type: 1.414214
    Mon prénom est Toto
    Mon prénom est Toto