- 어떤 것을 결정하는 일은 계산으로 표형 가능
- 장보기 과정
timeline
장보기 과정 : 냉장고 확인
: 운전해서 상점으로 가기
: 필요한 것 구입하기
: 운정해서 집으로 오기
: 음식을 냉장고에 보관하기
- 장보기 과정에서 배운 것
- 액션과 계산, 데이터는 어디에나 적용 가능
- 액션 안에는 계산과 데이터, 또 다른 액션이 숨어 있을 수 있음
- 함수형 프로그래밍에서는 액션을 더 작은 액션과 계산, 데이터로 나누고 나누는 것을 언제 멈춰야 할지 아는 것이 중요
- 계산은 더 작은 계산과 데이터로 나누고 연결 할 수 있음
- 계산을 나누면 첫 번째 계산의 결과 데이터가 두 번째 계산의 입력이 됨
- 데이터는 데이터만 조합 가능
- 데이터는 그냥 데이터라 데이터 찾는 일은 먼저 해야함
- 데이터를 통해 동작에 대해 많은 것을 알 수 있음
- 계산은 때로 ‘우리 머릿속에서’ 일어남
- 계산 단계가 잘 안보이는 이유는 우리의 사고 과정에 녹아 있기 때문
- 결정과 계획은 계산이 될 가능성이 높음
- 데이터란?
- 이벤트에 대한 사실
- 일어난 일의 결과를 기록한 것
- 사전적 정의
- 질량 명사 : 셀 수 없는 명사로 물질 명사와 추상 명사를 포함
- 이벤트에 대한 사실
- 사실 정보는 추론과 토론, 계산을 위한 기초 정보로 사용
- 의미 있게 처리한 입력 장치로부터 얻은 정보
- 데이터 불변성
- copy-on-write : 변경 할때 복사본을 생성
- 방어적 복사(defensive copy) : 보관하려고 하는 데이터의 복사본을 생성
- 데이터의 장점
- 데이터 자체로 할 수 있는 것이 없음
- 데이터 그대로 이해할 수 있음
- 직렬화 : 직렬화된 데이터는 전송 및 IO 하기 쉬움
- 동일성 비교 : 계산이나 액션은 비교가 어려우나 데이터는 쉬움
- 자유로운 해석 : 데이터는 여러 가지 방법으로 해석 가능
- 데이터의 단점
- 해석이 반드시 필요하다는 점
- 해석하지 않은 데이터는 쓸모없는 바이트