Volkan YAZICI <[EMAIL PROTECTED]> writes: > Merhaba, > > Scheme'de MAP sonucu dönen listeleri birbirine eklerken şöyle bir şey > kullanıyorduk: (APPLY APPEND (MAP ...)). Benzer şeyi Common Lisp'te > yapmanın ise bir kaç yolu var sanırım. Bunlardan benim bildiklerim > şöyle: > > (apply #'append (mapcar ...)) > (reduce #'append (mapcar ...) :from-end t) > > Bunun dışında soruyu freenode'takilere sorduğumda alternatif olarak > bir de MAPCAN'i ürettiler fakat tam olarak hangisinin tercih edilmesi > gerektiğini anlayamadım. > > Acaba konu hakkında bilgisi olanlar bu alternatiflerin bellek/işlemci > kullanımı açısından kıyaslamasını yapabilirler mi? Ne gibi durumlarda > hangi yöntemi kullanmalıyız?
Selam, 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 ...))) Sevgiler... -- Aycan iRiCAN KOR Bilişim Teknolojileri http://www.core.gen.tr/ _______________________________________________ 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