Selamlar;
"map" fonksiyonuna şu aşağıdaki şekilde "map!(a => rowFinder(a))" bir fonksiyon gönderirken bir yardımcı fonksiyon kullanmak zorunda kaldım. Halbuki isteğim tek satırda işimi bitirmekti.
int rowFinder( int number )
{
if ( number == 0 )
return 3;
else
return (number-1) / 3 ;
}
int main(string[] argv)
{
..
auto numList = to!dstring(stdin.readln().chomp()).map!( a => to!int(a) - 48 ).uniq().array();
..
auto minVal = numList.reduce!(min);
auto maxCol = numList.filter!(a => a != minVal ).map!( a => rowFinder(a) ).reduce!(max);
..
}
Olmasını istediğim formatta şuydu: map!( a => if (a == 0) a = 3; else a = a -1 /3 ; )
Fakat bunu derleyedim. Mutlaka benim beklentim de dilin bilmediğim noktalarından dolayı sorunlar çıktı.
Sizlere iki sorum var,
1 - Fonksiyon alan standart kütüphane metodlarına lambdalar ile fonksiyon gönderirken koşul ifadeleri tek satırda nasıl yazabilirim?
2 - Asıl daha çok şey öğreniceğim soru; yukarda benim düşüncemin çalışmamasının nedeni tam nedir acaba?
Erdemdem
--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]
Permalink
Reply