為什麼 Closure 叫 Closure
IPFS
原因
- 函式有分兩種變數:Bound Variable 跟 Free Variable。
- Bound Variable 是指在函式裡定義的變數,包括區域變數跟參數。
- Free Variable 是指不在函式裡被定義的變數。
- 當函式使用了不是自己定義的 Free Variable,它就要去能看見的 Scope 去 "捕捉" 那個 Free Variable。
- 當函式還在捕捉的當下,它的狀況是情境相依的:稱之爲 Open-Form。這個 Free Variable 還是自由的。
- 給予的 Scope ,擁有函式想要"捕捉"的變數。那這個捕捉的狀態就完結 Closed 惹。該 Free Variable 就會跟該 Scope 的狀態綁定起來。功德圓滿,形成一個完整且沒有 Open Free Variable 的一個 Closure 。
角色
- 待捕捉 Free Variable
- 能被捕捉的 Scope
- 已經捕捉的 Closure
- 都是匿名函式常在做捕捉,匿名函式的小名叫做 Lambda
喜欢我的作品吗?别忘了给予支持与赞赏,让我知道在创作的路上有你陪伴,一起延续这份热忱!