类型成为第一类对象有什么好处?

发布于 2024-11-25 14:04:32 字数 263 浏览 3 评论 0原文

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

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

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

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

Does anybody here have good examples where types as first-class objects come in hand?

I guess it helps to straightforwardly implement some math concepts, indeed that is the kind of examples I'm looking for.

UPD To clarify the question, what can be done if one can make functions accepting types and returning types, or store types in variables?

I'm studying Aldor, though due to license issue it is a bit dead. There types are said to be first-class objects, at least in the sence above.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

|煩躁 2024-12-02 14:04:32

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

Take a look at Agda2, ats-lang.org and other languages with dependent types. Not quite what you asked, but related.

宣告ˉ结束 2024-12-02 14:04:32

反射

如果类型是一流对象,则可以执行 反思

Reflection

If types are first-class objects is that you can do reflection.

旧夏天 2024-12-02 14:04:32

充满活力的工厂。

_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')

Dynamic factory.

_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')
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文