OT Chen
OT Chen

為什麼 Closure 叫 Closure

原因

  1. 函式有分兩種變數:Bound VariableFree Variable
  2. Bound Variable 是指在函式裡定義的變數,包括區域變數跟參數。
  3. Free Variable 是指不在函式裡被定義的變數。
  4. 當函式使用了不是自己定義的 Free Variable,它就要去能看見的 Scope 去 "捕捉" 那個 Free Variable
  5. 當函式還在捕捉的當下,它的狀況是情境相依的:稱之爲 Open-Form。這個 Free Variable 還是自由的
  6. 給予的 Scope ,擁有函式想要"捕捉"的變數。那這個捕捉的狀態就完結 Closed 惹。該 Free Variable 就會跟該 Scope 的狀態綁定起來。功德圓滿,形成一個完整且沒有 Open Free Variable 的一個 Closure

角色

  • 待捕捉 Free Variable
  • 能被捕捉的 Scope
  • 已經捕捉的 Closure
  • 都是匿名函式常在做捕捉,匿名函式的小名叫做 Lambda


CC BY-NC-ND 2.0 版权声明

喜欢我的文章吗?
别忘了给点支持与赞赏,让我知道创作的路上有你陪伴。

加载中…

发布评论