4.1.2 Representing Expressions of 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은 null입니까?
프로 시저의 경우 (cadr exp)
이름이 아니라 첫 번째 요소가 이름 인 목록입니다.
(cadr exp)
|
v
+-------+
| |
(define (f a b c) body) <--- exp
^
|
(caadr exp)
평가하는 경우 :
(caadr '(define (⟨var⟩ ⟨param₁⟩ … ⟨paramₙ⟩) ⟨body⟩))
-->
(caar '((⟨var⟩ ⟨param₁⟩ … ⟨paramₙ⟩) ⟨body⟩))
-->
(car '(⟨var⟩ ⟨param₁⟩ … ⟨paramₙ⟩))
-->
⟨var⟩
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다