我正在阅读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)(如果(...
在过程中,(cadr exp)
不是名称,而是一个列表的第一个元素是名称。