
말 그대로 'Hello HoF'라는 값을 리턴하는 함수를 리턴해야 한다.
강의를 정확하게 보고 이해했다면 쉽게 풀리는 문제이다.
조금만 더 힌트를 주자면
return function() {
으로 시작하면 된다.
func와 num을 입력받아 num에 함수를 적용한 결과를 리턴해야 한다.
1번 문제를 풀었다면 손쉽게 풀 수 있는 문제이다.
또한 '고차함수 이해하기'라는 글을 이해했다면 쉽게 풀 수 있다.
func와 num을 입력받아 num에 함수를 두 번(Twice) 적용한 결과를 리턴해야 한다.
함수를 두 번 적용하는 것이 이 문제의 Key Point이다.
어떻게 해야 두번 적용할 수 있을지 고민해보자.
힌트는 두번이다.
두 개의 func와 num을 입력받아 num에 함수들을 num에 가까운 순서대로 적용한 결과를 리턴해야 한다.
위의 applyTwice를 풀었다면 바로 풀릴 문제이다.
이 문제의 힌트는 가까운 순서대로 이다.
왜냐하면 인자가 func1과 func2라는 함수가 있기 때문이다.
두 개의 func를 리턴받아 두 func가 결합된 새로운 함수를 리턴해야 한다.
위의 compose를 풀었다면 두 개의 func를 리턴하는 것은 쉽게 작성할 수 있다.
그런데 새로운 함수를 리턴해야 한다고 한다.
힌트는 새로운 함수를 리턴해야 하고, 1번 문제와 4번 문제를 합쳐보면 풀린다.
N개의 func를 입력받아 함수들이 입력된 차례대로 새로운 함수를 리턴해야 한다.
사실 나도 여기서 막히기 시작했는데 정말 안풀려서 레퍼런스를 확인했더니 바로 이해가 되었다.
key point 1 입력된 차례대로
key point 2 새로운 함수를 리턴
입력된 차례대로라는 것을 해결하려고 생각해보니 for문이 가장 적당했다.
N개의 func를 입력받은 차례대로를 해결하려면 for문을 어떤식으로 작성해야 될지 바로 생각날 것이다.
새로운 함수를 리턴해야 하니 5번까지 문제를 잘 풀었다면 바로 이해가 갈 것이다.
(나는 key point 1에서 막혔다)