我已經寫了一個Haskell功能,像這樣:類型錯誤在Haskell功能
shift :: Subst a -> Subst a
shift (S s) = [(x, (subst s' d)) | (x,d) <- s] where
s' = [(x,d) | (x,d) <- s, null (vars d)]
與數據類型,像這樣data Subst a = S [(String,a)]
我已經聲明subst
爲subst :: Subst a -> a -> a
和vars
爲vars :: a -> [String]
。當我運行這個時,我得到一個類型錯誤。任何想法爲什麼?
當你問這樣的問題**給我們錯誤信息**。錯誤消息試圖幫助程序員理解錯誤。即使他們對你沒有任何意義,他們也會幫助你幫助你。然後,一旦你得到了你的答案,看看錯誤信息,並試圖找出它是如何對應於你的問題的解釋。這將逐漸使您能夠使用類型錯誤消息來爲自己找出問題! – Ben