• [^] # Re: euh?!

    Posté par . En réponse au journal Retour d'expérience avec le langage J. Évalué à 2.

    Dans le même ordre d'idée, en J certaines phrases idiomatiques dans un style tacite peuvent être optimisées par du code spécial.

    Par exemple avec l'adverbe \ (« préfixe ») qui applique un verbe aux préfixes d'un tableau :

     i.5 NB. 5 premiers entiers
    0 1 2 3 4
     <\i.5 NB. liste des préfixes chacun dans sa boîte
    ┌─┬───┬─────┬───────┬─────────┐
    │0│0 1│0 1 2│0 1 2 3│0 1 2 3 4│
    └─┴───┴─────┴───────┴─────────┘
     +/\i.5 NB. sommes cumulées
    0 1 3 6 10
    

    On pourrait penser que +/\ est en temps quadratique, mais le compilateur reconnaît cette composition classique du verbe + et des deux adverbes / et \ et produit du code efficace:

     NB. x: c'est pour les entiers de précision arbitraire
     x: +/+/\i.10^7 NB. somme des sommes cumulées jusqu'à 10 millions
    166666666666664984576
    

    et ça en 0.14s sur ma machine à 1.5Ghz.