SICP����������� ������������������ 3.5����������� ������������������ 스트림
cecil
이����������� ������������������ 장에서는,����������� ������������������ 스트림����������� ������������������ 데이터����������� ������������������ 구조를����������� ������������������ 바탕으로����������� ������������������ 상태를����������� ������������������ ����������� ������������������
흉내내는����������� ������������������ 방법을����������� ������������������ 학습함����������� ������������������
스트림이란?����������� ������������������ ����������� ������������������
시간에����������� ������������������ 따른����������� ������������������ 데이터를����������� ������������������ 이산����������� ������������������ 값으로����������� ������������������ 잴����������� ������������������ 수����������� ������������������ 있다는����������� ������������������ 가정하에����������� ������������������ ����������� ������������������
차례열로����������� ������������������ 시간����������� ������������������ 데이터를����������� ������������������ 표현����������� ������������������
(리스트����������� ������������������ 대신����������� ������������������ delayed����������� ������������������ evaluation����������� ������������������ 방법을����������� ������������������ 사용)
3.5.1����������� ������������������ 스트림과����������� ������������������ (계산을)����������� ������������������ 미룬����������� ������������������ 리스트
차례열����������� ������������������ 프로그램을����������� ������������������ 리스트의����������� ������������������ 변환����������� ������������������ 과정으로����������� ������������������ 표현할����������� ������������������ 경우����������� ������������������
단계별����������� ������������������ 처리����������� ������������������ 과정을����������� ������������������ 거칠때����������� ������������������ 마다����������� ������������������ 데이터����������� ������������������ 구조를����������� ������������������ 새로����������� ������������������ 만들어서����������� ������������������
복사하는����������� ������������������ 일을����������� ������������������ 피할����������� ������������������ 도리가����������� ������������������ 없다
구간내의����������� ������������������ 소수를����������� ������������������ 모두����������� ������������������ 구하는����������� ������������������ 프로그램
반복하는����������� ������������������ 방식으로����������� ������������������ 구현
되도는����������� ������������������ 방식으로����������� ������������������ 구현
쓸데����������� ������������������ 없는����������� ������������������ 계산이����������� ������������������ 많고,����������� ������������������ 공간이����������� ������������������ 낭비����������� ������������������ 됨
스트림은����������� ������������������ 리스트만큼����������� ������������������ 커다란����������� ������������������ 대가를����������� ������������������ 치리지����������� ������������������ 않으면서,����������� ������������������
차례열����������� ������������������ 패러다임으로����������� ������������������ 프로그램을����������� ������������������ 짤����������� ������������������ 수����������� ������������������ 있음.����������� ������������������
스트림을����������� ������������������ 사용한����������� ������������������ 방법����������� ������������������
프로그램에서����������� ������������������ 스트림을����������� ������������������ 인자로����������� ������������������ 받는����������� ������������������ 경우,����������� ������������������ 스트림을����������� ������������������ 덜����������� ������������������ 만든����������� ������������������ 상태에서����������� ������������������
전달����������� ������������������ 후,����������� ������������������ 실제로����������� ������������������ 사용하려고����������� ������������������ 할때����������� ������������������ 필요한����������� ������������������ 만큼����������� ������������������ 원소를����������� ������������������ 만들어����������� ������������������ 냄
리스트와����������� ������������������ 대응하는����������� ������������������ 스트림����������� ������������������ 프로시저����������� ������������������ 정의기본����������� ������������������ 연산
각각의����������� ������������������ 항목을����������� ������������������ 처리하는����������� ������������������ 연산 출력을����������� ������������������ 위한����������� ������������������ 연산
스트림의����������� ������������������ 구성����������� ������������������ (delay����������� ������������������ 방식����������� ������������������ 사용)
(delay����������� ������������������ <exp>)����������� ������������������ 결과를����������� ������������������ 미룬����������� ������������������ 객체를����������� ������������������ 생성����������� ������������������
(force����������� ������������������ <delay����������� ������������������ object>):����������� ������������������ 계산을����������� ������������������ 적용
스트림을����������� ������������������ 이용한����������� ������������������ 소수����������� ������������������ 구하는����������� ������������������ 프로그램
delay
force
필요한����������� ������������������ 순간����������� ������������������ 필요한����������� ������������������ 원소를����������� ������������������ 생성����������� ������������������
stream-filter의����������� ������������������ 정의에����������� ������������������ 따라����������� ������������������ 만들어����������� ������������������ 지는����������� ������������������ 방식
하나씩����������� ������������������ 풀어서����������� ������������������ 쓸����������� ������������������ 경우����������� ������������������ (10007을����������� ������������������ 찾고����������� ������������������ 이후����������� ������������������ 과정)
필요한����������� ������������������ 값만����������� ������������������ 구간����������� ������������������ 값만큼만����������� ������������������ 필터로����������� ������������������ 생성
delay와����������� ������������������ force����������� ������������������ 프로시저
delay의����������� ������������������ 구현force의����������� ������������������ 구현
메모����������� ������������������ 기능을����������� ������������������ 적용한����������� ������������������ delay,����������� ������������������ force
delay의����������� ������������������ 구현
force의����������� ������������������ 구현
같은����������� ������������������ 값을����������� ������������������ 여러번����������� ������������������ 되풀이����������� ������������������ 하는����������� ������������������ 경우����������� ������������������ 효율적!!
3.5.2����������� ������������������ 무한����������� ������������������ 스트림
끝없이����������� ������������������ 길게����������� ������������������ 늘어진����������� ������������������ 차례열을����������� ������������������ 표현
7로����������� ������������������ 나누어����������� ������������������ 떨어지는����������� ������������������ 않는����������� ������������������ 정수����������� ������������������ 스트림
양의����������� ������������������ 정수를����������� ������������������ 나타내는����������� ������������������ 스트림
7로����������� ������������������ 나누어����������� ������������������ 지지����������� ������������������ 않는����������� ������������������ 100번째����������� ������������������ 수
에라토스테네스의����������� ������������������ 체라는����������� ������������������ 계산����������� ������������������ 방법을����������� ������������������ ����������� ������������������ 이용한����������� ������������������ 무한����������� ������������������ 소수����������� ������������������ 스트림
필터가����������� ������������������ 연속해서����������� ������������������ 적용이����������� ������������������ 됨
스트림을����������� ������������������ 드러나지����������� ������������������ 않게����������� ������������������ 정의하는����������� ������������������ 방법
원소����������� ������������������ 1의����������� ������������������ 무한����������� ������������������ 스트림
두����������� ������������������ 스트림을����������� ������������������ 더����������� ������������������ 하는����������� ������������������ 프로시저
끝����������� ������������������ 없는����������� ������������������ 양의����������� ������������������ 정수의����������� ������������������ 표현
스트림을����������� ������������������ 드러나지����������� ������������������ 않게����������� ������������������ 정의하는����������� ������������������ 방법(2)
피보나치����������� ������������������ 수열의����������� ������������������ 정의
정해진����������� ������������������ 상수����������� ������������������ 값을����������� ������������������ 곱한����������� ������������������ 스트림을����������� ������������������ 생성
3.5.3����������� ������������������ 스트림����������� ������������������ 패러다임
스트림����������� ������������������ 프로세스로����������� ������������������ 반복을����������� ������������������ 표현하는����������� ������������������ 방법����������� ������������������ (무한����������� ������������������ 스트림을����������� ������������������ 이용한����������� ������������������ 제곱근����������� ������������������ 구하기)
신호를����������� ������������������ 표현하는����������� ������������������ 스트림연속하는����������� ������������������ 시간����������� ������������������ 간격의����������� ������������������ 신호����������� ������������������ 값들을����������� ������������������ 줄줄이����������� ������������������ 이어진����������� ������������������ 스트림의����������� ������������������ 원소로����������� ������������������ 표현����������� ������������������
덧셈기����������� ������������������ 스트림����������� ������������������ x����������� ������������������ =����������� ������������������ (xi),����������� ������������������ 첫값����������� ������������������ C,����������� ������������������ 증분����������� ������������������ Dt를����������� ������������������ 인수로����������� ������������������ 받아서����������� ������������������ S=(Sj)로����������� ������������������
뽑아내는����������� ������������������ 연산을����������� ������������������ 표현
3.5.4����������� ������������������ 스트림과����������� ������������������ 셈미룸(delay)����������� ������������������ 계산법
루프(피드백)가����������� ������������������ 있는����������� ������������������ 시스템을����������� ������������������ 모델링할때����������� ������������������ Cons-stream에����������� ������������������ 숨어����������� ������������������ 있는����������� ������������������
delay����������� ������������������ 연산이외에����������� ������������������ 추가로����������� ������������������ delay����������� ������������������ 연산을����������� ������������������ 사용해야할����������� ������������������ 경우가����������� ������������������ 있음
delay와����������� ������������������ force를����������� ������������������ 사용하면����������� ������������������ 프로그램의����������� ������������������ 표현력을����������� ������������������ 크게����������� ������������������ 올릴����������� ������������������ 수����������� ������������������ 있음����������� ������������������
이로����������� ������������������ 인하여����������� ������������������ 프로시저를����������� ������������������ 계산하는����������� ������������������ 방법이����������� ������������������ 2가지가����������� ������������������ 필요����������� ������������������
(보통����������� ������������������ 프로시저,����������� ������������������ 셈미룸����������� ������������������ 프로시저)����������� ������������������
이를����������� ������������������ 하나로����������� ������������������ 하기����������� ������������������ 위해서는����������� ������������������ 모든����������� ������������������ 프로시저가����������� ������������������ 인자����������� ������������������ 값����������� ������������������ 계산을����������� ������������������
미루도록����������� ������������������ 하는����������� ������������������ 것이����������� ������������������ 필요����������� ������������������
정의����������� ������������������ 대로����������� ������������������ 계산법이����������� ������������������ 셈미룬����������� ������������������ 프로시저를����������� ������������������ 처리하는����������� ������������������ 가장����������� ������������������ 자연스러운����������� ������������������ 방식
3.5.5����������� ������������������ 모델로����������� ������������������ 바라본����������� ������������������ 함수와����������� ������������������ 물체
상태가����������� ������������������ 있는����������� ������������������ 진짜����������� ������������������ 시스템을����������� ������������������ 컴퓨터����������� ������������������ 프로그램으로����������� ������������������ 시뮬레이션����������� ������������������ 하기����������� ������������������ 위한����������� ������������������ 방법����������� ������������������
•상태����������� ������������������ 변수����������� ������������������ 사용하여,����������� ������������������ 덮어����������� ������������������ 쓰기����������� ������������������ 연산을����������� ������������������ 적용����������� ������������������
•스트림����������� ������������������ 기법의����������� ������������������ 적용����������� ������������������
•스트림����������� ������������������ 기법의����������� ������������������ 특징:����������� ������������������ 덮어����������� ������������������ 쓰기를����������� ������������������ 하지����������� ������������������ 않고,����������� ������������������ 상태를����������� ������������������ 표현����������� ������������������ 가능
물체는����������� ������������������ 상태����������� ������������������ 변수로����������� ������������������ 시뮬레이션하고,����������� ������������������ 달라지는����������� ������������������ 상태는����������� ������������������ 상태����������� ������������������ 변수를����������� ������������������ ����������� ������������������
덮어쓰는����������� ������������������ 것으로����������� ������������������ 표현����������� ������������������ 할����������� ������������������ 수����������� ������������������ 있다.����������� ������������������
또한����������� ������������������ 컴퓨터����������� ������������������ 계산을����������� ������������������ 물체로����������� ������������������ 표현하는����������� ������������������ 방식,����������� ������������������ 즉����������� ������������������ 물체����������� ������������������ 방식이����������� ������������������ 받아����������� ������������������ 들이기����������� ������������������ 쉽다����������� ������������������
But,����������� ������������������ 여러����������� ������������������ 프로세스의����������� ������������������ 동기를����������� ������������������ 맞춘다거나����������� ������������������ 하는����������� ������������������ 껄끄러운����������� ������������������ 문제가����������� ������������������ 생김.����������� ������������������
이러한����������� ������������������ 문제를����������� ������������������ 피해갈����������� ������������������ 수����������� ������������������ 있으����������� ������������������ 함수����������� ������������������ 프로그래밍����������� ������������������ 언어가����������� ������������������ ����������� ������������������
병행����������� ������������������ 시스템을����������� ������������������ 다루는데����������� ������������������ 인기가����������� ������������������ 있음.����������� ������������������
하지만,����������� ������������������ 함수����������� ������������������ 방식을����������� ������������������ 사용하더라도����������� ������������������ 동기화����������� ������������������ 문제에����������� ������������������ 자유로울����������� ������������������ 수����������� ������������������ 없음.
실세계의����������� ������������������ 모형을����������� ������������������ 시간에����������� ������������������ 따라����������� ������������������ 상태가����������� ������������������ 변하는����������� ������������������ 물체로����������� ������������������ 볼수����������� ������������������ 있고,����������� ������������������ ����������� ������������������
그와����������� ������������������ 달리����������� ������������������ 상태����������� ������������������ 없고,����������� ������������������ 시간의����������� ������������������ 영향을����������� ������������������ 받지도����������� ������������������ 않는����������� ������������������ 단일체로����������� ������������������ 볼수����������� ������������������ 있다.����������� ������������������ ����������� ������������������
양쪽����������� ������������������ 다����������� ������������������ 장점이����������� ������������������ 있지만,����������� ������������������ 어느����������� ������������������ 한쪽도����������� ������������������ 만족스러운����������� ������������������ 해결책을����������� ������������������ 주지����������� ������������������ 않음.����������� ������������������
상황에����������� ������������������ 따라����������� ������������������ 골라서����������� ������������������ 사용하는����������� ������������������ 지혜가����������� ������������������ 필요
3장.����������� ������������������ 결����������� ������������������ ����������� ������������������ ����������� ������������������ ����������� ������������������ 론
Q&A
Reference• Harold����������� ������������������ Abelson,����������� ������������������ Gerald����������� ������������������ Jay����������� ������������������ Sussman,����������� ������������������ Julie����������� ������������������ Sussman,����������� ������������������ 컴퓨
터����������� ������������������ 프로그램의����������� ������������������ 구조와����������� ������������������ 해석(김재우,����������� ������������������ 안윤호,����������� ������������������ 김수정,����������� ������������������ 김정민����������� ������������������ 옮김).����������� ������������������ 서울시����������� ������������������ 마포구:����������� ������������������ 인사이트,����������� ������������������ 2008