2015-12-07 19 views
-4
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 

錯誤信息請告訴我錯在這哈斯克爾COE語法

「的模式T2解析錯誤」

+2

您可以設置您的問題的格式,以便代碼顯示其原始空白?一種方法是將每行縮進四個空格。 – pigworker

回答

3

你的問題給出了關於什麼是更廣泛的進展非常少的信息,所以我不知道如何解決這個問題。但是,我可以看到語法錯誤。

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

具有的=左側其使用圖案可變t2作爲函數,施加到(TypeArrow tau1 tau2)的圖案,但這些模式是不允許的:匹配這樣的模式將意味着搞清楚什麼功能t2是從一個它的使用的例子。

我的猜測是你錯過了一個逗號。沒有更多信息就很難提供更好的建議。如果你能說出typingConstraint是什麼類型的話,它確實會幫助我(也可能是你)。該類型將告訴您哪些模式對匹配其輸出有效。