可见性和评估

我认为某种使事物抽象化的工具很重要。A定义(f)如果无法检查其定义,则为抽象;这意味着(f)不进行评估(例如,在某个有限范围内除外)。这有几个原因:

  • 隐藏实现,以便客户端代码不能依赖于实现细节。
  • 隐藏实现以确保保留一些不变量。我的时间复杂性库取决于定义Thunk n a=a例如,抽象。
  • 控制在类型检查期间对代码求值的程度,以提高效率。

注意,抽象与商类型不同(商类型不提供隐藏实现的机制)。

目前,Agda提供了关键字摘要让事情变得抽象。这条路对吗?

  • 也许有人会想要一种更加综合的方法,在这种方法中,抽象性在事物的类型中是可见的。
  • 也许是单一机制(摘要)不是支持以上列表中所有项目的最佳方式。

似乎很少有人意识到上述问题,或摘要,对抽象进行一些讨论会很好。

/北美

页面上次修改时间:2007年9月19日晚上10:56
技术支持私人维基