Merhaba, 

10 Oca 2007 tarihinde Volkan YAZICI dedi ki:

> (define (available-changes amount coins)
>   (cond
>    ((= amount 0) '(()))
>    ((< amount 0) '())
>    (else
>     (append-map
>      (lambda (coin)
>        (append-map
>         (lambda (changes)
>           (list (cons coin changes)))
>         (available-changes (- amount coin) coins)))
>      coins))))

Soruyu yanlış anlamadıysam, yukardaki kod gereksiz yere tekrarları
sayıyor.

Bu durumda şöyle bir şey önereceğim:

(define (bul toplam paralar)
  (cond
   ((= toplam 0) '(()))
   ((< toplam 0) '())
   ((not (pair? paralar)) '())
   (else
    (let ((bas (car paralar))
           (kuyruk (cdr paralar)))
      (append (map (lambda (l) (cons bas l))
                    (bul (- toplam bas) paralar))
              (bul toplam kuyruk))))))




-- 
gereksiz: (s) Gereksiz olan.

http://www.bayazit.net/alphan/

_______________________________________________
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