我想在列表理解中构建一个矩阵。对于每一行我需要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