Higher Order Function (HOF) 란 무엇인가요?
한국어로는 '고차함수' 라고 표현하며, 아래의 두가지 조건 중 하나라도 만족하면 고차함수라고 할 수 있습니다.
- 함수를 파라미터로 받는다.
- 함수를 반환한다.
고차함수를 사용하는 이유는 무엇인가요?
- 고차함수는 함수형 프로그래밍에 뿌리를 두고 있습니다.
- 함수형으로 코드를 작성하는데 필수적입니다.
- 함수형 프로그래밍에서는 사이드이펙트를 피하고 불변성을 지켜 에러를 최소화합니다.
그렇다면 함수형 프로그래밍의 장점은 무엇인가요?
- 보통 하나의 함수가 다른 함수에 의존하지 않아 코드를 변화시킬 때 사이드 이펙트에 대한 걱정이 덜합니다.
- 외부 요소에 의존하지 않아, 작성한 함수가 매번 같은 동작을 보장받습니다.
- 상태가 없다는 것은 동시성 프로그래밍에서 생기는 많은 문제를 예방해 동시성 프로그래밍 코드를 작성하기 쉬워집니다.
- 변수를 최소화해 프로그램의 동작을 예측하기 쉬워집니다.
물론 위와 같은 얘기는 현실과는 조금 거리가 있는 이야기입니다.
객체지향과 비교하면, 객체지향은 데이터와 그 데이터와 연관된 연산에 대한 추상화가 용이하고, 함수형 프로그래밍은 연산에 대한 추상화가 용이하다고 생각합니다.
자바스크립트의 고차함수 예로는 무엇이 있나요?
Array
의map()
,reduce()
,filter()
와 같은 내장 메서드는 모두 인자로 함수를 받습니다.Function.prototype.bind()
메서드는this
가 바인드 된 새 함수를 반환합니다.
레퍼런스
반응형
'자바스크립트 > 인터뷰' 카테고리의 다른 글
Currying function (커링 함수) 이란 무엇인가요? (0) | 2023.01.18 |
---|---|
unary function 이란 무엇인가요? (0) | 2023.01.17 |
First Order Function (일차 함수) 란 무엇인가요? (0) | 2023.01.13 |
First Class Function (일급 함수) 이란 무엇인가요 (0) | 2023.01.12 |
자바스크립트의 대표적인 함수 정의 문법 두가지에 대해 알고 있나요? (0) | 2023.01.11 |