고차 함수: 함수형 프로그래밍의 강력한 도구

May 03 2023
JavaScript를 배우고 있다면 Higher-Order Functions라는 용어를 접했을 것입니다. 간단히 말해서 고차 함수는 다른 함수에서 작동하는 함수입니다.

JavaScript를 배우고 있다면 Higher-Order Functions라는 용어를 접했을 것입니다. 간단히 말해서 고차 함수는 다른 함수에서 작동하는 함수입니다. 함수를 인수로 사용하거나 출력으로 반환할 수 있습니다.

JavaScript는 Higher-Order Functions를 수용하므로 함수형 프로그래밍에 이상적입니다. 함수형 프로그래밍은 함수를 다른 함수에 매개 변수로 전달하고 값으로 반환할 수도 있는 프로그래밍 패러다임입니다. 함수형 프로그래밍에서 우리는 함수 측면에서 생각하고 코딩합니다. JavaScript, Haskell, Clojure, Scala 및 Erlang은 함수형 프로그래밍을 구현하는 언어 중 일부입니다.

JavaScript는 함수를 일급 시민으로 취급합니다. 함수는 객체이기 때문입니다. 객체와 마찬가지로 함수에 속성을 추가할 수 있습니다. 예를 들어:

function greeting() {
  console.log('Hello World');
}

// We can add properties to functions like we do with objects
greeting.lang = 'English';

// Prints 'English'
console.log(greeting.lang);

이제 일급 함수가 무엇인지 알았으니 JavaScript의 고차 함수에 대해 살펴보겠습니다.

내장된 고차 함수의 몇 가지 예는 다음과 같습니다. 다음은 많은 내장된 고차 함수 중 일부입니다.

  • Array.prototype.map()
  • Array.prototype.filter()
  • Array.prototype.reduce()
  • Array.prototype.forEach()
  • EventTarget.addEventListener()

1- Array.prototype.map(): 이 고차 함수는 원래 배열의 모든 요소에서 제공된 함수를 호출하여 새 배열을 만듭니다. 제공된 함수는 각 요소를 어떤 식으로든 변환할 수 있습니다. 예를 들어 숫자 배열이 있고 각 숫자를 두 배로 늘리려는 경우 map다음과 같이 사용할 수 있습니다.

const originalArray = [1, 2, 3];
const doubledArray = originalArray.map(num => num * 2);
// doubledArray is now [2, 4, 6]

const originalArray = [1, 2, 3, 4, 5, 6];
const evenArray = originalArray.filter(num => num % 2 === 0);
// evenArray is now [2, 4, 6]

const originalArray = [1, 2, 3, 4, 5];
const sum = originalArray.reduce((accumulator, currentValue) => accumulator + currentValue, 0);
// sum is now 15

const names = ['Alice', 'Bob', 'Charlie'];
names.forEach(name => console.log(name));
// this will log "Alice", "Bob", and "Charlie" to the console

const button = document.getElementById('myButton');
button.addEventListener('click', () => alert('Button clicked!'));
// this will show an alert when the button is clicked

지금까지 우리는 언어에 내장된 다양한 고차 함수를 보았습니다. 이제 우리만의 고차 함수를 만들어 봅시다. 단순화를 위해 숫자 배열과 콜백 함수를 인수로 취하고 각 요소가 원래 배열의 해당 요소에 콜백 함수를 적용한 결과인 새 배열을 반환하는 고차 함수를 만들어 보겠습니다. .

function mapArray(arr, callback) {
  const result = [];
  for (let i = 0; i < arr.length; i++) {
    result.push(callback(arr[i]));
  }
  return result;
}

이 고차 함수를 사용하는 방법의 예를 살펴보겠습니다.

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

function multiplyByTwo(num) {
  return num * 2;
}

const doubledNumbers = mapArray(numbers, multiplyByTwo);

console.log(doubledNumbers); // Output: [2, 4, 6, 8, 10]

그리고 그게 다야! 우리는 방금 JavaScript로 고차 함수를 만들었습니다. 고차 함수의 가능성은 무한하며, 이를 마스터하면 더 나은 프로그래머가 될 수 있습니다.

결론

요약하면, 우리는 고차 함수의 개념과 사용 가능한 다양한 내장 고차 함수를 살펴보았습니다. 또한 우리는 고차 함수를 만드는 방법을 배웠습니다. 이러한 함수는 다른 함수를 인수 및 출력으로 수신하고 반환하는 고유한 기능이 있으므로 프로그래밍에서 강력한 도구가 됩니다. 이 글이 도움이 되셨다면 박수 , 미디엄 팔로우를 부탁드립니다. 궁금한 점이나 우려되는 점이 있으면 주저하지 말고 댓글을 남겨주세요. 읽어 주셔서 감사합니다!