我對Haskell相當新,而且我目前正在使用LearnYouAHaskell。 我正在嘗試使用由空格分隔的字符串,並將其分解爲一個較小的字符串列表。 我目前的計劃:Haskell字符串到使用字的字符串列表
main = do
putStrLn "Insert a string to convert: "
-- Input string
line <- getLine
words line;
但在這種情況下,它告訴我,我有一個IO錯誤。 據我瞭解,getLine是一個動作,所以既然這是不純的,我必須將它綁定到「行」。 Line是getLine的精確表示,它是一個IO字符串。
但是,不應該是一個字符串? 當我嘗試使用上一行字,它告訴我 「無法匹配,期望型‘IO A0’與實際類型[字符串]
彷彿線是不是字符串。 此外,我可以使用:在程序本身牛逼線的時候我做它,看它是否實際正確類型的或不
我的新手問題道歉,但我有點卡住
編輯:?
我在GHCI做了類似的事情,它告訴我我的類型實際上是一個普通的字符串..我不會等等。
Prelude> line <- getLine
"Hello fellows"
Prelude> :t line
line :: String
Prelude> words line
["Hello","fellows"]
爲什麼不行?
錯誤的解釋:'字行'的類型爲'[String]',但是do塊中的所有語句預計都會爲'a0'類型'IO a0'。 – hzap