Thread overview
Eşleme tablosu kullanirken std algoritma fonksiyonları çağırmak
Jan 10, 2018
kerdemdemir
Jan 10, 2018
kerdemdemir
January 10, 2018

Aşağıdaki gibi bir problemim vardı

//DMD64 D Compiler 2.072.2

import std.stdio;
import std.algorithm;
import std.range;
import std.typecons;
import std.conv;

enum Aile
{
   Baba = "Erdem",
   Anne = "Nat",
   Tatli = "Ela"
}

void main()
{
   double[Aile] aileMap = [Aile.Baba: 1, Aile.Anne : 2, Aile.Tatli : 3];
   Aile[] aileList = [ Aile.Baba, Aile.Anne ];

   double[Aile] filteredList = aileMap.byKeyValue().filter!( a => aileList.canFind(a.key) ).
                                       map!( a => tuple(cast(Aile)a.key, a.value) ).assocArray;

   writeln(filteredList);
}

Bir diziye göre elimdeki bir eşleme tablosu filtrelemem gerekiyordu. Bir satırla çıktım işinden kod güzel gözüküyor. Ama düşününce performance açısından baya işlem gerektiriyor. Yine tek satırda daha efektif olarak çıkabilirmiydim bu işin içinden?

Erdemdem

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

January 10, 2018

Abi ben foruma biraz geç katıldığım için Türkçe terimleri pek bilmiyorum düzelticem öğrendikce.

İyi gönül rahatlığıyla kullanıyım performans açısından sorun yoksa.

Erdem

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

January 10, 2018

(Zamanında Türkçe karşılık olarak "eşleme tablosu"nu seçmiştik.)

Sondaki assocArray dışında pahalı işlem göremiyorum çünkü bütün işlemleri istiyorsun zaten. Eğer sonrası için eşleme tablosu olarak tutmak gerekmiyorsa belki assocArray()'i kaldırıp sonucu doğrudan kullanabilirsin.

Ali

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

January 10, 2018

Hiç sorun değil. Ben de arama sonuçlarında görünsün diye "eşleme tablosu"nu eklemiştim. :)

Ayrıca, terimlerin hepsinin iyi olduklarını da savunmuyorum. Seçtik bitti. :)

Ali

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