Forum: Duyurular RSS
dmd 2.058 çıktı
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ı: dmd 2.058 çıktı
  http://www.d-programming-language.org/changelog.html

Yine çok büyük sayıda hata giderilmiş. En önemli ek, yeni => işlecini kullanan yeni 'lambda' söz dizimi.

map, filter, ve reduce algoritmalarını üç farklı yazımla kullandım. Her ne kadar garip olsa da dizgi kullananlar en kısaları oluyor. Ama dizgi kullanıldığınd 'a' ve 'b' gibi isimlerin kullanılmaları şart oluyor. Oysa diğer iki yöntemde değişken isimlerini kendimiz seçebiliriz.

import std.stdio;
import std.algorithm;
 
void main()
{
    auto dizi = [1, 2, 3, 4];
 
    writeln("map ve =>      : ", map!(a => a * a)(dizi));
    writeln("map ve dizgi   : ", map!"a * a"(dizi));
    writeln("map ve delegate: ", map!((a) { return a * a; })(dizi));
    writeln();
    writeln("filter ve =>      : ", filter!(a => a % 2)(dizi));
    writeln("filter ve dizgi   : ", filter!"a % 2"(dizi));
    writeln("filter ve delegate: ", filter!((a) { return a % 2; })(dizi));
    writeln();
    writeln("reduce ve =>      : ", reduce!((a, b) => a + b * b)(0, dizi));
    writeln("reduce ve dizgi   : ", reduce!"a + b * b"(0, dizi));
    writeln("reduce ve delegate: ", reduce!((a, b) { return a + b * b; })(dizi));
}

Çıktıda fark yok çünkü üç yöntem de aynı anlama geliyor:

map ve =>      : [1, 4, 9, 16]
map ve dizgi   : [1, 4, 9, 16]
map ve delegate: [1, 4, 9, 16]

filter ve =>      : [1, 3]
filter ve dizgi   : [1, 3]
filter ve delegate: [1, 3]

reduce ve =>      : 30
reduce ve dizgi   : 30
reduce ve delegate: 30


Ali
Avatar
Salih Dinçer #2
Üye Ock 2012 tarihinden beri · 1912 mesaj · Konum: İstanbul
Grup üyelikleri: Üyeler
Profili göster · Bu konuya bağlantı
Teşekkürler, bunu dört gözde bekliyordum...

Hemen isimsiz işlevi (lambda function) denemek için can atıyorum...:)
Bilgi paylaştıkça bir bakmışız; kar topu olmuş ve çığ gibi üzerimize geliyor...:)
acehreli (Moderatör) #3
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ı
Ben giderilmiş olan 23 kütüphane hatası ve 200 dmd hatası sayıyorum. Hiç Druntime hatası görünmüyor; hiç mi yoktu yoksa henüz siteye mi yazmamışlar bilmiyorum.

Çok önemli başka bir ek de UFCS (universal function call syntax). Bunu dizilerden biliyoruz: std.array modülünü eklemek örneğin dizi.front yazılabilmesini sağlar. Aslında dizilerin front isminde üye işlevi (veya niteliği) yoktur; front, şöyle bağımsız bir işlevdir:

/* ... */ front(T)(T[] dizi);

UFCS, işlevlerin ilk parametreleri üzerinden çağrılabilmelerini sağlıyor. Yanlış anlamıyorsam şu kodun doğru olduğunu düşünüyorum ama derlenemiyor:

struct S
{}
 
@property int foo(S)
{
    return 42;
}
 
void main()
{
    auto s = S();
    s.foo();     // <-- derlenebilmesi gerekiyor (UFCS)
}

S'in foo() diye bir üye işlevi yok ama yine de derlenmesi gerek. Ama hata veriyor. Bence 2.058 hatalı çıkmış. :) (?)

Ali
Avatar
Salih Dinçer #4
Üye Ock 2012 tarihinden beri · 1912 mesaj · Konum: İstanbul
Grup üyelikleri: Üyeler
Profili göster · Bu konuya bağlantı
Yeni sürümde ./windows/bin yolu içinde d.chm dosyası dikkatinizi çekti mi...:)

Yaklaşık 2 MB'lık bu derlemeyi Linux'da ChmSee ile görüntüleyerek eşşiz bir "D Reference" kaynağına sahip olabilirsiniz. Gerektiğinde Phobos paketi içindeki tüm sınıflara tıklayarak erişebilirsiniz...

Dip Not: Kchm Viewer'da iyi çalışmıyor ve dış kaynaklı bağlantılara tıklayınca (https'den dolayı olabilir!) sıkıntı yapıyor. Wine'deki hh uygulaması ise zaten çok kötü.
Bilgi paylaştıkça bir bakmışız; kar topu olmuş ve çığ gibi üzerimize geliyor...:)
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ı
Teşekkürler. Çok işime yarayacak. :)

Ali
zafer #6
Üye Tem 2009 tarihinden beri · 700 mesaj · Konum: Ankara
Grup üyelikleri: Üyeler
Profili göster · Bu konuya bağlantı
Teşekkürler Salih, güzel bir paylaşım olmuş.
https://github.com/zafer06 - depo
Avatar
Salih Dinçer #7
Üye Ock 2012 tarihinden beri · 1912 mesaj · Konum: İstanbul
Grup üyelikleri: Üyeler
Profili göster · Bu konuya bağlantı
Ne güzel: Bilgi paylaştıkça bir bakmışız; kar topu olmuş ve çığ gibi üzerimize geliyor...:)

Bu arada yeni bir şey (aslında iki) öğrendim:

Okular, sanırım CHM dosyalarını (-bknz. Format Supports) açabiliyormuş. Bir de bilmeden elimdeki bir PDF'i bz2 ile sıkıştırmışım da Okular ile açınca şaşırdım. Gerçi teorik olarak bunu geçici bir yere genişlettikten sonra açabilir. Belge resimli (çok büyük) değilse ve bol metinden oluşuyorsa akıllıca görünüyor...
Bilgi paylaştıkça bir bakmışız; kar topu olmuş ve çığ gibi üzerimize geliyor...:)
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-23, 23:32:12 (UTC -08:00)