4

这里有没有人有很好的例子来说明类型作为一等对象?

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

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

我正在研究Aldor,但由于许可证问题,它有点死了。至少在上面的意义上,有些类型被称为第一类对象。

4

3 回答 3

2

看看 Agda2、ats-lang.org 和其他具有依赖类型的语言。不完全是你问的,但相关。

于 2011-08-21T20:47:16.313 回答
1

反射

如果类型是一流的对象,那么您可以进行反射

于 2011-07-24T11:24:22.463 回答
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')
于 2011-07-24T11:28:58.000 回答