我需要以下属性的功能。与类型变量等价功能类型的
(C-> d) - >(A-> B-> C) - > A-> B-> d
我的功能:(。)
funktionD = 。
但():吨funktionD
funktionD ::(A - > B) - >(C - > d - >一) - >Ç - > d - >乙
是不是等于?
我需要以下属性的功能。与类型变量等价功能类型的
(C-> d) - >(A-> B-> C) - > A-> B-> d
我的功能:(。)
funktionD = 。
但():吨funktionD
funktionD ::(A - > B) - >(C - > d - >一) - >Ç - > d - >乙
是不是等于?
它。类型变量 - 以小写字母写 - 就是变量。只要其中相同变量的模式保持不变,您可以重新命名它们。
此外,本质上是相同的理由,你给类型的签名,只有一个(不包括崩溃或进入无限循环的功能,这是)该类型的可能的功能。需要思考的东西!
我觉得是。用c替换a(反之亦然),然后用d替换b(反之亦然),它们是相同的。
为什么不自己替代的类型变量,并尝试一下? – delnan 2011-05-16 17:56:12
您也可以只写'funktionD ::(C-> d) - >(A-> B-> C) - > A-> B-> D'你上面的函数定义,如果类型是错误的编译器会告诉你。 – MatrixFrog 2011-05-16 22:30:12
@MatrixFrog:这也是一个很好的建议。永远不要低估抢先与Haskell编译器争论的价值。仅仅因为它总是赢得争论并不意味着你在这个过程中无法学到东西! – 2011-05-16 22:50:43