0

我需要在 Scheme 中创建这个程序:my-cons、my-car、my-cdr。

它应该像这样工作:

(定义 p1(我的缺点 3 8))

(p1 #t)

3

(p1 #f)

8

(我的车 p1)

3

(my-cdr p1)

8

现在,我只有这个:

(定义我的缺点

(λ (xy)

(缺点 xy)

(让 ((a (汽车 (cons xy)))))

 (lambda (a)
  (if (equal? a #f) y x)))))

但在这段代码中,我不能在定义的 p1 上应用 my-cons 或 my-cdr 有人可以帮我吗?

4

1 回答 1

1

首先,有一些无关的代码my-cons似乎不属于这里。这就够了:

(define my-cons
  (lambda (x y)
    (lambda (a)
      (if a x y))))

(此外,您不需要将布尔值与#tor进行比较#f——它可以按if原样使用。)

现在你有my-cons返回一个函数,它返回x或者y取决于它的参数。您可以在实现my-carand时使用它my-cdr

(define my-car
  (lambda (c)
    (c #t)))

(define my-cdr
  (lambda (c)
    (c #f)))
于 2012-11-26T14:06:24.510 回答