더북(TheBook)

3.8.1 클로저

록스에서 함수는 일급(first-class)이므로 참조할 수 있고, 변수로 저장할 수 있고, 다른 함수에 전달할 수 있는 진짜 값이다. 다음 코드를 보자.

fun addPair(a, b) {
  return a + b;
}

fun identity(a) {
  return a;
}

print identity(addPair)(1, 2); // 3 출력

함수 선언은 문장이라서 다른 함수 내부에 로컬 함수로 선언할 수도 있다.

fun outerFunction() {
  fun localFunction() {
    print "I'm local!";
  }

  localFunction();
}
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.