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

Tar*_*sch 8 containers haskell set strictness

如果我们看一下containers包裹.他们有Data.Map.Strict,但没有相应的Data.Set.Strict.它存在是否有意义?

pha*_*dej 11

Set是严格的.以同样的方式Map.Lazy密钥Map.Strict都严格.例如来自模块:Data.Map.Lazy

该模块满足以下严格性:

  • 关键参数被评估为WHNF

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