gpt4 book ai didi

haskell - 我可以在 Haskell 上创建一个可扩展的(通过额外的自定义插件)应用程序吗?

转载 作者:行者123 更新时间:2023-12-04 01:44:22 26 4
gpt4 key购买 nike

我学习 Haskell。

当我在 C# 上编写我的应用程序时,我做到了它是可扩展的。 IE。它可以通过加载额外的自定义 DLL 文件(插件或扩展 - 它是相同的)来扩展。我通过 Reflection 管理的应用程序机制通过它们的一些属性找到必要的类和方法,并将它们注册在我的应用程序的公共(public)命令注册表中。但我可以这样做,因为 .NET Framework 有 Reflection技术。所以我可以扩展我的应用程序基础的功能,而无需重新编译它。

我可以在 Haskell 上创建一个可扩展的(通过额外的自定义插件)应用程序吗? Haskell 的机制类似于Reflection通过 .NET 框架?或者可能存在其他方式在 Haskell 中做同样的事情。

最佳答案

有一个 GHC 库可以动态加载 plugins .还有一些支持introspection ,但这并不是真正的 Haskell 方式。

您可以做的是添加 register-plugin每个插件的预定义类型的函数,然后在加载插件时调用该函数。作为插件一部分的函数可以根据需要对插件有尽可能多的了解,并且不需要自省(introspection)。除了register-function的类型之外,主代码不需要知道关于插件的任何信息。 .

请注意,这在没有自省(introspection)的其他语言中也适用,例如在 C 中。

关于haskell - 我可以在 Haskell 上创建一个可扩展的(通过额外的自定义插件)应用程序吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28338807/

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