Forum: Ders Arası RSS
"Sondan dördüncü" anlamında retro[3]
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ı: "Sondan dördüncü" anlamında retro[3]
İlk gördüğümde bana garip gelen bir kullanım:
import std.stdio;
import std.range;
import std.algorithm;
 
void main()
{
    iota(0, 10).map!(x => x * x).retro[3].writeln;
}
Oradaki retro[3] bana bilmediğim özel bir kullanımmış gibi gelmişti. Ama aslında .retro'nun döndürdüğü RandomAccessRange aralığına uygulanan bildiğimiz [] işleci...

Yukarıdaki satırın Türkçesi: Sıfırdan ona kadar olan sayıların karelerinin sondan dördüncüsünü yazdır. Çıktısı:

36

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ı
Bence retro() kullanmak işleri karıştırıyor...

Çünkü aralıktaki eleman sayısı iki katına çıkardığımızda, 4. elemana ulaşmak için hesap yapma gerekliliğini doğuruyor. Bunun yerine şu şekilde kullanım daha doğru olsa gerek:
// [0, 1, 4, 9, 16, 25, 36, 49, 64, 81, 100, 121, 144, 169, 196, 225, 256, 289, 324, 361]
assert(iota(0, 20).map!(x => x * x)[$-4] == 256); //-------------------^ 
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ı
Çok daha güzel. :)

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: Ders Arası 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-18, 22:51:44 (UTC -08:00)