Каковы преимущества типов, являющихся первоклассными объектами?
У кого-нибудь здесь есть хорошие примеры, когда в руки попадают типы как первоклассные объекты?
Я думаю, что это помогает легко реализовать некоторые математические концепции, и именно такие примеры я ищу.
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')