表达式按顺序逐个求值

构造过程抽象
2015-01-03 12:51

下面是一系列表达式,对于每个表达式,解释器将输出什么结果?假定这一系列表达式是按照给出的顺序逐个求值的

1
2
3
4
5
    10
    (+ 5 3 4)
    (- 9 1)
    (/ 6 2)
    (+ (* 2 4) (- 4 6)) ;; 8 + (-2)

输出

1
2
3
4
5
6
    10
    12
    8
    3
    6
    >
1
2
3
4
    (define a 3) ;; a = 3
    (define b (+ a 1)) ;; b = 4
    (+ a b (* a b)) ;; (+ 3 4 (* 3 4))
    (= a b)

输出

1
2
3
    19
    false
    >
1
2
3
4
    (define a 3) ;; a = 3
    (define b (+ a 1)) ;; b = 4
    
    (if (and (> b a) (< b (* a b ))) b a) ;; if (true true) 4 3)

输出

1
2
    4
    >
1
2
3
4
5
6
    (define a 3) ;; a = 3
    (define b (+ a 1)) ;; b = 4
    
    (cond ((= a 4) 6) ;; false 6
          ((= b 4) (+ 6 7 a)) ;; true 16
          (else 25))

输出

1
2
    16
    >
1
2
3
4
    (define a 3) ;; a = 3
    (define b (+ a 1)) ;; b = 4
    
    (+ 2 (if (> b a) b a))

输出

1
2
    6
    > 
1
2
3
4
5
6
7
    (define a 3) ;; a = 3
    (define b (+ a 1)) ;; b = 4
    
    (* (cond ((> a b) a) ;; false
             ((< a b) b) ;; true 4
             (else -1))
       (+ a 1))

输出

1
2
    16
    > 
加载 Disqus 评论

© 版权所有 悟理 2013-2019
Powered By Jekyll & Semantic UI

表达式按顺序逐个求值

构造过程抽象
2015-01-03 12:51

下面是一系列表达式,对于每个表达式,解释器将输出什么结果?假定这一系列表达式是按照给出的顺序逐个求值的

1
2
3
4
5
    10
    (+ 5 3 4)
    (- 9 1)
    (/ 6 2)
    (+ (* 2 4) (- 4 6)) ;; 8 + (-2)

输出

1
2
3
4
5
6
    10
    12
    8
    3
    6
    >
1
2
3
4
    (define a 3) ;; a = 3
    (define b (+ a 1)) ;; b = 4
    (+ a b (* a b)) ;; (+ 3 4 (* 3 4))
    (= a b)

输出

1
2
3
    19
    false
    >
1
2
3
4
    (define a 3) ;; a = 3
    (define b (+ a 1)) ;; b = 4
    
    (if (and (> b a) (< b (* a b ))) b a) ;; if (true true) 4 3)

输出

1
2
    4
    >
1
2
3
4
5
6
    (define a 3) ;; a = 3
    (define b (+ a 1)) ;; b = 4
    
    (cond ((= a 4) 6) ;; false 6
          ((= b 4) (+ 6 7 a)) ;; true 16
          (else 25))

输出

1
2
    16
    >
1
2
3
4
    (define a 3) ;; a = 3
    (define b (+ a 1)) ;; b = 4
    
    (+ 2 (if (> b a) b a))

输出

1
2
    6
    > 
1
2
3
4
5
6
7
    (define a 3) ;; a = 3
    (define b (+ a 1)) ;; b = 4
    
    (* (cond ((> a b) a) ;; false
             ((< a b) b) ;; true 4
             (else -1))
       (+ a 1))

输出

1
2
    16
    > 
加载 Disqus 评论

© 版权所有 悟理 2013-2019
Powered By Jekyll & Semantic UI

表达式按顺序逐个求值

构造过程抽象
2015-01-03 12:51

下面是一系列表达式,对于每个表达式,解释器将输出什么结果?假定这一系列表达式是按照给出的顺序逐个求值的

1
2
3
4
5
    10
    (+ 5 3 4)
    (- 9 1)
    (/ 6 2)
    (+ (* 2 4) (- 4 6)) ;; 8 + (-2)

输出

1
2
3
4
5
6
    10
    12
    8
    3
    6
    >
1
2
3
4
    (define a 3) ;; a = 3
    (define b (+ a 1)) ;; b = 4
    (+ a b (* a b)) ;; (+ 3 4 (* 3 4))
    (= a b)

输出

1
2
3
    19
    false
    >
1
2
3
4
    (define a 3) ;; a = 3
    (define b (+ a 1)) ;; b = 4
    
    (if (and (> b a) (< b (* a b ))) b a) ;; if (true true) 4 3)

输出

1
2
    4
    >
1
2
3
4
5
6
    (define a 3) ;; a = 3
    (define b (+ a 1)) ;; b = 4
    
    (cond ((= a 4) 6) ;; false 6
          ((= b 4) (+ 6 7 a)) ;; true 16
          (else 25))

输出

1
2
    16
    >
1
2
3
4
    (define a 3) ;; a = 3
    (define b (+ a 1)) ;; b = 4
    
    (+ 2 (if (> b a) b a))

输出

1
2
    6
    > 
1
2
3
4
5
6
7
    (define a 3) ;; a = 3
    (define b (+ a 1)) ;; b = 4
    
    (* (cond ((> a b) a) ;; false
             ((< a b) b) ;; true 4
             (else -1))
       (+ a 1))

输出

1
2
    16
    > 
加载 Disqus 评论

© 版权所有 悟理 2013-2019
Powered By Jekyll & Semantic UI