işin içine
dil girdiği zaman iki tür eşitlik ortaya çıkıyor: "
extensional" (dışlamsal?) eşitlik ve "
intensional" (içlemsel) eşitlik.
varsayalım ki sağ elimde bir adet madeni 1 tl tutuyorum. bu sırada siz gelip bana başka bir madeni 1 tl uzatıyorsunuz, onu da sol elime alıyorum. iki 1 tl de standartlara uygun güzel paralarsa, bütün özellikleri aşağı yukarı aynı olacaktır. çapları, renkleri, üzerindeki desenler, bunlar hep aynı ise iki para eşittir; çünkü birinin yerine diğerini koymak bir şey değiştirmeyecektir. bu durumda "sol elimdeki 1 tl" ile "sağ elimdeki 1 tl" dışlamsal olarak eşittir diyoruz.
bir de "sol elimdeki 1 tl" ile "sizden aldığım 1 tl"yi karşılaştıralım şimdi de. dikkat ederseniz bu sefer ortada iki farklı 1 tl yok, yalnızca bir adet 1 tl'den bahsediyoruz. bu yüzden "sol elimdeki 1 tl" ile "sizden aldığım 1 tl" içlemsel olarak eşittir diyoruz. içlemsel olarak eşit olan iki şeyin, dışlamsal olarak da eşit olması gerektiğini söylememe gerek yok sanırım. üstelik iki şeyin içlemsel olarak eşit olduğunu bilmekle yalnızca mevcut özelliklerini değil, tüm geçmiş ve geleceklerini de eşitlemiş oluyoruz. eğer "sol elimdeki 1 tl"yi harcarsam, "sizden aldığım 1 tl"yi de harcamış olurum. yine de toplamda harcadığım para 2 tl değildir!
programlama dilleriyle az çok uğraşmış olanlar içlemsel eşitlik ile dışlamsal eşitlik arasındaki farkı daha iyi anlayacaklardır. programlama dilleri de birer dildir: nesneleri ifade etmek için isimler koyarsınız. ve tıpkı doğal diller gibi, programlama dillerinde de aynı nesneye iki farklı isim koymak mümkündür. bu durumda bu iki farklı ismin geleceklerini sonsuza kadar birleştirmiş olduğunuzu akılda tutmak gerekir, yoksa bulunması güç hatalara kapı açarsınız. (bkz:
işaretçi)