자바스크립트에서 Currying을 사용하여 함수의 실행 결과를 어떻게 소팅할 수 있나요?

Currying은 함수를 여러 개의 인자를 받는 함수로 분해하여 연속적으로 수행할 수 있게 해주는 기술입니다. 이를 사용하면 자바스크립트에서 함수를 재사용하고, 코드를 더 깔끔하게 작성할 수 있습니다. 이번 포스트에서는 Currying을 사용하여 함수의 실행 결과를 소팅하는 방법에 대해 알아보겠습니다.

먼저, Currying을 구현하기 위해 sortCurry라는 함수를 작성해보겠습니다. 이 함수는 먼저 원하는 소팅 방식을 받고, 이후 배열을 받아 소팅된 결과를 반환합니다.

const sortCurry = (compare) => (arr) => arr.sort(compare);

이제 sortCurry 함수를 사용하여 여러 가지 소팅 방식을 구현해볼 수 있습니다. 예를 들어, 오름차순 소팅을 구현하려면 다음과 같이 작성할 수 있습니다.

const sortByAsc = sortCurry((a, b) => a - b);

이후 sortByAsc 함수에 소팅하고자 하는 배열을 전달하여 결과를 얻을 수 있습니다.

const arr = [3, 1, 5, 2, 4];
const sortedArr = sortByAsc(arr);
console.log(sortedArr); // [1, 2, 3, 4, 5]

이와 같이 Currying을 사용하면 소팅 로직을 추상화하여 재사용할 수 있으며, 코드의 가독성과 유지보수성을 높일 수 있습니다.

마무리

이번 포스트에서는 자바스크립트에서 Currying을 사용하여 함수의 실행 결과를 소팅하는 방법에 대해 알아보았습니다. Currying을 이용하면 소팅 로직을 추상화할 수 있으며, 코드의 가독성과 유지보수성을 높일 수 있습니다. Currying을 사용하여 다양한 함수를 작성해보면서 응용해보시기 바랍니다.

#javascript #currying #소팅