Tanda plus +digunakan untuk penambahan dan untuk penggabungan string, tetapi pasangannya: tanda minus -, umumnya tidak terlihat untuk memotong string atau kasus lain selain pengurangan. Apa yang bisa menjadi alasan atau batasan untuk itu?
Pertimbangkan contoh berikut dalam JavaScript:
var a = "abcdefg";
var b = "efg";
a-b == NaN
// but
a+b == "abcdefgefg"
+operator biner kelebihan beban dengan dua arti yang sama sekali tidak terkait "penambahan numerik" dan "penggabungan string". Untungnya, beberapa bahasa menyediakan operator gabungan yang terpisah seperti .(Perl5, PHP), ~(Perl6), &(VB), ++(Haskell), ...
->(pikirkan akses anggota dereferencing dalam C, karena panggilan metode virtual harus melibatkan tipuan seperti pointer). Tidak ada hukum desain bahasa yang mengharuskan pemanggilan metode / akses anggota untuk menggunakan .operator, meskipun itu adalah konvensi yang semakin umum. Tahukah Anda bahwa Smalltalk tidak memiliki operator panggilan metode? Penjajaran sederhana object methodsudah cukup.