gpt4 book ai didi

f# - 除F#以外,其他语言是否存在类型提供程序?

转载 作者:行者123 更新时间:2023-12-04 10:03:05 26 4
gpt4 key购买 nike

我已经坚持了好几天了……很抱歉遇到这样的问题,但是我只是F#本身的初学者。由于关于类型提供程序的讨论很多,所以我决定建立一个类型提供程序并撰写一篇有关它的论文。当我开始时,我不知道什么是类型提供程序。现在,我有了一个主意,并建立了一个简单的CSV类型提供程序,但是在评估中我缺乏论点,要用其他语言制作这样的东西要花费多少时间和工作。到目前为止,我还没有发现任何线索,只是类型提供程序是F#3.0中的功能。有人可以帮我吗?

最佳答案

据我所知,唯一直接实现类型提供程序的其他语言是Idris。参见Idris documentation on type providers。有一些示例,包括SQL type provider in David Christiansen's GitHub repo。作为一种依赖类型的语言,类型提供程序的外观与F#中的外观完全不同-它们基本上是IO monad中使用%provide命令调用的计算-因此,与F#相比,它们在其余语言中更加统一设计。

还有其他与类型提供程序有关的语言功能。

  • 这包括各种模板系统(例如OCaml的Template Haskell和camplp4)。这些缺少某些类型提供程序功能(它们实际上生成代码,因此您不能提供“无限大小”类型,并且它们与工具的集成程度不高)。
  • 有许多用于Java和C#等语言的代码生成工具(LINQ to SQL使用代码生成,并且各种UI框架也使用),但是这又缺乏语言集成,并且只能支持相对较小的类型。
  • 另一个相关的事情是诸如multi-stage programming之类的元编程,但是据我所知,这主要是学术上的,没有实现它的坚实语言。

  • 很难说其中哪一个最接近类型提供程序。对我而言,类型提供程序的基本功能是我在使用它们时作为开发人员获得的快速反馈(对于某些人来说,这意味着在开发过程中即时更新架构)-而这正是代码生成工具通常无法做到的。另一个-能够懒惰地提供无限数量的类型对于某些类型提供程序很有用,但不是对所有类型提供程序-因此,例如可以通过代码生成工具合理地处理JSON,XML或CSV。

    关于f# - 除F#以外,其他语言是否存在类型提供程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47498564/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com