作为一流物体的类型有什么好处?

时间:2011-07-24 11:18:07

标签: language-agnostic types language-design abstraction first-class

这里有人有很好的例子,其中类型作为第一类对象吗?

我想这有助于直接实现一些数学概念,实际上这就是我正在寻找的那种例子。

UPD 为了澄清这个问题,如果可以让函数接受类型和返回类型,或者将类型存储在变量中,可以做些什么呢?

我正在研究Aldor,但由于许可证问题,它有点死了。据说这些类型是一流的对象,至少在上面是这样的。

3 个答案:

答案 0 :(得分:2)

查看Agda2,ats-lang.org和其他依赖类型的语言。不是你问的,而是相关的。

答案 1 :(得分:1)

<强>反射

如果类型是第一类对象,则可以reflection

答案 2 :(得分:1)

动态工厂。

_types = {}

register_type(typ, iden):
  _types[iden] = typ

def factory(iden):
  typ = _types.get(iden)
  if not typ:
    raise ValueError('Type not registered for %r' % iden)
  return typ()

register_type(SomeClass, 'class1')
register_type(SomeOtherClass, 'class2')

print factory('class1')