Thread overview
dcollections: Bir topluluk kütüphanesi
May 19, 2010

Daha önce de Phobos'a ve Tango'ya modüller yazmış olan Steven Schveighoffer bir topluluk kütüphanesi yazmış:

http://www.dsource.org/projects/dcollections

D'nin kendisinde yalnızca diziler (array) ve eşleme tabloları (hash table) var. Bu kütüphane; bağlı liste, küme, ve daha başka topluluklar içeriyor.

Eninde sonunda Phobos'a eklenecektir.

Ali

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

May 20, 2010

Alıntı:

>

sıradüzene

derken ne demek istediniz ? Verilerin eşleme tablosu gibi sırasız değil de belirli bir sıraya göre mi kaydedilmesi ?

Ben kurdum ve örnekleri denedim. Pythonda olan bir çok türü D'ye uyarlanmış. Daha bir şeyler deneyemedim ama güzele benziyor.

Belki phobos'a eklenmemesi daha iyi olur. Proje yönetimi daha kolay olur ve sizin önceden dediğiniz gibi belirli bir standart kabul edilmemiş olur. Her algoritmaya aynı yakından ilgilenmiş olurlar.

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

May 20, 2010

Alıntı:

>

Eninde sonunda Phobos'a eklenecektir.

Öyle olmayabilir de... :)

Andrei Alexandrescu, bu kütüphanenin tasarımını eleştiriyor. Özellikle sıradüzene dayalı olmasının doğru olmadığını söylüyor.

Ama kütüphaneyi beğenenler de var.

Ali

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

May 20, 2010

Alıntı (canalpay):

>

Alıntı:

>

sıradüzene

derken ne demek istediniz ?

O sözü sınıf sıradüzeni (class hierarchy) anlamında kullandım. O kütüphanenin tasarımında; her topluluk veri yapısının ne tür bir arayüz tanımladığı, türetildiği 'interface''lerle belirleniyormuş.

Şuna benzer bir örnek geçti:

class Topluluk : ElemanEklenebilenTopluluk, ElemanSilinebilenTopluluk
{
   // ...
}

Kütüphane, veri yapılarını 'ElemanEklenebilenTopluluk' gibi arayüzleri lego parçaları gibi birleştirerek oluşturuyormuş.

Alexandrescu, bunun kullanışlı bir tasarım olmadığını söylüyor. "Topluluğu 'ElemanEklenebilenTopluluk' arayüzüne uygun olarak kullanmak yeterli değil" diyor. Her topluluğun temelde ne olduğunun bilinmesi ve o veri yapısı olarak kullanılması gerektiğini hatırlatıyor. Yani; bir "bağlı liste, bağlı liste olarak kullanılır" gibi... Fazla serbesti yok... (Scott Meyers'ın "Effective STL" C++ kitabı da benzer konulara dikkat çeker.)

Öte yandan, bir topluluğu tam olarak hangi veri yapısı olduğunu bilmeden kullanmanın aralık (range) kavramı ile sağlanması gerektiğini bildiriyor. Ama Steven Schveighoffer de "o kütüphanede zaten aralıklar var" diyor. :)

Çok hızlıca aktardım; kusura bakmayın... :/

Ali

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

May 27, 2010

Andrei Alexandrescu o tasarımı kibarca biraz eleştirdikten sonra kendi kafasındaki topluluk modülünü yazmaya başladı. Şu yazıdaki iki bağlantıdan görülebiliyor:

http://www.digitalmars.com/webnews/newsgroups.php?art_group=digitalmars.D&article_id=110509

Şimdilik yalnızca bağlı liste (SList) yapısı var.

Böyle gelişimleri canlı olarak izlemek zevkli... :)

Ali

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