무냐의 개발일지
[OSSU] <UBCx HtC1x_How to Code> / 9a_Generative Recursion (재귀함수) 본문
OSSU_CS coursework
[OSSU] <UBCx HtC1x_How to Code> / 9a_Generative Recursion (재귀함수)
무냐코드 2024. 5. 10. 15:30
alwyas start with the base case !!!


엄청 작은 CUTOFF 사이즈에 도달할때까지 반복한다
(check-expect (ssqr CUTOFF) (square CUTOFF "outline" "red"))
(check-expect (ssqr (* 3 CUTOFF))
(overlay (square (* 3 CUTOFF) "outline" "red")
(local [(define sub (square CUTOFF "outline" "red"))
(define BLANK (square CUTOFF "solid" "white"))]
(above (beside sub sub sub)
(beside sub BLANK sub)
(beside sub sub sub)))))
;(define (ssqr s) (square CUTOFF "solid" "white")) ; stub
(define (ssqr s)
(cond [(<= s CUTOFF) (square s "outline" "red")] ;; No recursion
[else
(overlay (square s "outline" "red")
(local [(define sub (ssqr (/ s 3))) ; Recursion !!
(define BLANK (square (/ s 3) "solid" "white"))]
(above (beside sub sub sub)
(beside sub BLANK sub)
(beside sub sub sub))))]))
#처음에 잘 안돼서 align을 추가했는데, 필요없었음
(overlay/align "left" "top"
(square s "outline" "red")
(local [(define sub (ssqr (/ s 3)))
(define BLANK (square (/ s 3) "solid" "white"))]
(above (beside sub sub sub)
(beside sub BLANK sub)
(beside sub sub sub))))]))

| P1
