![](/img/trans.png)
[英]Haskell: Couldn't match expected type 'IO t0' with actual type 'Integer'
[英]Haskell powerset function - How to avoid Couldn't match expected type `IO t0' with actual type `[[Integer]]'
我有一個要在此處運行的Powerset實現: http ://rextester.com/runcode。 我仍然遇到此錯誤,無法找出正確的方法。 我正在嘗試盡可能多地閱讀有關Haskell中的IO的信息,但這對我來說真的很難。
import Control.Monad (filterM)
powerset = filterM (const [True, False])
main = powerset[1,2]
問題是main = ...
main
應該具有IO ()
類型,但是您要給出一個[[Integer]]
類型的表達式(正如編譯器告訴您的)-因此,我認為您想將結果輸出到控制台,我認為您正在尋找print
這對我有用:
import Control.Monad (filterM)
powerset = filterM (const [True, False])
main =
print $ powerset[1,2]
話雖如此,您應該添加頂級簽名:
module Main where
import Control.Monad (filterM)
powerset :: [a] -> [[a]]
powerset = filterM (const [True, False])
main :: IO ()
main =
print $ (powerset [1,2] :: [[Int]])
從stdin獲取輸入的通常方法是getLine :: IO String
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.