군대에서 짤막하게 공부중인지라 깊이 있게 할 순 없네요 ㅜㅜ
1.3 차수 높은 프로시저 부분입니다
(define (sum-cubes a b) if(> a b) 0 (+ a (sum-intergers (+ a 1) b )))) p.73쪽여기까진 식을 이해 하겠는데요..
(define (sum term a next b)
(if(>a b)
0
(+ (term a)
(sum term (next a) next b)))) [[[term a next b는(term a) (next b) 로 보는 거겠죠?]]]
'sum이 수의 넓이를 나타내는 a,b 뿐 아니라 프로시저 인자 term과 next를 받고 있다...''sum을 쓰는 방법은 보통 프로시저와 같다. 이를테면 (인자에 1응 더하는 프로시저 inc 와 아울러) sum-cubes를 다음처럼 정의할 수 있다. (define (inc n) (+ n 1))(define (sum-cubes a b) (sum cube a inc b)) (sum-cubes 1 10)
>3025 [[[그럼 이건 (define (sum-cubes a b) (sum (cube a) (inc b))라 생각할 수 있는건데,
a = 1b = 10
(sum (cube 1) (+1 10))=> (sum (1*1*1) (+1 10))=> (sum 1 11)...?엥]]]
이해가 안 되네유.. ㅜㅜ
1.3 차수 높은 프로시저 부분입니다
(define (sum-cubes a b) if(> a b) 0 (+ a (sum-intergers (+ a 1) b )))) p.73쪽여기까진 식을 이해 하겠는데요..
(define (sum term a next b)
(if(>a b)
0
(+ (term a)
(sum term (next a) next b)))) [[[term a next b는(term a) (next b) 로 보는 거겠죠?]]]
'sum이 수의 넓이를 나타내는 a,b 뿐 아니라 프로시저 인자 term과 next를 받고 있다...''sum을 쓰는 방법은 보통 프로시저와 같다. 이를테면 (인자에 1응 더하는 프로시저 inc 와 아울러) sum-cubes를 다음처럼 정의할 수 있다. (define (inc n) (+ n 1))(define (sum-cubes a b) (sum cube a inc b)) (sum-cubes 1 10)
>3025 [[[그럼 이건 (define (sum-cubes a b) (sum (cube a) (inc b))라 생각할 수 있는건데,
a = 1b = 10
(sum (cube 1) (+1 10))=> (sum (1*1*1) (+1 10))=> (sum 1 11)...?엥]]]
이해가 안 되네유.. ㅜㅜ
term a next b 인자 4개임. (term a) (next b) 아니야. sum(term, a, next, b) 라고 생각하셈. next가 함수객체(?)겠지
term도 함수네
sum(term a next b) 에 1부터 10항까지 수를 더하는 것이고 next b는 끝항인 10이 아닌, a항 다음항인 a+1이라 생각해도 되는건가요? (a -> inc b)그러다가 next a가 10초과가 되면 sum을 그만두는 게 맞구요?
(sum-cubes 1 10) 하면 1^3 + 2^3 + ... + 10^3 나오겠지. sicp는 먼가 막힌다 싶으면 첨부터 다시읽는게 좋아. 보니깐 프로시저 eval rule을 헷갈려 하는 거 같아서 그래
나도 군대에서 sicp 읽었었는데, 지금 생각하기엔 종만북을 읽었으면 더 도움됐을 거 같다고 생각해. PS가 군대에서 하기 좋거든
c밖에 안했는데 c++ java 이런 거 나오면 이해 가능할까요? topcoder 책도 자료구조책이라고 해서 삿는데 c++ c# java로 설명되어있길래 첫장부터 포기했거든요 ㅜ..
ps 에서 쓰는 cpp는 클래스 안써서 c만 알면 충분해. 모르는 내용나오면 그때그때 공부해도 문제없어
topcoder(빨간책)은 추천 안 하시나유..? 책을 또 사기엔 좀..
백준 쉬운 문제집 풀어. shiftpsh 나 ryute 꺼 추천함
어느정도 구현력 갖추고 책읽는게 좋아
문제집 살펴보고 왔는데 심상치가 않네요 ㄷㄷ.. 추천 감사합니다!