Thread overview
Type Inference
Jan 15, 2012
Salih Dinçer
Jan 18, 2012
Salih Dinçer
January 15, 2012

Merhaba,

İlk sorumu soruyorum ve bu olaya yabancı olduğumu da ekliyorum. Belki üstadlar için küçük bir adım ama benim için büyük...:)

Şimdi D dilinin bunu desteklediğini biliyorum. Şöyle bir kod örneği de buldum:

template Factorial(ulong n)
{
   static if(n < 2)
       const Factorial = 1;
   else
       const Factorial = n * Factorial!(n - 1);
}

Gerçi şurada (http://en.wikipedia.org/wiki/Type_inference) da konuyu genel olarak anlatmış. Sabitler zaman zaman kafamı karıştırmıştır; değişkenler kadar olmasa da! En iyisi fazla uzatmayayım nedir bu olay?

Sevgiler, saygılar...

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

January 15, 2012

Type inference özellikle C++'ta bulunan bir sıkıntıyı giderir. Türün ne olduğu sağ tarafta belli olduğu halde solda da tekrarlamak gereksizdir:

   UzunBirTürİsmi nesne = new UzunBirTürİsmi(42, "merhaba");

D'de (ve artık C++'ta da) sol tarafa tür yazmaya gerek yok:

   auto nesne = new UzunBirTürİsmi(42, "merhaba");  // değişebilen nesne
   immutable nesne_2 = new UzunBirTürİsmi(42, "merhaba");  // değişmez nesne

Değişkenin daha sonradan değişip değişmeyeceğine göre auto veya immutable yazılıyor. (Aslında const, vs. gibi başka belirteçler de var ama uygulamada büyük oranda o ikisi kullanılıyor.)

Ama gösterdiğin kodda şablon (template) geçtiği için sen belki de şablonlardaki tür çıkarsamayı (type deduction) da merak ediyorsun. O konuyu şu bölümün hemen başlarında 'parantezliYazdır()' işlevi üzerinde anlatıyorum:

http://ddili.org/ders/d/sablonlar.html

Ama anlatması daha da kolay: şablonda boş bırakılan türün ne olduğunu derleyici koddaki kullanımından çıkarsıyor (deduce).

Ek olarak, yukarıdaki bölümde hiç 'template' anahtar sözcüğünü kullanmadım. Şablonları onu kullanmadan anlatmanın daha kolay olduğunu düşünüyorum. 'template' anahtar sözcüğü dokuz bölüm sonra şurada geçiyor:

http://ddili.org/ders/d/sablonlar_ayrintili.html

Ali

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

January 18, 2012

Geçenlerde şu hata düzeltmesi nedeniyle şablonları okumuştum. Gayet güzel hazırlanmış bölümlerden biri. İşin daha ayrıntısının anlatıldığı sayfayı bilmiyordum ki verdiğiniz adresi okuma listeme aldım. En kısa zamanda faydalanacağım.

Teşekkürler...

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]