Api 在Haskell中使用Data.Heap,或为初学者阅读Haskell文档

Api 在Haskell中使用Data.Heap,或为初学者阅读Haskell文档,api,data-structures,haskell,Api,Data Structures,Haskell,我试图使用Haskell的Data.Heap模块,但我甚至无法将其用于整数。我唯一能够使用的堆是“empty”,它不接受任何参数 稍后,我将找出如何根据自己的需要进行实例验证,但现在,如果我能够用数字对其进行测试,我会很高兴。Haskell中的数据结构库通常提供fromList函数,用于将列表转换为该结构。堆也不例外。但在尝试使用它时,您会遇到一些疯狂的错误: Prelude Data.Heap> Data.Heap.fromList [1,2,5,7] <interactive&

我试图使用Haskell的Data.Heap模块,但我甚至无法将其用于整数。我唯一能够使用的堆是“empty”,它不接受任何参数


稍后,我将找出如何根据自己的需要进行实例验证,但现在,如果我能够用数字对其进行测试,我会很高兴。

Haskell中的数据结构库通常提供
fromList
函数,用于将列表转换为该结构。堆也不例外。但在尝试使用它时,您会遇到一些疯狂的错误:

Prelude Data.Heap> Data.Heap.fromList [1,2,5,7]

<interactive>:1:0:
    Ambiguous type variables `t', `pol' in the constraint:
      `HeapItem pol t'
        arising from a use of `fromList' at <interactive>:1:0-27
    Probable fix: add a type signature that fixes these type variable(s)

....
其他构造函数(例如,
singleton
fromAscList
等)的操作类似

一旦构建了堆,剩下的就很容易了,例如,向堆中插入一个项

Prelude Data.Heap> let heap = Data.Heap.fromList [1,2,5,7] :: MinHeap Int
Prelude Data.Heap> heap
fromList [(1,()),(2,()),(5,()),(7,())]
Prelude Data.Heap> Data.Heap.insert 3 heap
fromList [(1,()),(3,()),(2,()),(5,()),(7,())]
读取堆的顶部

Prelude Data.Heap> heap
fromList [(1,()),(2,()),(5,()),(7,())]
Prelude Data.Heap> viewHead heap
Just 1

等等。

你的问题是什么?你能提供到目前为止你所拥有的代码,以便用户能够提出改进建议吗?谢谢。这正是我想要的。我能够得到尽可能多的类型错误,但不知道如何摆脱它们。再次感谢你
Prelude Data.Heap> heap
fromList [(1,()),(2,()),(5,()),(7,())]
Prelude Data.Heap> viewHead heap
Just 1