TIL 30일차 고차함수 리뷰

shleecloud·2021년 8월 30일
0

Codestates

목록 보기
29/95

들어가며

불필요한 문장을 절제하면서 TIL 들어가기 섹션을 채우려니 쉽지 않다. 차라리 왕창 써놓고 퇴고하는게 나을 수도 있다. 하지만 안타깝게도 그럴 여유는 없다.

오늘은 고차함수다. 사실 이전에 고차함수를 배우면서 callback의 개념들을 익히고 사용했던지라 새삼스러운 과정이었다. 어렵지는 않았다. 이미 익혔던 것을 리뷰하는 것이라 가벼운 마음으로 임할 수 있었다. 새로운 것을 배우지는 않아서 편안하게 배웠던 것 같다.

Toy Tiling

이건... 값을 하나씩 대입하면서 노가다를 했는데 익숙한 흐름이 보였다. 1, 2, 3, 5, 8.. 뭐라고...? 3, 5, 8???? 이건 피보나치 수열이잖아? 날로 먹었다. 근데 왜 아침엔 생각이 나지 않았을까? 이런 문제는 패턴을 찾는게 중요하다.

고차함수와 Callback

고차 함수(Higher order function) 개념을 복습합시다. 🌟 [SEB] Section 1: Single Page Application - [JS/Node] 고차함수 부분을 복습해도 좋습니다.

  • 고차함수는 다른 함수를 인자(argument)로 전달받을 수 있습니다.
    • 고차함수의 인자로 전달되는 함수를 콜백 함수(Callback function)라고 합니다. 콜백 함수는 어떤 작업 중에 호출하는 경우가 많아서, 업무 중 걸려온 전화에 답신하는 전화를 나타내는 콜백이라는 이름이 붙여졌습니다.
  • 고차함수는 다른 함수를 리턴할 수 있습니다.
    • '함수를 리턴하는 함수'는 모양새가 특이한 만큼, 부르는 용어가 따로 있습니다. '함수를 리턴하는 함수'를 고안해 낸 논리학자 하스켈 커리(Haskell Curry)의 이름을 따, 커리 함수라고 합니다. 따로 커리 함수라는 용어를 사용하는 경우에는, 고차함수란 용어를 '함수를 인자로 받는 함수'에만 한정해 사용하기도 합니다.
  • '함수를 리턴하는 함수'와 '함수를 인자로 받는 함수' 모두 고차함수입니다.
  • 즉, 고차함수는 콜백 함수와 커리 함수의 상위 개념입니다.

콜백 함수를 전달받은 caller함수는, 함수 내부에서 이 콜백 함수를 호출(invoke) 할 수 있습니다.
caller는 조건에 따라 콜백 함수의 실행 여부를 결정할 수 있습니다.
아예 호출하지 않을 수도 있고, 여러 번 실행할 수도 있습니다.
앞으로는 특정 작업의 완료 후에 호출하는 경우를 자주 접할 수 있습니다.

profile
블로그 옮겼습니다. https://shlee.cloud

0개의 댓글