728x90

고차함수 2

(코틀린) 람다함수와 고차함수

Lambda 함수 함수의 이름이 없는 익명함수(anonymous function)이라고 합니다. {매개변수 → 실행 코드(몸체)} 위 함수의 구조와 같이 람다(익명)함수는 중괄호 내에 실행문을 입력합니다. 다음은 간단한 예로 문자열을 출력하는 함수입니다. 이 함수를 실행하기 위해서는 함수다음에 인수를 전달하기 위한 ()를 같이 나타내야 합니다. 다음은 전달하는 인수가 별도로 존재하지 않는 경우입니다. {println("Hello")}() // 결과: Hello 람다함수 역시 개체이므로 변수에 저장할 수 있습니다. 이 경우 변수명은 함수이름과 같은 역할을 합니다. 그러므로 객체를 호출할 경우 함수와 같이 적용해야 합니다. 즉, 변수명() val swim={println("swim \n")} swim() /..

(코틀린) 고차 함수

고차 함수(high order fuction)란 함수를 매개변수로 전달받거나 반환하는 함수를 의미합니다. 일반적으로 함수의 매개변수나 반환값은 데이터입니다. 그런데 데이터가 아닌 함수를 매개변수나 반환값으로 이용하는 함수를 고차 함수라 합니다. 이처럼 함수를 매개변수나 반환값으로 이용할 수 있는 것은 앞에서 살펴보았듯이 함수를 변수에 대입할 수 있기 떄문입니다. 다음 코드에서 hofFun()은 고차 함수입니다. 매개변수를 하나 선언했지만 타입이 함수입니다. 따라서 이 함수를 호출하려면 인자로 함수를 전달해야 합니다. 또한, 반환 타입 역시 함수이므로 호출 결과로 함수를 반환받습니다. fun hofFun(arg: (Int) -> Boolean): () -> String { val result = if(ar..

728x90