SICP 독서여자회 #42(3.2.1)
5530 단어 SICP
시도된 함수 생성 환경?
Ex 3.9
반복 버전
(define (factorial n)
(if (= n 1) 1 (* n #?=(factorial (- n 1)))))
TraceCALL factorial 6
#?="./ex3.9.scm":2:(factorial (- n 1))
CALL factorial 5
#?="./ex3.9.scm":2:(factorial (- n 1))
CALL factorial 4
#?="./ex3.9.scm":2:(factorial (- n 1))
CALL factorial 3
#?="./ex3.9.scm":2:(factorial (- n 1))
CALL factorial 2
#?="./ex3.9.scm":2:(factorial (- n 1))
#?- 1
RETN factorial 2
#?- 2
RETN factorial 6
#?- 6
RETN factorial 24
#?- 24
RETN factorial 120
#?- 120
RETN factorial 720
반복 버전(define (factorial n) (fact-iter 1 1 n))
(define (fact-iter product counter max-count)
(if
(> counter max-count)
product
(fact-iter (* counter product) (+ counter 1) max-count)))
TraceCALL factorial 6
RETN factorial 720
정답Ex.3.9 수정
누가 읽든지 함수의 공간이 무엇을 보고 있는지 가리킨다
(define (factorial n) (fact-iter 1 1 n))
(define (fact-iter product counter max-count)
(if (> counter max-count)
product
(fact-iter (* counter product)
(+ counter 1)
max-count)))
하하(define (a x)
(define (b y) '1)
(define (c z) '2)
)
global <- a <- b
↑c
b, c는 a, 글로벌도 볼 수 있어요.4
(a 1)
이때 새로운 프레임(E1)을 생성하고 E1->글로벌과 매개 변수를 x=1로 초기화합니다이런 느낌입니다.
그래서
정답
Reference
이 문제에 관하여(SICP 독서여자회 #42(3.2.1)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/cocodrips/items/8035f7a20a4bccb3c800텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)