-
[Functional] 평가와 일급, 고차함수programing/Language 2019. 6. 25. 20:34
안녕하세요, Einere입니다.
(ADblock을 꺼주시면 감사하겠습니다.)
함수형 프로그래밍이란?
- '존재'의 추상화를 함수 형태로 정의한다.
- 기존 함수를 이용해서 '참거짓'의 추상화를 정의한다.
- 위 함수를 다른 함수의 파라미터로 제공해서 어떤 동작을 하도록 한다.
함수형 프로그래밍은 일급 함수와 편의성이 중요하다.
함수형 프로그래밍의 자격
- 관계형 정의
- 타입
- 패턴 매치
- 불변성
- 순수성
평가(evaluation)
코드가 계산되어 값을 만드는 것.
일급
값으로 다룰 수 있다.
변수에 할당할 수 있다.
함수의 인자로 사용될 수 있다.
함수의 결과로 사용될 수 있다.
일급 함수
함수를 값으로 다룰 수 있다.
함수를 변수에 할당할 수 있다.
함수의 인자로 함수를 사용할 수 있다.
함수의 결과로 함수를 사용할 수 있다.
조합성과 추상화의 도구이다.
고차함수
함수를 값으로서 다루는 함수.
함수를 인자로 받아서 사용하는 함수.
함수를 반환하는 함수. ex) 클로저를 반환하는 함수.
JS의 다중 패러다임
자바스크립트는 다양한 패러다임을 제공한다.
- 명령형 프로그래밍
- 우리가 흔히 아는 C, Java와 같이 어떻게를 강조한 프로그래밍. 같이 언급되는 단어인 선언형 프로그래밍이 있다.
- 프로토타입 기반 객체 지향 프로그래밍
- ES6에서는 class 기반 객체 지향 프로그래밍도 지원한다.
- 메타 프로그래밍
- 실행 모델의 기반을 변경하는 프로그래밍..이라는데 잘 모르겠다.
참고
마이클 포거스, 『함수형 자바스크립트 : 새롭고 올바른 자바스크립트 프로그래밍 기법』, 한빛미디어(2014).
유인동, 인프런 - 함수형 프로그래밍과 JavaScript ES6+
'programing > Language' 카테고리의 다른 글
[Functional] 제네레이터와 이터러블 (0) 2019.07.15 [Functional] 순회와 이터러블 (0) 2019.07.15 [JS] 블로그 드래그 방지 해제 (0) 2019.06.12 [HTML, JS] ES6문법을 활용한 모듈 export, import (0) 2019.05.04 [JS] DOM element의 offsetTop (0) 2019.05.01 댓글