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();
}