[javascript] Ramda 함수의 종류와 사용법

Ramda는 자바스크립트의 함수형 프로그래밍 라이브러리로서, 데이터를 다루고 조작하는 데에 유용한 다양한 함수를 제공합니다. 이번 글에서는 Ramda의 몇 가지 주요 함수를 살펴보고 그들의 사용법을 알아보겠습니다.

1. map

R.map 함수는 배열을 순회하면서 각 요소를 변환하여 새로운 배열을 생성합니다. 다음은 map 함수의 예시 코드입니다.

const numbers = [1, 2, 3, 4, 5];
const doubledNumbers = R.map((n) => n * 2, numbers);
console.log(doubledNumbers); // [2, 4, 6, 8, 10]

2. filter

R.filter 함수는 배열의 요소 중에서 특정 조건을 만족하는 요소들로 이루어진 새로운 배열을 반환합니다. 다음은 filter 함수의 예시 코드입니다.

const numbers = [1, 2, 3, 4, 5];
const evenNumbers = R.filter((n) => n % 2 === 0, numbers);
console.log(evenNumbers); // [2, 4]

3. reduce

R.reduce 함수는 배열의 요소를 하나씩 순회하면서 누적값을 계산하는 데에 사용됩니다. 다음은 reduce 함수의 예시 코드입니다.

const numbers = [1, 2, 3, 4, 5];
const totalSum = R.reduce((acc, n) => acc + n, 0, numbers);
console.log(totalSum); // 15

4. compose

R.compose 함수는 여러 개의 함수를 조합하여 새로운 함수를 생성합니다. 생성된 함수는 오른쪽에서 왼쪽으로 실행됩니다. 다음은 compose 함수의 예시 코드입니다.

const addTen = (num) => num + 10;
const multiplyByTwo = (num) => num * 2;
const addTenAndMultiplyByTwo = R.compose(multiplyByTwo, addTen);
console.log(addTenAndMultiplyByTwo(5)); // 30

5. pipe

R.pipe 함수는 compose와 유사하게 여러 개의 함수를 조합하여 새로운 함수를 생성합니다. 생성된 함수는 왼쪽에서 오른쪽으로 실행됩니다. 다음은 pipe 함수의 예시 코드입니다.

const addTen = (num) => num + 10;
const multiplyByTwo = (num) => num * 2;
const addTenAndMultiplyByTwo = R.pipe(addTen, multiplyByTwo);
console.log(addTenAndMultiplyByTwo(5)); // 30

위에서 살펴본 예시들은 Ramda의 일부 함수들의 사용법을 보여줍니다. Ramda는 이 외에도 다양한 함수들을 제공하고 있으며, 공식 문서를 참고하여 더 자세한 내용을 확인할 수 있습니다.