Каковы преимущества типов, являющихся первоклассными объектами? - PullRequest
4 голосов
/ 24 июля 2011

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

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

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

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

Ответы [ 3 ]

2 голосов
/ 22 августа 2011

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

1 голос
/ 24 июля 2011

Динамический завод.

_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')
1 голос
/ 24 июля 2011

Отражение

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

...