패캠의 "TypeScript를 활용한 함수형 프로그래밍 온보딩"의 함수형 프로그래밍 부분을 듣고 정리해봤다.
함수형 프로그래밍과 부수효과
함수형 프로그래밍: 작은 순수함수로 프로그램을 분해하고 이를 합성해 프로그래밍
- 함수 합성해 복잡한 프로그램 쉽게 만들기
- 부수효과를 공통적 방법으로 추상화
부수효과
값 반환 이외에 부수적으로 일으키는 효과
- 변수나 상태 바꾸거나 수정
- 화면이나 파일에 데이터 쓰는 IO 작업
- 다른 부수효과가 있는 함수나 상태값에 의존
let c
function dododo() {...}
function doSomething(a, b) {
c = 2 // 변수의 상태 바꾸거나 수정
dododo(c) // 다른 부수효과 있는 함수나 상태값에 의존
document.body.innerHTML = `${a} + ${b}` // 화면에 데이터 씀
}
부수효과는 함수 합성을 어렵게 만든다.
순수함수
똑같은 매개변수를 받으면 항상 같은 값을 반환하는 함수
모든 정의역에 대해 치역을 가진다. (전함수)
- 부수효과 없음
- 항상 예측 가능한 결과
함수 합성
여러 개 함수 합성해서 새로운 함수 생성 - 순수함수들을 합성해야 예측 가능해진다.결함이 없다
고차 함수도 활용한다. (함수 매개변수로 함수)
가독성 좋고, 깔끔해진다.
const saleText = O.mapOrElse(optionDiscountPrice,(discountPrice) => `(${discountPrice}원 할인)`, '')
'프론트엔드 > 함수형 프로그래밍' 카테고리의 다른 글
함수형 프로그래밍과 에러처리 (0) | 2023.01.09 |
---|