|
ch1. 함수형 자바스크립트 소개
함수형 프로그래밍은 값을 추상화의 단위로 바꾸는 기능을 하며 결국 바뀐 값들로 소프트웨어 시스템이 만들어진다.
함수형 프로그래밍에서는 괄찰할 수 있는 사태 변화를 최소화하려고 애쓴다.
함수는 뷰에서 상세 구현을 숨김으로써 추상화를 달성할 수 있다.
캡슐화와 은닉. 자바스크립트의 객체 시스템에서는 데이터 은닉을 직접적으로 제공하지 않아 클로저를 이용해 데이터를 감춘다.
함수형 프로그래밍이란 이런 것이다.
- 함수 형태로 '존재'의 추상화를 정의한다.
- 기존 함수를 이용해서 '참거짓'의 추상화를 정의한다.
- 위 함수를 다른 함수의 파라미터로 제공해서 어떤 동작을 하도록 한다.
다음과 같은 특징을 갖는다.
- 추상화를 식별해서 함수로 만든다.
- 기존 함수를 이용해서 더 복잡한 추상화를 만든다.
- 기존 함수를 다른 함수에 제공해서 더 복잡한 추상화를 만든다.
ch2. 일급 함수(first-class function)와 응용형 프로그래밍
일급(first-class)라는 용어에는 모든 것을 값으로 취급한다는 의미가 내포되어 있다.
직접 응용형 함수를 만들려면, 다른 함수를 인자로 받는 함수를 정의하고 그 다음에 인자로 받은 함수를 호출해서 정의한 함수를 완성한다.
여러 인자를 받아서 연결하는 기능을 수행하는 함수는 응용형이 아니다.
점진적으로 함수를 정의하고 저수준 함수에서 만들어진 여려 기능을 사용한 것이 함수형 프로그램의 핵심적인 특징이다. 연쇄적으로 함수를 호출하는 함수 체인을 자주 볼 수 있을 것이다.
ch3. 변수 스코프와 클로저
이 챕터는 다시 읽고 정리
ch4. 고차원(higher-order) 함수
고차원 함수는 일급(first class)이다.
함수를 인자로 받는다.
함수를 결과로 반환한다.
ch6. 재귀
재귀를 이해하는 것이 왜 중요한가.
- 재귀 솔루션은 일반적인 문제를 하위의 작은 문제로 분리한 다음에 하위 문제를 하나의 추상화로 만들어서 문제를 해결한다.
- 재귀는 변이 상태를 숨길 수 있다.
- 재귀로 게으름(laziness), 무한히 큰 구조도 구현할 수 있다.
'개발 > Javascript' 카테고리의 다른 글
split + regexp (0) | 2017.07.02 |
---|---|
ionic2 (0) | 2017.02.21 |
push후 new array 리턴받아야 할 때 (0) | 2016.09.18 |
터미널에서 api 테스트 (0) | 2016.09.18 |
mern stack 따라하기 (0) | 2016.09.18 |