我需要乘以一個多項式使用地圖的數字。我一直在嘗試很久,我已經瘋了。我試過兩種方法得到這個錯誤:哈希克爾多項式問題與地圖
data Pol = P [(Float,Int)] deriving Show
prodEsc :: Pol -> Float -> Pol
prodEsc (P a) n = P (prodAux a n)
--First try:
prodAux :: [(Float,Int)] -> Float -> [(Float,Int)]
prodAux [] _ = []
prodAux ((c,g):xs) n = map (\ (c,g) n -> (c*n,g)) xs
--error:
ERROR file:.\Febrero 2011.hs:21 - Type error in explicitly typed binding
*** Term : prodAux
*** Type : [(Float,Int)] -> Float -> [Float -> (Float,Int)]
*** Does not match : [(Float,Int)] -> Float -> [(Float,Int)]
--Second try:
prodAux :: [(Float,Int)] -> Float -> [(Float,Int)]
prodAux [] _ = []
prodAux (x:xs) n = map (opera x n) (x:xs)
opera :: (Float,Int) -> Float -> (Float,Int)
opera (c,g) n = (c*n,g)
--error:
ERROR file:.\Febrero 2011.hs:23 - Type error in application
*** Expression : map (opera x n) (x : xs)
*** Term : opera x n
*** Type : (Float,Int)
*** Does not match : (Float,Int) -> a
任何人都可以幫我嗎?
非常感謝你!
它的工作原理!!謝謝你的解釋。我會盡力瞭解更多信息;) – Sierra
@ user918139請在答案左側的綠色按鈕上打勾,表示接受。您也可以點擊答案評分上方的三角形按鈕進行投票。 – fuz