Sénèque un au revoir (mes frères)
(**) Un scoop : je ne suis pas le dernier non plus (j'ai vérifié dans la blockchain).
Comment éviter de programmer ?
L’autre jour j’avais envie de générer des termes du genre : s1e01 s1e02 ... s1e12 s2e02 … s2e12 s3e01 s3e02 … s3e12 (me demandez pas ce que j’étais en train de faire ça va m’énerver).
Je voulais même des termes un peu plus généraux que ça. Suivant un schéma du type : ceciXXcelaYYYtruc (etc). Où ceci cela et truc sont du texte et XX et YYY sont des énumérations. Avec largeur fixe ou pas. Et bien entendu, il me faut le produit cartésien des XX avec les YYY (sinon c’est pas drôle).
À ce niveau de généralité, j’ai sorti du saloir mon python3 pour coder tout ça. Et puis je me suis souvenu qu’il faut toujours réfléchir avant de coder(*). J’ai donc éteint mon ordinateur.
Je me suis demandé notamment comment j’allais spécifier ma ligne de commande ? Au but de quelques minutes, j’ai abouti à quelque chose comme : ceci{0..17}cela{099..102}truc (etc). Même avec mon module préféré docopt ça risque d’être un peu tendu. Et le code derrière, sans être monstrueux, va nécessiter un peu de soin et d’attention.
Ah oui mais au fait j’utilise bash. Et en bash il se trouve que ceci{0..17}cela{099..102}truc ça génère pile exactement la séquence que je veux. Y compris le produit cartésien des énumérations (sinon c’est pas drôle). Y compris la largeur variable, comme pour la première énumération. Y compris la largeur fixe, comme pour la seconde énumération.
Tu me crois pas ? Essaye !
$ echo ceci{8..13}cela{099..102}truc
Ou alors:
$ for T in ceci{8..13}cela{099..102}truc; do echo "$T"; done
Moralité 1 : spécifier c’est programmer.
Moralité 2 : pour réfléchir il faut éteindre l’ordinateur.
(*) Sauf quand on est bourré.
Quelques énigmes inédites
Là je poste juste les énigmes. Et je mets les réponses en commentaire pour pas gâcher. Dans un prochain billet je montrerai ma méthode pour les inventer. Mais là tout de suite j'ai carrément trop la flemme.
1) Quel champignon devient godasse en perdant
une lettre ?
2) Sans eau je suis britannique, avec je suis
africaine.
3) Sans air je vole, avec je rame.
4) Une tâche qu’on oublie quand elle commence en haut.
5) Rien ne m'enflamme. Ôtez-moi une lettre et
je serai brûlante.(*)
(*) Celle-là n'est pas vraiment inédite, je l'avais déjà postée ici.








