START会议经理

泛型判别——线性时间内非共享数据的排序和分区

弗里茨·亨利恩

第十三届ACM SIGPLAN功能编程国际会议(ICFP 2008)
加拿大不列颠哥伦比亚省维多利亚市,2008年9月22日至24日


摘要

我们引入了鉴别器的概念,作为排序和划分的推广。鉴别器通过(总预)订单的表示进行索引。表示语言允许定义结构等价、词典排序、交换性下列表的等价/排序、幂等性(包和集等价)等。

我们证明,通过对术语语言的归纳,最坏情况下的线性时间鉴别器可以通用地定义。归纳定义产生了一个通用鉴别器,它封装并推广了字符串和树的分布式排序和多集判别。我们证明了可以使用列表理解和广义代数数据类型(GADT)对鉴别器进行紧凑编码。我们给出了鉴别器的一些使用示例,包括最近发现的最佳时间算法的少量线性规范。

我们使用这些结果来论证有序(抽象)类型或具有相等性的类型,特别是编程语言中的基元类型,应该将其排序关系/相等性公开为(排序)鉴别器,而不是比较函数/相等性测试。


开始会议经理(V2.54.6)