是否有可能在编译时分析类似地图的结构何时可以就地变异?

时间:2017-07-05 17:11:26

标签: haskell data-structures compilation functional-programming

为简单起见,假设我们使用带有字符串键的映射的基元扩展lambda演算。我们添加了两项操作:set map key valget map key。为了实际实现这个原语,我们可以使用持久数据结构和Haskell Data.Map,这将给我们O(log(n))个集合和获取。

假设我们用哈希表实现了这个结构。 getO(1)setO(N),因为它需要克隆整个哈希表。 在编译类型期间,是否可以分析所有可以安全执行就地变异的地方,将set替换为隐藏的mset操作? < / p>

0 个答案:

没有答案