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

Cevap