我觉得拉链是一个很棒的主意; 它优雅地提供了一种方法来遍历列表或树,并以功能的方式显示本地更新.
渐渐地,成本似乎是合理的.但遍历数据结构需要在每次迭代时进行内存分配,其中正常的列表或树遍历只是指针追逐.这看起来很昂贵(如果我错了,请纠正我).
费用是否令人望而却步?在什么情况下使用拉链是否合理?
performance functional-programming memory-management zipper data-structures
在Huet的题为"The Zipper"的论文中,他还提到疤痕是拉链的变体.与在Haskell社区中广为人知的拉链相比,疤痕几乎闻所未闻.关于它们在纸张本身和互联网上的任何地方都很少有我能找到的信息.
所以我不得不问,它们根本没有用,或者它们是否有用,但大多数人只是不了解它们?