Pipe Function

Pipe Function - Explanation

어려움 함수 O(n) O(1)

Problem Summary

Write a pipe function that composes functions from left to right.

Go to Problem →

Detailed Explanation

이 문제는 **함수 합성(function composition)**의 파이프 패턴을 구현하는 방법을 학습합니다. ## 핵심 개념: 파이프 (Pipe) 파이프는 여러 함수를 왼쪽에서 오른쪽으로 순차적으로 적용합니다. ### 접근 방법 ```javascript function pipe(...fns) { return x => fns.reduce((acc, fn) => fn(acc), x); } ``` ### 동작 원리 ```javascript pipe(f, g, h)(x) = h(g(f(x))) ``` - f(x)의 결과를 g에 전달 - g의 결과를 h에 전달 - 왼쪽 → 오른쪽 순서 ### pipe vs compose ```javascript pipe(f, g, h)(x) // f → g → h (왼쪽에서 오른쪽) compose(f, g, h)(x) // h → g → f (오른쪽에서 왼쪽) ``` ### 실무 활용 ```javascript const process = pipe( trim, toLowerCase, split(' '), join('-') ); process(" Hello World "); // "hello-world" ``` 파이프는 데이터 처리 파이프라인을 직관적으로 표현합니다.

Solution Code

solution.js
function pipe(...fns) {
  return x => fns.reduce((acc, fn) => fn(acc), x);
}

Key Concepts from This Problem

1. 함수 합성
2. pipe
3. reduce
4. 함수형 프로그래밍

Common Mistakes

compose와 순서가 반대입니다 - pipe는 왼쪽에서 오른쪽
각 함수의 반환값이 다음 함수의 입력이 됩니다
빈 함수 배열에 대한 처리를 고려해야 합니다

Hints

Hint 1: reduce를 사용하세요 (compose와 반대 방향).

Complexity Analysis

Time Complexity

O(n)

Grows linearly with input size

Space Complexity

O(1)

Uses almost no additional memory

Related Tags

#함수 #파이프 #고차함수