고차함수 파트에서의 목표

  • 일급 객체(first-class citizen)의 세 가지 특징을 설명할 수 있다.
  • 고차 함수(higher-order function)에 대해 설명할 수 있다.
  • 추상화(abstraction)에 대해 설명할 수 있다.
  • 추상화의 관점에서 고차 함수가 갖는 이점에 대해 설명할 수 있다.
  • 배열 메소드를 자연스럽게 사용할 수 있다.
  • 고차 함수를 활용하여 프로그램을 작성할 수 있다.

일급객체(first-class citizen) 중 함수의 조건

  • 변수에 할당(assignment)할 수 있다.
  • 다른 함수의 인자(argument)로 전달될 수 있다.
  • 다른 함수의 결과로서 리턴될 수 있다.

이는 함수를 데이터(string, number, boolean, array, object)를 다루듯이 다룰 수 있다는 걸 의미한다.
변수에 저장할 수 있기 때문에 배열의 요소나 객체의 속성값으로 저장하는 것도 가능하다.

변수에 저장된 데이터는 함수의 인자로 전달되거나 함수 내에서 리턴값으로 사용될 수 있다. 함수 역시 다른 함수의 인자로 전달되거나 다른 함수 내에서 리턴될 수 있다는 것을 알 수 있다.

이번 파트는 이해하기가 너무 어려웠다... 민철님 말씀대로 자주 보고... 또 보고 하기

고차 함수

고차 함수(higher order function)는 다른 함수를 인자(argument)로 받거나 다른 함수를 리턴하는 함수를 말한다.
이 때 다른 함수(caller)의 인자(argument)로 전달되는 함수를 콜백 함수(callback function)라고 한다.

알기 쉽게 민철님이 고렙과 쪼렙으로 설명해주셨다 :)
고차 함수는 고렙, 콜백과 리턴하는 단순 함수 등은 쪼렙...이걸로 완벽 이해함^^

'함수를 리턴하는 함수'만을 일컫는 용어가 따로 존재하고 실제로도 많이 쓰이는데, 이런 함수를 이를 고안해 낸 논리학자 하스켈 커리의 이름을 따서 커리 함수라고 한다.
따로 커리 함수라는 용어를 사용하는 경우, 고차 함수란 용어를 '함수를 인자로 받는 함수'에만 한정지어서 사용하기도 한다. 하지만 엄밀한 의미에서 고차 함수는 커리 함수를 포함한다.

고차함수의 조건 🔥

  • 다른 함수를 인자로 받는 경우
  • 함수를 리턴하는 경우
  • 함수를 인자로 받고, 함수를 리턴하는 경우

https://velog.io/@mnmm/js-pre-hof-2 에서 더 세 가지 조건을 세세하게 알 수 있다.

2020.09.09 업데이트
profile
개발루:)

0개의 댓글