爲什麼Prog A編譯並運行正常,而Prog B編譯失敗?由於綁定/賦值運算符爲函數返回String而不是函數返回Int
PROG一個
func :: String -> String
func a = a
mydofn a = do
x <- func a
return x
main = print "Finished"
PROG乙
func :: Int -> Int
func a = a
mydofn a = do
x <- func a
return x
main = print "Finished"
PROG乙編譯錯誤:
Couldn't match expected type `m0 t0' with actual type `Int'
In the return type of a call of `func'
In a stmt of a 'do' block: x <- func a
In the expression:
do { x <- func a;
return x }
你還想讓mydofn做什麼?它會澄清你的目的,也許可以幫助我們給出更多有用的答案。 – AndrewC