ファーストクラスのオブジェクトとしての型が手に入る良い例を持っている人はいますか?
いくつかの数学の概念を簡単に実装するのに役立つと思います。実際、それは私が探している種類の例です。
UPD質問を明確にするために、型を受け入れて型を返す関数を作成したり、変数に型を格納したりできる場合はどうすればよいですか?
私はAldorを勉強していますが、ライセンスの問題で少し死んでいます。少なくとも上記の意味では、型は第一級のオブジェクトと言われています。
ファーストクラスのオブジェクトとしての型が手に入る良い例を持っている人はいますか?
いくつかの数学の概念を簡単に実装するのに役立つと思います。実際、それは私が探している種類の例です。
UPD質問を明確にするために、型を受け入れて型を返す関数を作成したり、変数に型を格納したりできる場合はどうすればよいですか?
私はAldorを勉強していますが、ライセンスの問題で少し死んでいます。少なくとも上記の意味では、型は第一級のオブジェクトと言われています。
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')