Nommer correctement les choses est difficile. Très dur. Si vous le regardez dans l'autre sens, vous pouvez également considérer que cela signifie que les choses correctement nommées sont importantes. (Sinon, pourquoi auriez-vous passé l'effort à le nommer?)
Mais, parfois, les noms des choses ne sont tout simplement pas importants. C'est pourquoi nous avons des choses comme des fonctions anonymes ("lambdas"), par exemple: parce que parfois cela ne vaut pas la peine de nommer des choses.
Il existe de nombreux exemples où des noms de variables à lettre unique (ou très courts) sont appropriés:
i, j, k, lPour les indices de boucle
ket vpour la clé et la valeur dans une carte
npour un nombre (par exemple en Math.abs(n))
a, b, cDes objets quelconques (par exemple, max(a, b))
epour l'élément dans une for eachboucle générique
f pour la fonction dans une fonction d'ordre supérieur
p pour la fonction de prédicat dans un filtre
T, T1, T2, ... pour les variables de type
E pour les variables de type représentant le type d'élément d'une collection
R pour une variable de type représentant le type de résultat d'une fonction
expour l'exception dans une catchclause
op pour l'opération dans une carte ou un pli
- en ajoutant la lettre
spour indiquer le pluriel, c'est-à-dire une collection (par exemple nspour une collection de nombres, xset yspour deux collections arbitraires d'objets génériques)
Je ne les vois jamais utilisés dans d'autres langages de programmation!
Ils sont très courants dans à peu près tous les langages que je connais (et probablement aussi dans ceux que je ne connais pas). Haskell, F #, ML, Ruby, Python, Perl, PHP, C #, Java, Scala, Groovy, Boo, Nemerle, D, Go, C ++, C, vous l'appelez.