작성
·
118
0
수업 9분 50초 부근에서 "함수를 인자로 받아서 로직을 결정하는 형태가 전형적인 고차 함수이다."
라는 부분이 있습니다. 하지만 getOperaion 함수를 보면 Myfunction을 반환하지만 인자로 코드 조각을 받지 않고 getOperation 내부에서 로직을 작성하게 되는 형태인데, 그럼 getOperation 함수는 고차함수라고 부르기 어려운걸까요??
고차함수의 특징은 함수형인터페이스를 파라미터로 받아서 클라이언트 코드쪽에서 로직(코드 조각)을 람다식으로 받아서 처리하는 형태를 고차함수라고 이해하고 있습니다.
하지만 getOperation은 파라미터로 String 타입 하나만 받고 람다식을 getOperation 내부에서 정의하고 있기에 코드 조각을 파라미터로 받지 않았으니 고차함수라고 보기 어려운걸까? 라는 의문점이 있습니다
답변 1
2
안녕하세요. 박철현님
고차 함수는 함수를 값처럼 다루는 함수를 뜻하는데요.
일반적으로 다음 두 가지 중 하나를 만족하면 고차 함수라 합니다.
* 함수를 인자로 받는 함수(메서드)
* 함수를 반환하는 함수(메서드)
따라서 getOperation도 고차함수로 할 수 있습니다.
함수를 인자로 받아서 로직을 결정하는 형태가 전형적인 고차 함수이다라는 뜻은, 이것을 만족해야만 고차 함수라는 것이 아니라, 고차 함수가 이런 방식으로 많이 사용된다는 뜻으로 이해하시면 됩니다.
감사합니다.
답변 감사합니다!!!