Forum: Duyurular RSS
dmd 2.071.0 çıktı
acehreli (Moderatör) #1
Kullanıcı başlığı: Ali Çehreli
Üye Haz 2009 tarihinden beri · 4431 mesaj
Grup üyelikleri: Genel Moderatörler, Üyeler
Profili göster · Bu konuya bağlantı
Konu adı: dmd 2.071.0 çıktı
  http://dlang.org/changelog/2.071.0.html

Çöp toplayıcının bazı işlemleri de dahil olmak üzere bazı algoritmalar %5 kadar hızlanmış. Tabii bir çok hata da giderilmiş. Benim gözüme çarpan iki kullanışlı olanak:

  • Eşleme tablolarına yeni bir işlev: clear() bütün elemanları siliyor.

  • Çok kullanışlı olmasına rağmen aralıklardan önce tasarlandığından reduce() aralık algoritmalarında zincirleme olarak kullanılamaz. (Bunun nedeni, ilk parametresinin aralık olmamasıdır.) Yani, şu yazılamaz:
    dizi.reduce!((sonuç, a) => sonuç + a * a)(0)
Şöyle yazılmalıdır:
    reduce!((sonuç, a) => sonuç + a * a)(0, dizi)
Mevcut kodları bozmamak için onu düzeltmek yerine aynı biçimde işleyen ama parametre sırasını uygun hale getiren yeni bir işlev gelmiş: fold().

Örnek:
import std.stdio;
import std.algorithm;
 
void main() {
    {
        auto aa = [ 1 : "bir", 2 : "iki", 3 : "üç" ];
        writeln("Doluyken           : ", aa);
 
        // Artık tek işlevle boşaltabiliyoruz:
        aa.clear();
        writeln("clear()'den sonra  : ", aa);
    }
 
    writeln();
 
    {
        auto dizi = [ 1, 2, 3 ];
        writeln("Dizi               : ", dizi);
 
        auto ikiKatları = dizi.map!(a => a * 2);
        writeln("İki katları        : ", ikiKatları);
 
        // fold() aralık algoritmalarında zincirleme kullanılabiliyor:
        auto kareToplamları = dizi.fold!((sonuç, a) => sonuç + a * a)(0);
        writeln("Karelerinin toplamı: ", kareToplamları);
 
        auto reduceİle = reduce!((sonuç, a) => sonuç + a * a)(0, dizi);
        writeln("Aynısı reduce() ile: ", reduceİle);
    }
}

Doluyken           : [3:"üç", 2:"iki", 1:"bir"]
clear()'den sonra  : []

Dizi               : [1, 2, 3]
İki katları        : [2, 4, 6]
Karelerinin toplamı: 14
Aynısı reduce() ile: 14


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-07-27, 01:50:24 (UTC -07:00)