Haskell中的可变二叉树示例

Haskell中的可变二叉树示例,haskell,Haskell,使用strefits可以实现可变的数据结构。在Haskell中使用STRef实现支持插入、删除和查找操作的可变二叉树有完整的例子吗?请原谅我的无知,但为什么您需要树是可变的?只需在使用(树a)的地方使用(STRef s(树a))在树的类型定义中。但是,使用树的所有代码都必须在ST中。不太好。@user782220您几乎总是可以使用一些不可变的数据获得相当好的性能。我认为在Haskell中,您会发现任何不愉快的事情都是可变的。@user782220使用正确的数据结构,您可以在大多数情况下获得足够好

使用strefits可以实现可变的数据结构。在Haskell中使用STRef实现支持插入、删除和查找操作的可变二叉树有完整的例子吗?

请原谅我的无知,但为什么您需要树是可变的?只需在使用(树a)的地方使用(STRef s(树a))在树的类型定义中。但是,使用树的所有代码都必须在ST中。不太好。@user782220您几乎总是可以使用一些不可变的数据获得相当好的性能。我认为在Haskell中,您会发现任何不愉快的事情都是可变的。@user782220使用正确的数据结构,您可以在大多数情况下获得足够好的性能。除非您特别需要改进树代码中的性能,否则您现在可能应该跳过这一步。