함수를 값으로 다룰 수 있다는 자바스크립트의 특성 ( 일급함수 ) 때문에
정말 다채로운 표현이 가능한 데, 그걸 배우는 데에는 아래 강의가 개인적으로 최고이지 않을까 싶습니다.
참고 : 함수형 프로그래밍과 JavaScript ES6+ 유인동 님
https://www.inflearn.com/course/functional-es6
const go = (...args) => args.reduce((a, f) => f(a));
go(
0,
a => a + 1,
a => a + 10,
a => a + 100,
console.log // 111
)
여기서 go 라는 이름의 사용자 정의 함수를 만들어 사용하는 데 아래와 같은 장점이 있습니다.
1. 함수 합성 (Function Composition)
go 함수는 여러 함수를 순차적으로 실행하여 하나의 새로운 함수처럼 동작하게 합니다.
- 첫 번째 인자는 초기값으로 사용됩니다.
- 이후의 각 함수는 이전 함수의 결과를 입력으로 받아 처리합니다.
- 최종 결과는 마지막 함수의 출력입니다.
2. 데이터 파이프라인 생성
데이터 파이프라인은 다음과 같은 개념입니다
- 정의
데이터 파이프라인은 데이터가 한 지점에서 다른 지점으로 이동하면서 여러 단계의 처리 과정을 거치는
일련의 과정을 말합니다. - 주요 특징
- 순차적 처리: 데이터는 파이프라인의 각 단계를 순서대로 통과합니다.
- 변환: 각 단계에서 데이터는 특정 방식으로 변환되거나 처리됩니다.
- 모듈성: 각 단계는 독립적인 함수나 작업으로 구성될 수 있습니다.
- 장점
- 코드 가독성 향상: 복잡한 데이터 처리 과정을 명확하게 표현할 수 있습니다.
- 유지보수 용이성: 각 단계를 독립적으로 수정하거나 추가/제거할 수 있습니다.
- 재사용성: 파이프라인의 일부를 다른 상황에서 재사용할 수 있습니다.
3. 코드 가독성 향상
복잡한 중첩 함수 호출을 flat하고 읽기 쉬운 형태로 만들어줍니다.
4. 함수형 프로그래밍 지원
순수 함수들을 조합하여 더 복잡한 연산을 수행할 수 있게 해줍니다.
다음글
https://daunje0.tistory.com/174
'JavaScript > AboutJS' 카테고리의 다른 글
[JavsScript] 함수의 부분 적용과 유연한 합성 3: curry - 인자를 유연하게 다루는 고차 함수 만들기 (0) | 2024.10.11 |
---|---|
[JavsScript] 함수의 합성과 데이터 파이프라인 2: pipe - 재사용 가능한 함수 파이프라인 만들기 (0) | 2024.10.11 |
[JavsScript] yield* 란? (0) | 2024.09.29 |
[Javascript] Iterable, Iterator 프로토콜 (0) | 2024.09.26 |
[JavaScript ]CommonJS 모듈 ES 모듈 차이 (0) | 2024.08.26 |