Pipe
Pipe
Pipe
하나의 함수를 여러 함수로 분리하고자 할 때,
좀 더 아름답게 분리하는 방법.
함수형 프로그래밍에서 사용되는 기법으로,
여러 함수를 연결하여 데이터를 순차적으로 처리하는 기법이다.
예시 (C#)
Pipe
를 사용하지 않는 경우
1
2
3
4
5
6
7
8
9
10
11
12
// 예제 함수들
Func<int, int> add = x => x + 1;
Func<int, int> multiply = x => x * 2;
Func<int, int> subtract = x => x - 3;
// 각 함수를 순차적으로 호출하여 데이터를 처리
int result = 5;
result = add(result);
result = multiply(result);
result = subtract(result);
Console.WriteLine(result); // (5 + 1) * 2 - 3 = 9
Pipe
를 사용하는 경우
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
// 예제 함수들
Func<int, int> add = x => x + 1;
Func<int, int> multiply = x => x * 2;
Func<int, int> subtract = x => x - 3;
// pipe 함수 구현
Func<T, T> Pipe<T>(params Func<T, T>[] funcs) =>
input => funcs.Aggregate(input, (acc, func) => func(acc));
// pipe를 사용하여 함수들을 연결
var process = Pipe
(
add,
multiply,
subtract
);
Console.WriteLine(process(5)); // (5 + 1) * 2 - 3 = 9
여러 함수를 연결하는 Pipe
를 만들었다.
결과를 저장하는 대신 Pipe
를 만들어 저장하고 필요할 때 사용한다.
이렇게 만든 Pipe
는 재사용 가능하다.
이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.