Nombrar correctamente las cosas es difícil. Muy duro. Si lo miras de otra manera, también puedes tomar esto como que significa que las cosas con un nombre apropiado son importantes. (De lo contrario, ¿por qué habría gastado tanto esfuerzo nombrarlo?)
Pero, a veces, los nombres de las cosas simplemente no son importantes. Es por eso que tenemos cosas como funciones anónimas ("lambdas"), por ejemplo: porque a veces simplemente no vale la pena nombrar cosas.
Hay muchos ejemplos, donde los nombres de variables de una sola letra (o muy cortos) son apropiados:
i, j, k, lPara los índices de bucle
ky vpara la clave y el valor en un mapa
npara un número (por ejemplo, en Math.abs(n))
a, b, cPara objetos arbitrarios (por ejemplo, en max(a, b))
epara el elemento en un for eachbucle genérico
f para la función en una función de orden superior
p para la función predicado en un filtro
T, T1, T2, ... para las variables de tipo
E para variables de tipo que representan el tipo de elemento de una colección
R para una variable de tipo que representa el tipo de resultado de una función
expara la excepción en una catchcláusula
op para la operación en un mapa o pliegue
- agregar la letra
spara indicar el plural, es decir, una colección (por ejemplo, nspara una colección de números xsy yspara dos colecciones arbitrarias de objetos genéricos)
¡Nunca los veo en otros lenguajes de programación!
Son muy comunes en casi todos los idiomas que conozco (y probablemente también en aquellos que no conozco). Haskell, F #, ML, Ruby, Python, Perl, PHP, C #, Java, Scala, Groovy, Boo, Nemerle, D, Ir, C ++, C, lo que sea.