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 cs-lisp@cs.bilgi.edu.tr http://church.cs.bilgi.edu.tr/lcg http://cs.bilgi.edu.tr/mailman/listinfo/cs-lisp