(define (gcd a b)
(if (= b 0)
a
(gcd b (remainder a b))))
我們都知道這個著名的函數,我知道如果我想要一個 (gcd abc) 就是 (gcd abc)= (gcd a (gcd bc))。但我需要實際查看代碼,向我展示如何實現該通用功能,因為我沒有編寫許多不同的函數定義,我只需要包含無限參數的一個,實際的球拍 gcd 和 lcm 函數已經做了那個,但我不知道怎麼做。
使用.
的參數列表,允許其採取可選的參數,這將是在列表中。如果有其他參數,則遞歸。
(define (gcd a b . more)
(cond ((pair? more) (gcd a (apply gcd b more))
((= b 0) a)
(else (gcd b (remainder a b)))))
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句