Каковы преимущества типов, являющихся первоклассными объектами?

У кого-нибудь здесь есть хорошие примеры, когда в руки попадают типы как первоклассные объекты?

Я думаю, что это помогает легко реализовать некоторые математические концепции, и именно такие примеры я ищу.

UPD Чтобы прояснить вопрос, что можно сделать, если можно заставить функции принимать типы и возвращать типы или сохранять типы в переменных?

Я учусь на Алдоре, хотя из-за проблем с лицензией он немного мертв. Типы называются первоклассными объектами, по крайней мере, в вышеприведенном смысле.

3 ответа

Решение

Взгляните на Agda2, ats-lang.org и другие языки с зависимыми типами. Не совсем то, что вы просили, но связано.

отражение

Если типы являются первоклассными объектами, это то, что вы можете сделать отражение.

Динамическая фабрика.

_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')
Другие вопросы по тегам