请告诉我这个haskell coe语法中的错误

时间:2015-12-07 00:52:23

标签: haskell

typingConstraint capGamma i (App (Abs x tau t)t2) =
  ((Abs x tau t)
  ,t2(TypeVar ("T"++show (i+1)))
  ,(TypeArrow(TypeVar("T"++show i)),(TypeVar("T"++ show (i+1)))))
   where ((Abs x tau t),t2(TypeArrow tau1 tau2)) = typingConstraint capGamma i x

错误消息

  

"解析模式t2"

中的错误

1 个答案:

答案 0 :(得分:3)

您的问题很少提供有关更广泛内容的信息,因此我不确定如何解决问题。但是,我可以看到语法错误。

where ((Abs x tau t),t2(TypeArrow tau1 tau2)) = typingConstraint capGamma i x

=左侧有一个模式,它使用模式变量t2作为函数,应用于(TypeArrow tau1 tau2),但不允许这样的模式:匹配这样的模式意味着从其使用的一个例子中找出函数t2

我的猜测是你错过了一个逗号。没有更多信息,很难提供更好的建议。如果你能说出typingConstraint的类型,那对我(也可能是你)来说真的很有帮助。该类型将告诉您哪些模式对于匹配其输出有效。