Alıntı (canalpay):
> göstergeler dersini yazmanızı rica edebilir miyim ?
Tabii ki... :) Ben de daha dün listeye bakmış ve göstergelerin bu kadar sonraya kalmasına üzülmüştüm. Belki de bundan sonraki ilk ders olarak yazmalıyım.
Bir kaç hafta önceye kadar her boş zamanımda D.ershane'ye devam ediyordum. Zamanım şu taraflara kaydı:
-
trileri: bence çok iyi durumda; sıralama algoritmasına noktalama işaretlerinin eklenmesi kaldı. Deneme programını gtkD altında da denedim. Gayet güzel çalışıyor. :)
-
maaşlı işim: kendimi rahat hissetmek için biraz daha yoğun çalışmaya başladım
-
gtkD: öğrenmek ve nasıl öğretilebileceğine bakmak istiyorum
-
logic paradigm: ACCU'nun son sunusunda Prolog gibi dillerin temelinde yatan 'logic paradigm'ı dinledim ve Castor isimli C++ kütüphanesini öğrendim. Çok etkilendim. Belki birlikte D'ye çeviririz:
http://www.mpprogramming.com/cpp/
Şimdilerde biraz onunla oynuyorum ve anlamaya çalışıyorum. Tek bir işlev yazarak bir ilişki tanıtılabiliyor:
// C++ kodu
// c is child of p
relation child(lref<string> c, lref <string> p)
{
return eq(c,"Sam") && eq(p,"Mary") //fact
|| eq(c,"Denise") && eq(p,"Mary") //fact
|| eq(c,"Sam") && eq(p,"Frank")//fact
|| eq(c,"Denise") && eq(p,"Frank")//fact
|| eq(c,"Frank") && eq(p,"Gary") //fact
;
}
O tek işlev, dört bilgi için kullanılabiliyor:
- c p'nin çocuğu mudur?
- c'nin ebeveynleri kimlerdir?
- p'nin çocukları kimlerdir?
- Çocuk-ebeveyn ilişkisi bulunan bütün c ve p'ler nedir?
Alıntı:
> göstergelerin bir kaç yerde çok önemli olduğu
Genel olarak, D'nin ref parametreleri ve foreach'teki ref değişkenleri gibidir. C++'ta da referans kavramı var...
C'de ise "işlemini bu gösterdiğim değişken ile yap" diyebilmek için kesinlikle gösterge kullanmak gerekir.
Alıntı:
> bir kaç yerde önemsiz olduğunu duydum
Çok temel bir kavramdır. Yan etkilere dayalı dillerde kaçınılmazdır. C++ ve D, referans gibi bir kavramın ardına gizleseler de, gösterge kavramı temeldir.
Referans varken yalın gösterge kullanmaya gerek olmadığı da doğru. Ama referanslar da perde arkasında göstergedirler.
Alıntı:
> Ama goto yüzünden kod bakımı çok zorlaşıyormuş
Doğrudur. goto, C++'da güvenle kullanılamaz. D'deki durumdan emin değilim:
// C++ kodu
goto etiket;
BirTur nesne; // kurucusu çağrılmaz
etiket:
nesne.kullan(); // kurulmadan kullanılır
goto C++ ve D'de ancak ve ancak kesinlikle gerektiğinde kullanılmalıdır. Öyle durumlar da hemen hemen hiç yok. :)
Ali
--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]