Alıntı (Salih Dinçer):
>
- Bit.oku (immutable: veri[]) ~ read, fetch
- Bit.bul (immutable: veri[], size_t: kelime) ~ find, search
- Bit.kes (ref: veri[], uint: konum) ~ cut, delete
- Bit.koy (...) ~ change, swap (yerine koy)
Onu beğendim. Her işlev öz iş yapmalı. bulDeğiştir() yerine bul() ve değiştir() farklı olmalı.
Alıntı:
> Bu son işlevde üç defa XOR kullanarak veriye (ayrıca maske ile) müdahale edebileceğimi düşünüyorum.
Aslında maske oluşturma işlemlerini de gözden geçirmeni öneririm. Şu bölümün problemlerinde maskeYap() diye bir işlev var:
http://ddili.org/ders/d/bit_islemleri.html
Oradaki yöntem daha hızlı olabilir.
Alıntı:
> Ben bu 'bit yeniği'ni (immutable) hala çözemedim.
Anlamana yardım edeceğinden değil ama immutable'ın son derece yardımcı bir olanak olduğunu söyleyeyim. Değişmezlik kavramı çok önemlidir. Sistem dilleri arasından C++'a 'const' olarak geldi, C'ye de eklendi. Ama 'const' "kesinlikle değişmez" demek değildir, "bu referans aracılığıyla değişmez" demektir. immutable bu sorunu çözer.
Özet: immutable'dan şüphen olmasın. Şimdilik o bölümdeki ilkeleri gözeterek kodla. Örneğin değişmeyecek olan değişkenleri immutable olarak işaretle. Bence o kodlama biçimini eninde sonunda yararlı bulacaksın.
Alıntı:
> Fark ettiniz mi; yukarıda yazdığım kodların birinde (işlevlerin içindekiler), const ifadesini de tek başına kullanmışım ve derleme hatası almamışım!
'const' olarak işaretlediğinde "bunu değiştirmeyeceğim" diyorsun. Değiştirmeye çalışmadığın sürece derleme hatası almazsın.
Alıntı:
> çalışma zamanında orada var olmadıklarını
Çalışma zamanında yalnızca makine kodu kaldığına göre evet, herşey büyü. :)
Ali
--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]