(BX-Mailer: VM 7.19 under Emacs 21.4.1
X-NAI-Spam-Rules: 0 Rules triggered


Merhaba,

SICP'de yazdığım bir kaç örneği (çeşitli taklalar eşliğinde) CL'e
aktarmaya çalışıyorum. Aşağıdaki COMBINATIONS fonksiyonunu bir türlü
iteratif hale getiremedim. FreeNode sakinleri LOOP kullanarak bunu
iteratif hale getirirsem "coded in a funky style" fonksiyonumun
nispeten daha hızlı çalışıp, daha Lisp koduna yakın bir koda
dönüşeceğini söylediler.

(defun combinations (s)
  (if (null s) '(())
      (let ((rest (combinations (cdr s))))
        (nconc rest
               (mapcar #'(lambda (e) (cons (car s) e))
                       rest)))))

DO/LOOP'u daha yeni yeni öğreniyorum ve yukarıdaki LET'i LOOP
kullanarak nasıl kaldırabileceğimi dair aklıma hiç bir fikir
gelmedi. Konu hakkında fikir sahibi olan birileri yardım edebilirse
sevinirim.


İ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