Я читаю 4.1.2 Представление выражений SICP,
, которое определяет 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 - это ноль?