1. 함수 객체의 보관과 재호출

Q. 함수 객체(클로저)를 보관해 두었다가 나중에 다시 호출할 수 있는 방법이 있나요?
A. 다른 함수에 인수로 줘서 호출하면 나중에 그 함수가 써먹을 수 있을 것입니다 :D
예를 들어 인수 둘을 받아 역수의 차를 내놓으려는데, 역수를 취하는 함수를 써먹는다고 합시다. 파이썬으로 쓰면, 이렇게요.
def inv_diff(x, y): inv = lambda a: a ** -1 return inv(x) - inv(y)
 
 
역수를 취하는 함수는 ㄱㅇㄱ ㄴㄱ ㅅㅎㄷ ㅎ가 되겠습니다
(ㄱㅇㄱ ㄴㄱ ㅅㅎㄷ ㅎ) (ㄱㅇㄴ ㄱㅇㄱ ㅎㄴ (ㄴㅇㄴ ㄴㄱ ㄱㅎㄷ) ㄱㅇㄱ ㅎㄴ ㄷㅎㄷ ㅎ) ㅎㄴ ㅎ
실제 호출해서 쓴 예:
notion imagenotion image
ㄴ ㅁ (ㄱㅇㄱ ㄴㄱ ㅅㅎㄷ ㅎ) (ㄱㅇㄴ ㄱㅇㄱ ㅎㄴ (ㄴㅇㄴ ㄴㄱ ㄱㅎㄷ) ㄱㅇㄱ ㅎㄴ ㄷㅎㄷ ㅎ) ㅎㄴ ㅎ ㅎㄷ
 
실행 결과는 이렇습니다 (1/1-1/4)
JS로 조금 더 직역하면 이렇습니다
function inv_diff(x, y) { return (function (inv) { return inv(x) + (-inv(y)); })(a => 1/a); }

🔬톺아보기