我见过的函数依赖的例子归结为映射 container -> element
, 和 arguments -> result
(如 Mult Matrix Vector Vector
)。它们似乎用类型函数更好地表达。在数据库理论中,更复杂的关系被认为不是这种形式(如 a -> b, b -> a
)。
Haskell 中是否有使用类型函数不能很好地编写的 FD 使用示例?
最佳答案
作为曼努埃尔·查克拉瓦蒂 explains ,类型函数和函数依赖具有大致相同的表现力,你可以将一个公式翻译成另一个公式。当您查看与其他语言扩展(如 GADT 或 UndecidableInstances)的交互时,它们才开始有所不同。我认为类型族目前更倾向于在 GHC 中实现,因为它们与 GADT 和存在类型的交互要简单得多。
关于Haskell:函数依赖的非显而易见的例子,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3378433/