[英]Haskell frustration with function calls
學習Haskell正在殺了我。 如果我要編寫一個函數,它接受一個可訂單元素數組,並輸出相同的東西,我該怎么做?
我嘗試:
main = testfn [[1],[2]]
testfn :: (Ord a) => [[a]] -> [[a]]
testfn x = x
但我得到的信息是:
無法將預期類型'IO t0'與實際類型'[[a0]]'匹配在表達式中:main檢查函數'main'的類型時
你的問題是main
必須是IO a
形式的IO a
(你可以在錯誤中看到這一點 - GHC期望main的推斷類型[[a0]]
與IO t0
匹配)。 這里main
有類型[[Int]]
。 您只需打印結果即可輕松解決此問題:
main = print (testfn [[1],[2]])
函數main
必須具有類型IO a
。 您將main定義為testfn [..]
,其類型為Ord a, Num a => [[a]]
。
你想要該程序做什么? 與您訂購的已知解決方案相比較?
main = print (knownSolution == testfn [[1],[2]])
或者打印結果?
main = print $ testfn [[1],[2]]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.