美好的一天,伙计们。我正在寻求对 monads 的一些澄清,请使用 bind (在进入组合时.
)。
所以对于这个例子:
--Monadic parts:
readFile :: String -> IO File
putStr :: String -> IO()
-- Non monadic parts
toMatrix :: String -> CustomMatrix
toString :: CustomMatrix -> String
本质上,我懒惰地读取文件 ( readFile
),然后生成自定义矩阵,将矩阵转换为字符串输出。然后返回。
fileReading :: String -> IO
fileReading file = putStr(toString . toMatrix . readFile file)
这是我开始使用 bind >>=
to go from 来制造混乱的时候readFile file
。有没有一种方法可以让我继续使用合成.
并绑定和组合而不会造成难以理解的混乱(这不是我的真正目标)。
与往常一样,我们将不胜感激地接受任何帮助。谢谢各位。