Đặt tên đúng cách là khó. Rất vất vả. Nếu bạn nhìn nó theo một cách khác, bạn cũng có thể hiểu điều này có nghĩa là những thứ được đặt tên đúng là quan trọng. (Nếu không, tại sao bạn lại bỏ ra công sức đặt tên cho nó?)
Nhưng, đôi khi, tên của những thứ không quan trọng. Đó là lý do tại sao chúng ta có những thứ như các hàm ẩn danh ("lambdas"), chẳng hạn: bởi vì đôi khi nó không đáng để đặt tên cho thứ đó.
Có rất nhiều ví dụ, trong đó tên biến đơn (hoặc rất ngắn) là phù hợp:
i
, j
, k
, l
Cho chỉ số vòng lặp
k
và v
cho khóa và giá trị trong bản đồ
n
cho một số (ví dụ: trong Math.abs(n)
)
a
, b
, c
Cho các đối tượng tùy ý (ví dụ trong max(a, b)
)
e
cho phần tử trong một for each
vòng lặp chung
f
cho hàm trong hàm bậc cao hơn
p
cho hàm vị ngữ trong bộ lọc
T
, T1
, T2
, ... cho các biến kiểu
E
cho các biến kiểu đại diện cho kiểu phần tử của tập hợp
R
cho một biến kiểu đại diện cho loại kết quả của hàm
ex
cho ngoại lệ trong một catch
mệnh đề
op
cho các hoạt động trong một bản đồ hoặc gấp
- nối thêm chữ cái
s
để chỉ số nhiều, tức là một bộ sưu tập (ví dụ: ns
cho một bộ sưu tập các số xs
và ys
cho hai bộ sưu tập các đối tượng chung tùy ý)
Tôi không bao giờ thấy chúng được sử dụng trong các ngôn ngữ lập trình khác!
Chúng rất phổ biến trong hầu hết mọi ngôn ngữ mà tôi biết (và có thể cả ở những ngôn ngữ tôi không biết.) Haskell, F #, ML, Ruby, Python, Perl, PHP, C #, Java, Scala, Groovy, Boo, Nemerle, D, Go, C ++, C, bạn đặt tên cho nó.