이번 유닛부터는 '함수를 리턴하는 함수'와 '함수를 전달인자로 받는 함수' 모두, 고차 함수로 사용합니다.
예)
1. 다른 함수를 인자로 받는 경우
함수를 리턴하는 경우
함수를 인자로 받고, 함수를 리턴하는 경우
filter : 특정 조건에 해당하는 것만 return
map : 배열의 각 요소가 특정 논리에 다른 요소로 저장
ruduce : 배열의 각 요소가 특정 함수에 따라 원하는 하나의 형태로 응축
복잡한 어떤 것을 압축해서 핵심만 추출한 상태로 만드는 것이 추상화입니다.
함수 = 값을 전달받아 값을 리턴한다. = 값에 대한 복잡한 로직은 감추어져 있다. = 값 수준에서의 추상화
고차 함수는 이 추상화의 수준을 사고의 추상화 수준으로 끌어올립니다.
값 수준의 추상화: 단순히 값(value)을 전달받아 처리하는 수준
사고의 추상화: 함수(사고의 묶음)를 전달받아 처리하는 수준
다시 말해 고차 함수를 통해, 보다 높은 수준(higher order)에서 생각할 수 있습니다.
고차 함수 = 함수를 전달받거나 함수를 리턴한다. = 사고(함수)에 대한 복잡한 로직은 감추어져 있다. = 사고 수준에서의 추상화