Scheme SICP视频讲座2

Scheme SICP视频讲座2,scheme,racket,sicp,Scheme,Racket,Sicp,我对这个例子有一个问题 (define (+ x y) (if (= x 0) y (+ (-1+ x) (1+ y)))) -1+和1+有什么问题,当我评估它时,我得到了这个结果 DrScheme:-1+:未定义此函数 球拍:对未定义标识符的引用:-1+ 但是我写了这篇文章,它很有效 (define (add x y) (if (= x 0) y (+ (- x 1) (+ y 1)))) 关于球拍: 使用add1代替1+ 使用

我对这个例子有一个问题

(define (+ x y)
  (if (= x 0)
      y
      (+ (-1+ x) (1+ y))))
-1+和1+有什么问题,当我评估它时,我得到了这个结果

  • DrScheme:-1+:未定义此函数
  • 球拍:对未定义标识符的引用:-1+
但是我写了这篇文章,它很有效

(define (add x y)
  (if (= x 0)
      y
      (+ (- x 1) (+ y 1))))
关于球拍:

  • 使用
    add1
    代替
    1+
  • 使用
    sub1
    代替
    -1+
    1-

问题是,这些名称都不是标准名称,因此无法在所有方案实现中可靠地使用它们。:-)

您可以通过向DrRacket添加SICP支持来解决此问题


如果有麻烦,请告诉我

sub1和add1很棒,我认为Sussman使用-1+只是为了解释这个例子。谢谢你,克里斯