((caadr exp)in赋值变量

问题描述 投票:0回答:1

我正在阅读SICP的4.1.2 Representing Expressions,>

定义definition-variable

  (define (definition? exp)
    (tagged-list? exp 'define))

  (define (definition-variable exp)
    (if (symbol? (cadr exp))
        (cadr exp)
        (caadr exp))) ;;

请参阅条件

    (if (symbol? (cadr exp))
        (cadr exp)
        (caadr exp))) ;;

我不太确定(caadr exp)返回了什么?是null还是'()

可变大小写

(define ⟨var⟩ ⟨value⟩)

[(cadr exp)返回第二个元素作为变量,

但可替代程序案例:

  (define (⟨var⟩ ⟨param₁⟩ … ⟨paramₙ⟩)
    ⟨body⟩)

表达式(caadr exp)))为(car (car (cdr x)))

由于cadr为var,那么caadr为null?

我正在阅读4.1.2代表SICP的表达式,该表达式定义了定义变量。 (定义(definition?exp)(标记列表?exp'define))(定义(definition-variable exp)(如果(...

scheme racket sicp
1个回答
2
投票

在过程中,(cadr exp)不是名称,而是一个列表的第一个元素是名称。

© www.soinside.com 2019 - 2024. All rights reserved.