이건 보통 함수형 언어에서 등장하는 개념인데, 함수 그 자체를 람다라고 보면 됨
즉,
lambda(a, b) { return a + b; };
이런거지. 걍 이름없는 함수라고 보면 됨. 이게 closure 가 될 수 있다. 즉,
{
x = 0;
lambda (a) { x = a + x; return x; }
}
이런 식으로, 보통은 전역 변수가 될 x를 해당 이름없는 함수에서만 접근할 수 있는 변수로 만드는 테크닉을 closure라고 보면 된다.
메타 프로그래밍은 한마디로 "프로그램을 찍어내는 프로그래밍" 이라 보면 됨. 코드 생성
뭐 근데 람다 자체로는 큰 도움 안되지만, first class function 이런 개념 들어가면 파워가 생기기 시작한다.
의례히 그렇듯 형이 푸는 썰은 조팝들은 몰라도 됨
자바스크립트도 비슷하던데
말장난
저거 클로저라 안하고 캡쳐링 그룹이라 하는사람들 있던데 걔내들은 클로저랑 저거랑 엄밀히 다르다하던데
누구말이 맞냐
얌마 정통파 용어가 lexical closure 이거여. 캡쳐링 그룹? 난 첨들어보는 말일세