Tek mi Çift mi? Ya da sanat sanat için mi?

Standard

Bir sayının tek mi çift mi olduğunu belirleyen bir fonksiyon yazmamız gerekirse genelde yaptığımız şu:

function tekMi(sayi){
if(sayi % 2 == 0)
return false;
else
return true;
}

Bu şöyle daha iyi olabilir.

function tekMi(sayi){
return (sayi % 2 == 0) ? false : true;
}

0 ve 1 in boolean yorumlanmalarına güvenerek şu hale getirirsek daha güzel olur.

function tekMi(sayi){
return (sayi % 2);
}

Yok dönüş tipi illa boolean olacak derlerse de, javascript icin !! ile halledebiliriz, hem de güzel görünür;

function tekMi(sayi){
return !!(sayi % 2);
}

Kodlar hem kısaldı hem de bence estetik hale geldi ama koddaki estetik hep böyle faydayla birlikte mi gelir.

Geçenlerde başka bir konu için gördüğüm örnek kodları çok beğenmistim.

function tekMi(sayi){
if(sayi == 0) return false;
else return ciftMi(--sayi);
}

function ciftMi(sayi){
if(sayi == 0) return true;
else return tekMi(--sayi);
}

Bu kodları güzel bir manzarayı izler gibi izledim, bence çok güzellerdi 🙂

Gerçi bu kodları gördüğüm yerdeki problem “tek mi cift mi” yi bulmak degildi ama yukarıdaki tek satırlık şeylerle aynı işi yapmak için bu kadar kod yazmak çok uygun degil. Üstelik tek problem de bu değil. Zaman olarak da maliyetli. Dahası da var; burada en az sorguladığımız sayı kadar fonksiyon çağrısı var ve bunların her biri stack te yer demek ve büyük bir sayıyı sorgulayınca “stack overflow” hatası alırız.

Fakat bütün bu sorunlara göre bence harikaydılar.

Pratikte kullanır mısın? demeye bile gerek yok, kesinlikle kullanılmaz ama bu sekilde bir kod yazana da buyuk saygı duyarim 🙂 Bazen sanat sanat icindir. 🙂

Reklamlar

Bir Cevap Yazın

Aşağıya bilgilerinizi girin veya oturum açmak için bir simgeye tıklayın:

WordPress.com Logosu

WordPress.com hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Google+ fotoğrafı

Google+ hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Twitter resmi

Twitter hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Facebook fotoğrafı

Facebook hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

w

Connecting to %s