Forum: Duyurular RSS
dcollections: Bir topluluk kütüphanesi
acehreli (Moderatör) #1
Kullanıcı başlığı: Ali Çehreli
Üye Haz 2009 tarihinden beri · 4527 mesaj
Grup üyelikleri: Genel Moderatörler, Üyeler
Profili göster · Bu konuya bağlantı
Konu adı: dcollections: Bir topluluk kütüphanesi
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
acehreli (Moderatör) #2
Kullanıcı başlığı: Ali Çehreli
Üye Haz 2009 tarihinden beri · 4527 mesaj
Grup üyelikleri: Genel Moderatörler, Üyeler
Profili göster · Bu konuya bağlantı
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
canalpay (Moderatör) #3
Kullanıcı başlığı: Can Alpay Çiftçi
Üye Tem 2009 tarihinden beri · 1133 mesaj · Konum: İzmir
Grup üyelikleri: Genel Moderatörler, Üyeler
Profili göster · Bu konuya bağlantı
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.
acehreli (Moderatör) #4
Kullanıcı başlığı: Ali Çehreli
Üye Haz 2009 tarihinden beri · 4527 mesaj
Grup üyelikleri: Genel Moderatörler, Üyeler
Profili göster · Bu konuya bağlantı
canalpay:
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
acehreli (Moderatör) #5
Kullanıcı başlığı: Ali Çehreli
Üye Haz 2009 tarihinden beri · 4527 mesaj
Grup üyelikleri: Genel Moderatörler, Üyeler
Profili göster · Bu konuya bağlantı
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.…?art_grou…

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

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

Ali
Doğrulama Kodu: VeriCode Lütfen resimde gördüğünüz doğrulama kodunu girin:
İfadeler: :-) ;-) :-D :-p :blush: :cool: :rolleyes: :huh: :-/ <_< :-( :'( :#: :scared: 8-( :nuts: :-O
Özel Karakterler:
Forum: Duyurular RSS
Bağlı değilsiniz. · Şifremi unuttum · ÜYELİK
This board is powered by the Unclassified NewsBoard software, 20100516-dev, © 2003-10 by Yves Goergen
Şu an: 2017-11-20, 01:27:10 (UTC -08:00)