我想在列表理解中構建一個矩陣。對於每一行我需要getLine並解析出來。列表理解中的GetLine
總之,我想要做這樣的事情。
fun = [ getLine | y <- [0..4]]
如果我運行這個功能,而不是從命令提示符下試圖函數getline的每一行,我得到一個錯誤用於從使用「打印」的產生沒有實例(顯示(IO字符串))。
我收到錯誤消息,但是如何在列表理解中獲得線?
我想在列表理解中構建一個矩陣。對於每一行我需要getLine並解析出來。列表理解中的GetLine
總之,我想要做這樣的事情。
fun = [ getLine | y <- [0..4]]
如果我運行這個功能,而不是從命令提示符下試圖函數getline的每一行,我得到一個錯誤用於從使用「打印」的產生沒有實例(顯示(IO字符串))。
我收到錯誤消息,但是如何在列表理解中獲得線?
如果你想採取行動的清單,評估每一個序列,並返回各自的結果 - [IO a] -> IO [a]
- 有sequence
:
fun = sequence [getLine | y <- [0..4]]
,這可以簡化爲Control.Monad.replicateM
:
fun = replicateM 5 getLine
你剛纔在列表理解中使用了'getLine':P – immibis
是的,我真的想使用列表理解,因此我可以獲得我將構建的矩陣的座標。 – mac10688