编程语言中的"缺失"(?)功能?

Syd*_*ove 3 haskell types type-systems language-design

让我们以Haskell为例,因为它最接近我将要描述的语言.

Int例如,类型可以被视为所有可能值(该类型)的集合.为什么我们只能使用非常具体的设置呢? Int,Double等等......而不是类型系统中的所有子集.

我想要一种我们可以定义任意类型的语言Int greater than 5.有这样的语言的例子吗?如果没有,为什么不呢?

Sib*_*ibi 8

您正在寻找依赖类型.Idris,Agda和Coq在这一类别中是众所周知的.

  • @Syd:尝试用其中一种语言编程.它不是,就像,不可行,但你开始思考很多关于你几乎不能进入实际编程部分的证据......至少这是我迄今为止的经验,尽管我认为自己相当顽强地使所有数学都变得美观等等.那就是他们在实践中很难使用的原因.也许依赖类型实际上应该更多地使用,但我怀疑Agda,Idris之类的东西会在可预见的未来发挥作用.Coq有一个良好的开端; 和Haskell本身对GHC扩展更加"依赖". (5认同)
  • 除了完全依赖类型之外,还有一些小型系统可以满足这些需求.例如,细化类型是液体Haskell. (3认同)