我已經撰寫了代碼(我是haskell的新手,非常新)并且無法解決警告。
問題:
funk :: Num a => a -> a
funk a = a 10
main :: IO()
main = print (funk 10 )
警告:
Warnings: 1
/home/anmnv/Desktop/qqq.hs: line 4, column 8:
Warning: ? Defaulting the following constraints to type ‘Integer’
(Show a0) arising from a use of ‘print’ at qqq.hs:4:8-23
(Num a0) arising from a use of ‘funk’ at qqq.hs:4:15-21
? In the expression: print (funk 10)
In an equation for ‘main’: main = print (funk 10)
uj5u.com熱心網友回復:
它只是說您沒有指定10. 嚴格來說,它可以是Numtypeclass成員的任何型別,但編譯器使用默認規則,因此會選擇一個Integer.
你可以給 Haskell 一個型別約束來確定 的型別10,例如:
funk :: Num a => a -> a
funk = ( 10)
main :: IO ()
main = print (funk (10 :: Integer))
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/495429.html
