Aycan iRiCAN writes:
> Eğer büyük listeler üzerinde işlem yapacaksanız reduce kullanmanızı
> öneririm. Aksi durumlarda apply size hem zaman hem de yer kazandırır.
>
> Apply ile bir işleve verdiğiniz işlenenler listesinin üst limiti
> olacaktır. Ancak bu limiti aşmadığınız sürece işler lehinize gider.
>
> (+ 1 2 3 .....)
>
> Ancak reduce kullanırsanız böyle bir limitle ilgilenmezsiniz. Ancak
> işlem görüldüğü gibi az da olsa bir yük getirmektedir.
>
> (+ 1 (+ 2 (+ 3 ...)))
Emre Sevinç'in önerdiği Usenet arşivlerine de biraz göz atma şansım
oldu. Oradan çıkardığım sonuçlar şu şekilde:
- APPLY'da parametre limiti mevcutken REDUCE kullanımında böyle bir
şey ortadan kalkıyor.
- APPLY bir tek kez çağrılırken, REDUCE n-1 defa çağrılmak zorunda
kalıyor.[*]
- NCONC ele aldığı listeleri kopyalayıp, yeni kopyalar üzerinde işlem
yapmaktansa var olan listelerin içeriğini değiştiriyor. Bu sebeple,
NCONC fazladan bellek kopyalama yükü doğurmadığı için, APPEND yerine
NCONC kullanmak bazı durumlarda daha avantajlı olabilir.[*]
[*] Derleyici tarafından kimi uç durumlarda bu tür ayrımların
iyileştirilmesi mümkün. Fakat bu ne derece gerçek hayatta geçerli
bilmiyorum.
Atladığım bir şey?
İyi çalışmalar.
_______________________________________________
cs-lisp mailing list
[email protected]
http://church.cs.bilgi.edu.tr/lcg
http://cs.bilgi.edu.tr/mailman/listinfo/cs-lisp