Scheme 方案替代模型
关于程序:Scheme 方案替代模型,scheme,racket,Scheme,Racket,关于程序: (define (double fn) (lambda (x) (fn (fn x)))) 打电话时: (((double (double double)) 1+) 0) 这是否正确: (double (lambda (x) (double (double x) 1+) 0)) ((lambda (x) (double^4 x) 1+) 0) ((double^4 1+) 0) (16+ 0)
(define (double fn) (lambda (x) (fn (fn x))))
打电话时:
(((double (double double)) 1+) 0)
这是否正确:
(double (lambda (x) (double (double x) 1+) 0))
((lambda (x) (double^4 x) 1+) 0)
((double^4 1+) 0)
(16+ 0)
16
(((double double (double double) double) 1+) 0)
(double (double (lambda (x) (double (double x) 1+) 0)))
(double (lambda (x) (double^4 1+) 0))
((lambda (x) (double^16 x) 1+) 0)
((double^16 1+) 0)
(256+ 0)
256
同样,在呼叫时:
(((((double double) double) double) 1+) 0)
这是否正确:
(double (lambda (x) (double (double x) 1+) 0))
((lambda (x) (double^4 x) 1+) 0)
((double^4 1+) 0)
(16+ 0)
16
(((double double (double double) double) 1+) 0)
(double (double (lambda (x) (double (double x) 1+) 0)))
(double (lambda (x) (double^4 1+) 0))
((lambda (x) (double^16 x) 1+) 0)
((double^16 1+) 0)
(256+ 0)
256
我推荐DrRacket中的步进器。它允许您一次显示一个步骤。它甚至允许你回去 首先,我选择了语言“HTDP:advancedwithlambda”。 然后我进入了这个程序:
(define (double fn)
(lambda (x) (fn (fn x))))
(((double (double double)) add1) 0)
最后我点击了步进按钮。什么是
1+/code>,16+/code>,256+/code>,double^4
和double^16
?可能的重复