Nomear corretamente as coisas é difícil. Muito difícil. Se você olhar para o outro lado, você também pode entender que as coisas nomeadas corretamente são importantes. (Caso contrário, por que você gastaria o esforço para nomeá-lo?)
Mas, às vezes, os nomes das coisas simplesmente não são importantes. É por isso que temos coisas como funções anônimas ("lambdas"), por exemplo: porque às vezes simplesmente não vale a pena nomear coisas.
Existem muitos exemplos em que nomes de variáveis com uma única letra (ou muito curtos) são apropriados:
i
, j
, k
, l
Para os índices de ansa
k
e v
para a chave e o valor em um mapa
n
para um número (por exemplo, em Math.abs(n)
)
a
, b
, c
Para objectos arbitrários (por exemplo, em max(a, b)
)
e
para o elemento em um for each
loop genérico
f
para a função em uma função de ordem superior
p
para a função de predicado em um filtro
T
, T1
, T2
, ... para variáveis do tipo
E
para variáveis de tipo que representam o tipo de elemento de uma coleção
R
para uma variável de tipo que representa o tipo de resultado de uma função
ex
para a exceção em uma catch
cláusula
op
para a operação em um mapa ou dobra
- anexando a letra
s
para indicar o plural, ou seja, uma coleção (por exemplo, ns
para uma coleção de números xs
e ys
para duas coleções arbitrárias de objetos genéricos)
Eu nunca os vejo sendo usados em outras linguagens de programação!
Eles são muito comuns em praticamente todas as linguagens que conheço (e provavelmente também nas que não conheço.) Haskell, F #, ML, Ruby, Python, Perl, PHP, C #, Java, Scala, Groovy, Boo, Nemerle, D, Go, C ++, C, o nome dele.