为什么返回这个?

时间:2019-03-04 01:41:32

标签: scheme lisp

我正在尝试使用lambda,但是当我在控制台中对其进行测试时,它返回#<procedure:...esktop/Lab 4.rkt:105:2>

我的代码是

(define (comp f g)
  (lambda (x) (f (g x))))

我的测试代码是

(comp (lambda (x) (+ x 1)) 3)

由于某种原因,lambda推迟了评估。有人可以帮忙吗?

1 个答案:

答案 0 :(得分:5)

comp接受两个函数参数并返回一个新函数-它们的 组成:

(define (comp f g)
  (lambda (x) (f (g x))))
;Value: comp

要对其进行测试,必须调用一个 number

((comp (lambda (x) (+ x 1))
       (lambda (x) (+ x 2)))
 3)
;Value: 6