Q**. 함수 객체(클로저)를 보관해 두었다가 나중에 다시 호출할 수 있는 방법이 있나요?**

A. 다른 함수에 인수로 줘서 호출하면 나중에 그 함수가 써먹을 수 있을 것입니다 :D

예를 들어 인수 둘을 받아 역수의 차를 내놓으려는데, 역수를 취하는 함수를 써먹는다고 합시다. 파이썬으로 쓰면, 이렇게요.

def inv_diff(x, y): 
    inv = lambda a: a ** -1
    return inv(x) - inv(y)

역수를 취하는 함수는 ㄱㅇㄱ ㄴㄱ ㅅㅎㄷ ㅎ가 되겠습니다

(ㄱㅇㄱ ㄴㄱ ㅅㅎㄷ ㅎ) (ㄱㅇㄴ ㄱㅇㄱ ㅎㄴ (ㄴㅇㄴ ㄴㄱ ㄱㅎㄷ) ㄱㅇㄱ ㅎㄴ ㄷㅎㄷ ㅎ) ㅎㄴ ㅎ

실제 호출해서 쓴 예:

https://s3-us-west-2.amazonaws.com/secure.notion-static.com/bbcb1854-89f7-4ef3-b5c0-23a1a1c48f28/Untitled.png

ㄴ ㅁ
(ㄱㅇㄱ ㄴㄱ ㅅㅎㄷ ㅎ) (ㄱㅇㄴ ㄱㅇㄱ ㅎㄴ (ㄴㅇㄴ ㄴㄱ ㄱㅎㄷ) ㄱㅇㄱ ㅎㄴ ㄷㅎㄷ ㅎ) ㅎㄴ ㅎ
ㅎㄷ

실행 결과는 이렇습니다 (1/1-1/4)

JS로 조금 더 직역하면 이렇습니다

function inv_diff(x, y) {
  return (function (inv) {
    return inv(x) + (-inv(y));
  })(a => 1/a);
}

🔬톺아보기