0

第一个进入一个区间,第二个应该是这个区间。

(define make-interval
    (lambda (lower upper)(cons lower upper)))

(define lower-endpoint
    (lambda (interval)
      (lambda (lower upper)
        (car (interval lower upper)))))

相反,我不断返回程序。这可能是一个非常简单的修复,我看不到它!TT

4

1 回答 1

2

导致错误的原因是您返回的是一个过程( 中的第二个lambdalower-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)
于 2013-10-11T23:36:38.500 回答