我一直在阅读 The Little Schemer,我开始对如何处理负数感到好奇。弄清楚如何构建一个函数来确定一个数字是负数还是正数,这似乎是一个很好的挑战。
到目前为止,我有这个解决方案:
(define negative?
(lambda (a)
(cond
((zero? a) #f)
(else (negativeHelper (sub1 a) (add1 a))))))
(define negativeHelper
(lambda (a b)
(cond
((zero? a) #f)
((zero? b) #t)
(else (negativeHelper (sub1 a) (add1 b))))))
这看起来工作得很好,但我的问题是是否可以在negative?
没有辅助功能的情况下进行纠正?