Haskell有一个严格的Set容器吗?

时间:2017-04-27 20:52:08

标签: haskell set containers strictness

如果我们查看containers包。他们有Data.Map.Strict,但没有等效的Data.Set.Strict。它存在会有意义吗?

1 个答案:

答案 0 :(得分:11)

Set是严格的。同样,中的Map.LazyMap.Strict都是严格的。例如,来自Data.Map.Lazy模块:

  

该模块满足以下严格性:

     
      
  • 关键参数评估为WHNF
  •   

原因很明显:做出任何决定(即除了总是返回EQ之外的其他内容),compare必须至少评估WHNF的参数(在一个总和中分隔不同的构造函数)类型,例如)