Merhaba, Şu bilindik problemi çözmeye çalışıyorum: Eldeki belirli para ile verilen bir miktarı kaç farklı şekilde oluşturabiliriz? Bu kendi kendini dahi açıklamayan açıklama cümlesinden sonra, hemen benim çalışmayan kodumu ilişiğe ekliyorum:
(define (available-changes amount coins) (cond ((= amount 0) '()) ((< amount 0) #f) (else (append-map (lambda (coin) (let ((avails (available-changes (- amount coin) coins))) (cond ((not avails) '()) ((null? avails) (list coin)) (else (append-map (lambda (changes) (list (cons coin changes))) avails))))) coins)))) ;; Bize verilen 50 lirayı, eldeki 50, 25, 10, 5 ve 1 liraları ;; kullanarak hangi şekillerde oluşturabiliriz. (available-changes 50 '(50 25 10 5 1)) Program çözemediğim şekilde sonsuz döngüye giriyor. Bu sorunun benim kullandığım metod ile alakalı olması muhtemel. Öneri ve yorumlarınız ile yardımcı olursanız gerçekten 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