Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/extjs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Scheme 方案替代模型_Scheme_Racket - Fatal编程技术网

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
?可能的重复