我正在从这个页面进行练习 http://www.htdp.org/2003-09-26/Solutions/natnum-list.html
在此代码中
Q_INIT_RESOURCE(*);
我们使用add1预定义函数,这意味着(+ x 1),我想将add1与(+ x 1)或lambda交换。可能吗?如果有,怎么样?
我不想在函数之外写这个。
(define (depth a-dl
(cond
[(symbol? a-dl) 0]
[else (add1 (depth (first a-dl)))]))
左右
(define (add1 x)
(+ x 1))
答案 0 :(得分:1)
add1
不意味着(+ x 1)
,因为x
中没有add1
。
(add1 x)
可以表示(+ x 1)
,如果这样定义的话。
为了使其具有这个含义,我们将其定义为
(define (add1 x)
(+ 1 x))
或等同于
(define add1
(lambda (x)
(+ 1 x)))
这意味着无论add1
出现在哪里,(lambda (x) (+ 1 x))
都可以出现,效果相同。
当然,写作
( (lambda (x) (+ 1 x)) ....Y.... )
与写作相同
( + 1 ....Y.... )