标签: ats
我需要进行某种基于优先级的搜索。有人能指出我在ATS中的优先级队列实现吗?
答案 0 :(得分:0)
我想出了一些不安全的基于C的最大堆(基于其他人的要点)。我认为它确实表明在ATS中与C代码接口虽然通常不安全,但很容易做到。
请参阅Glot.io
编辑:这是another实施,这次是在ATS。但是这有点麻烦(类型中的索引太多了!),但这段代码的关键显着特点是它是类型安全的,而也非常接近典型在运行时行为方面的C实现。
答案 1 :(得分:0)
您可以轻松地在二项式堆上建立优先级队列。
ATS中有两种二项式堆的实现。以下是一些用例:
https://github.com/githwxi/ATS-Postiats/blob/master/doc/EXAMPLE/ATSLIB/libats_linheap_binomial.dats
https://github.com/githwxi/ATS-Postiats/blob/master/doc/EXAMPLE/ATSLIB/libats_linheap_binomial2.dats