不行, 还是得用土办法理解闭包

在上一篇 不用土办法理解闭包, 自己最终还是觉得说的太复杂了. 说得太复杂往往证明作者并没有吃透, 于是赶紧再憋一篇出来掩饰下.

 

Scala学习手册的作者Alvin把闭包描述成量子纠缠, 或者超距作用.

于是我接下来换一种说法, 只要不逗上帝发笑就合格了.

 

一个函数和一个变量, 刚定义的时候在一起,后来分开了, 函数去了银河系外面, 自由变量还留在地球.

当函数在宇宙的另一端正旋(运行)时,地球上的自由变量立即反旋; 反之亦然.

微观世界有一种对确定性的绝对抗拒, 但是宇宙万物宏观上都在努力对抗不确定性,比如买保险,傍大款之类.

 

函数也在对抗不确定性,当函数的目光穿越整个宇宙观察地球上的自由变量时,传说中的波函数就坍塌了,于是函数看到自由变量的值.

 

我们可以说, 此时函数将自由变量闭合到了自己的系统范围.

函数和自由变量作为一个系统,称之为闭包. 函数不是闭包,自由变量也不是; 闭包是函数和自由变量组成的一个系统.

 

 

你可能感兴趣的:(闭包)