• [^] # Re: Dépêche actuelle et la suite

    Posté par . En réponse à la dépêche Les coulisses du standard C++. Évalué à 1.

    Effectivement, c'est tout de suite beaucoup plus clair. :-O

    La punition infligée à l'élève pourrait s'énoncer : « copier 100 fois "je ne dois pas jeter d'avion en papier en classe" ». Le verbe de l'énconcé étant bien sûr « copier », son COD le texte « je ne dois pas jeter d'avion en papier en classe », et les mots « 100 fois » une expression adverbiale. Le noyau du groupe adverbiale est le mot « fois », le nombre 100 en étant son complément afin de préciser sa signification (sémantique), mais dans la langue française (tout comme en anglais) il pourrait être autre chose qu'un nombre comme dans « quelque fois », « à chaque fois ». L'énoncé ne comporte pas de complément circonstanciel de lieu, mais dans le dessin cela semble être le tableau, et dans le code c'est la sortie standard.

    Voilà comme on peut également analyser tout cela dans un langage de programmation :

    (* une verbe d'action dont le COD est un type quelconque 'a *)
    type 'a action = 'a -> unit
    (* le groupe adverbial qui exprime la répétition prend une action 
    * complète avec son COD et la réitère un certain nombre de fois *)
    let times ~(nb:int) (verbe:'a action) (comp: 'a) =
     for i = 1 to n do verbe comp done;;
    (* ajout d'un verbe pour avoir le même nom qu'en Ruby et un peu de sucre syntaxique *)
    let puts = print_endline;;
    let ( ** ) nb f x = times ~nb f x;;
    (* et voili-voilou *)
    (10 ** puts) "Lambda Power !!";;
    Lambda Power !!
    Lambda Power !!
    Lambda Power !!
    Lambda Power !!
    Lambda Power !!
    Lambda Power !!
    Lambda Power !!
    Lambda Power !!
    Lambda Power !!
    Lambda Power !!
    - : unit = ()

    En espérant avoir été plus clair sur ce que je voulais dire. :-)

    Sapere aude ! Aie le courage de te servir de ton propre entendement. Voilà la devise des Lumières.