La voix du secrétaire (Jean)
Présents à la réunion, en fonction de l'heure d'arrivée approximative :
Nous avons mangé des salades au chèvre chaud, aux magrets de canard ou aux lardons des aiguillettes de canard, du coq au vin, des saucisses au couteau, des profiterolles et une île flottante. Nous avons bu de la bière (Brunehaut), de la vodka, de la limonade et un Ricard.
Nous avons parlé de Perl, informatique et points divers.
A / \ B C \ / DLorsque la classe petite-fille D reçoit un appel de méthode, l'ordre de recherche est D, B, A, C. Donc, si les classes A et C implémentent cette méthode, alors c'est celle de A, la classe basique, qui sera exécutée et non pas celle de C, la classe dérivée. La méthode C3 évite ce problème et permet d'avoir une recherche D, B, C, A ou D, C, B, A. Et dans les deux cas, c'est la méthode implémentée dans C qui sera choisie de préférence à celle implémentée dans A. La méthode C3 a vu le jour dans le langage de programmation Dylan.
my $chaine = "Toto va à l'école"; substr($chaine, 5, 2) = "est";et il préfère la variante à quatre arguments :
my $chaine = "Toto va à l'école"; substr($chaine, 5, 2, "est");Ses arguments sont que le substr en partie gauche peut faire peur à des débutants et que c'est un poil plus lent que le substr à quatre arguments. Or quand j'étais un débutant absolu en Perl et que je lisais Programming Perl (deuxième édition), ce n'est pas de la peur que j'ai ressentie en découvrant les substr en partie gauche, c'est de l'excitation. Et à un autre endroit de PBP, Damian promeut l'usage d'un module qu'il a créé pour l'occasion, Regexp::MatchContext, en expliquant que dans ce module, les fonctions sont lvaluables et que c'est super ! [ La suite de ce paragraphe n'a pas fait l'objet d'une discussion lors de notre réunion, mais apporte des réfutations sur les autres arguments de Damian. ] Pour l'argument de la performance, on peut remarquer que lorsqu'il est question des substr en partie gauche, une différence de quelques nanosecondes a une importance notable, mais à la page 100 (dans la VO, ou 102 dans la traduction), lorsqu'il reconnaît qu'une boucle for de style Perl peut se révéler moins efficace qu'une boucle de style C, alors l'écart de plusieurs nanosecondes est balayé sous le tapis. À un autre endroit de son livre, il critiquait une construction syntaxique parce qu'elle ne montrait pas clairement qu'elle mettait à jour tel ou tel argument. Or, c'est le cas du substr à quatre arguments. Des deux programmes suivants, lequel montre le mieux que la chaîne $chaine est modifiée après son initialisation ?
my $chaine = "Toto va à l'école"; my $verbe = substr($chaine, 5, 2); substr($chaine, 5, 2) = "est";
my $chaine = "Toto va à l'école"; my $verbe = substr($chaine, 5, 2, "est");
my $chaine = <a href='http://99-bottles-of-beer.net/'>"99 bottles of beer"</a>; substr($chaine, 0, 2) --; say $chaine;qui imprimera 98 bottles of beer (je n'ai pas essayé d'itérer, je pense qu'il y aura des problèmes lorsque le programme atteindra le nombre 9). Lors de la réunion, nous nous sommes posé la question de savoir ce que donnerait un substr en partie gauche d'un .=. Personnellement, je n'avais pas de doute à ce sujet, mais d'autres participants à la réunion étaient moins assurés. Nous avons essayé
my $chaine = "Toto va à l'école"; substr($chaine, 5, 2) .= "est";et comme je m'y attendais, nous avons eu la chaîne "Toto vaest à l'école". Sébastien a cherché à savoir comment ce programme était exécuté, grâce à l'argument de ligne de commande -MO::Concise ou quelque chose d'approchant. Lorsque Laurent a vu le résultat, il a dit qu'il ne savait pas lire le résultat. Quant à moi, je sais le lire (c'est de l'ASCII 7 bits, après tout), mais je ne comprends rien du tout à ce que je lis.
@x = sort { 0 } (1..20); say join " ", @x;Sébastien ne se souvient plus de cette discussion. De plus, en 2008, il était déjà possible d'utiliser le pragma sort qui date au moins de la version 5.8.8 et qui permet de choisir l'algorithme quicksort ou l'algorithme merge sort sans préciser de condition sur la taille de la liste à trier.
Vous en avez marre d'avoir la droite la plus bête ?On peut donc dire que la situation n'a pas tellement progressé depuis cette époque.
Nous aussi.
le Dark Star est un vaisseau spatial dont le rôle est de détruire les planètes qui se trouvent sur une trajectoire instable.Maintenant, changez dark en son quasi-synonyme black et qualifiez l'adjectif « instable » par l'adverbe « politiquement ». Vous n'avez toujours pas trouvé ? Laurent, si, semble-t-il. Il a répondu à ma devinette avec
Alderaan n'a jamais existé.
Frankly, my dear, I don't give a damn.[ Ce n'est pas exactement la fin du film, car c'est suivi par un monologue intérieur de Scarlett. Mais on n'est plus à quelques minutes près sur un film de plus de trois heures. ]