[javascript] Lodash의 함수형 프로그래밍 지원 기능과 사용 예제

Lodash는 자바스크립트 유틸리티 라이브러리로, 다양한 유용한 함수와 기능들을 제공합니다. 이 중에서도 Lodash는 함수형 프로그래밍을 지원하는 기능들이 있어 함수형 프로그래밍을 적용하려는 개발자들에게 매우 유용합니다. 이번 글에서는 Lodash의 함수형 프로그래밍을 지원하는 기능과 그 사용 예제를 알아보겠습니다.

1. 고차 함수

Lodash에서 제공하는 고차 함수는 다른 함수를 인자로 받는 함수입니다. 이를 활용하여 함수의 재사용성과 가독성을 높일 수 있습니다. 아래는 Lodash의 map 함수를 사용한 예제입니다.

const numbers = [1, 2, 3, 4, 5];

const squaredNumbers = _.map(numbers, (num) => num * num);

console.log(squaredNumbers); // [1, 4, 9, 16, 25]

map 함수는 첫 번째 인자로 배열을, 두 번째 인자로는 각 배열 요소에 적용할 함수를 받습니다. 위 예제에서는 배열 numbers의 각 요소를 제곱하여 squaredNumbers 배열에 저장하였습니다.

2. 커링 (Currying)

함수형 프로그래밍에서 커링은 여러 인자를 받는 함수를 하나의 인자를 받는 함수로 변환하는 것을 말합니다. Lodash의 curry 함수는 커링을 적용하여 함수를 반환합니다. 아래는 Lodash의 curry 함수를 사용한 예제입니다.

const add = (a, b, c) => a + b + c;

const curriedAdd = _.curry(add);

const addOne = curriedAdd(1);
const addTwo = addOne(2);

console.log(addTwo(3)); // 6

curry 함수를 사용하여 add 함수를 커링한 후, 각 부분적으로 적용된 함수를 생성하여 addOneaddTwo로 저장하였습니다. 이렇게 생성된 부분 적용 함수들은 나머지 인자를 전달하면서 사용할 수 있습니다.

3. 파이프라인 (Pipeline)

파이프라인은 여러 함수를 연속적으로 실행하는 것을 말합니다. Lodash에서 제공하는 flow 함수를 사용하여 파이프라인을 구성할 수 있습니다. 아래는 flow 함수를 사용하여 파이프라인을 구성하는 예제입니다.

const add = (a, b) => a + b;
const multiplyByTwo = (num) => num * 2;

const calculate = _.flow(add, multiplyByTwo);

console.log(calculate(3, 4)); // 14

flow 함수에 연속적으로 실행할 함수들을 전달하여 파이프라인을 구성합니다. 위 예제에서는 add 함수로 인자들을 더한 후, multiplyByTwo 함수를 적용하였습니다.


이처럼 Lodash는 다양한 함수형 프로그래밍 지원 기능을 제공하여 개발자들이 함수형 프로그래밍을 더욱 편리하고 쉽게 적용할 수 있도록 도와줍니다. Lodash 문서를 참고하여 더 많은 기능을 확인해보세요!