在Haskell派生任意函数
-
19-09-2019 - |
题
当与衍生的实例在Haskell工作,是否有可能导出函数对于任意类型的,或者是我们限于特定功能?
解决方案
可以导出在Haskell 98以下类的实例:公式,奥德,枚举,IX,有界,读取和显示
使用GHC扩展还可以得到下面的类的实例:分型,数据,函子,可折叠和Traversable的。还有一个GHC扩展,允许一个NEWTYPE从其执行类型派生实例。
您无法获得任意类的实例的原因很简单,哈斯克尔不知道如何产生必要的功能,而无需了解有关类别的专业知识。
其他提示
您仅限于特定的类,在什么样的编译器知道如何得出你的术语。使用预处理程序,或模板哈斯克尔,你可以自己编写了新的派生机制,如果你知道的一般方法产生的特定类型的函数的实现。
在其它两个答案是正确的。但是,如果你需要更多的,也有上hackage,可以处理更多的一些软件包。我喜欢 Data.Derive 了很多,因为你可以直接生成的源代码(兼容性)或把它挂到模板哈斯克尔在编译的时候做。广泛的课程已经被支持,这是很容易的添加对自己的支持。 )
- :总结:对于一个该死细库广告间距不隶属于 StackOverflow