haskell – 所有类型的参数取决于功能依赖关系

前端之家收集整理的这篇文章主要介绍了haskell – 所有类型的参数取决于功能依赖关系前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
假设我有一个具有n个类型参数的类型类,并且我希望其中任意一个唯一地确定所有其他参数.这是否足以使依赖关系形成一个循环
class Foo a b c | a -> b,b -> c,c -> a

(线性),其中从每个参数到另一个参数的路径,或者我需要扩展所有可能的路径,如in

class Bar a b c | a -> b,a -> c,b -> a,c -> a,c -> b

(二次)?两者之间有差异吗?怎么样

class Baz a b c | a -> b c,b -> a c,c -> a b
以上所有操作均等效于:

首先,一个 – > b c在字面上与 – > b,a – > C.

接下来,假设我们得到Foo a b c => (a,b,c).说,我们意识到一个〜A.我们找到一个 – > b通过实例查找b〜B.再次找到b – > (C,C,C).

如果相反,我们有Bar a b c => (a,c)与〜A,我们会发现 – > b和b〜B,但是在找到b→ c,我们会找到一个 – > C.

唯一的区别是用于推算哪些类型的底部箭头. a – > b,b – > c和a – b,a – > c不能产生不同的结果.

猜你在找的设计模式相关文章