函数式编程使用不可变数据。当您修改某些内容时,您会重新实例化“世界”,尽可能多地为您的增强世界重用以前的化身。
我正在探索 JavaScript 中的 FP。我在 Lisp 中创建了一个类似于 List 的 List 对象。你cons
是一个新的头到一个现有的尾巴上。在将项目添加到持久列表时,我想创建一个与列表一致的持久索引。因此,如果我cons
将新联系人添加到联系人列表中,我可能想要索引姓氏和电话号码,以便我可以快速定位项目,而无需有效地启动全表扫描。
问:在 JavaScript 中,可以构建什么样的持久数据结构来提供快速键控访问?
也就是说,我认为这个想法是在构建增强索引时重用以前的索引数据。没有将前一个索引上的所有键克隆到增强索引中,我发现这个问题令人麻木。通过克隆,这将在以编程方式加载数据时浪费大量内存。索引应该是内存高效的,并提供按值快速访问。