第一个进入一个区间,第二个应该是这个区间。
(define make-interval
(lambda (lower upper)(cons lower upper)))
(define lower-endpoint
(lambda (interval)
(lambda (lower upper)
(car (interval lower upper)))))
相反,我不断返回程序。这可能是一个非常简单的修复,我看不到它!TT
第一个进入一个区间,第二个应该是这个区间。
(define make-interval
(lambda (lower upper)(cons lower upper)))
(define lower-endpoint
(lambda (interval)
(lambda (lower upper)
(car (interval lower upper)))))
相反,我不断返回程序。这可能是一个非常简单的修复,我看不到它!TT
导致错误的原因是您返回的是一个过程( 中的第二个lambda)lower-endpoint,而不是一个值。
第二个过程只需要intervalas 参数,第二个lambda是不必要的,lower和参数也是一样的:如果参数已经有了它们upper,为什么还要它们?interval这就是你的意图:
(define lower-endpoint
(lambda (interval)
(car interval)))
您可以对过程定义使用更简单的等效语法:
(define (lower-endpoint interval)
(car interval))
甚至更短,只需创建 , 的别名car,因为这是唯一要做lower-endpoint的事情:
(define lower-endpoint car)