在语言层面可以做到纯函数。各种树都能做别说哈希表了。比如哈希表插入函数,输入
为哈希表和需要插入的对象,输出为一个*新的*哈希表。因为建了一个新的表,所以不
存在inplace
更新这个操作。但是从实现上,新表和老表通过reference共享了绝大部分内容,所以
空间代价还是O(1). 有点像docker用的那个洋葱文件系统。所有更新操作都通过包洋葱
实现。
一路摊过去。gc在背后收拾没用了的东西。
纯fp和imperative有点像数学上的对偶关系,本质是同一个东西,但表面上套路完全不
一样,没法直接翻译。比如插元素,它非要说是建新表,但背地里其实还是插元素。比
如算数列的一个元素,它非给你构造出一个无穷数列,到最后其实还是只算了一个元素
。说白了就是迂。
:Out of sight, out of mind? 而且我的问题是如何实现哈希表这种常用结构。
: