Haskell从文件列表中读取矩阵并使用它

Fel*_*ipe 3 io haskell list matrix

嗨伙计们,我需要从文件列表中获取矩阵.例:

file.txt的

[1,2,3,4,5,6,7,8,9]

我想以这种形式阅读:[[1,2,3],[4,5,6],[7,8,9]]

而且,我需要在另一个函数中操作它,如:

func m x y = do{ printMatrix m; 
    return $ m !! x !! y;
}
Run Code Online (Sandbox Code Playgroud)

可能吗?

谢谢

fuz*_*fuz 5

有一种相当天真的方式为您的矩阵使用嵌套列表.如果您的输入已经是这个Haskellish形式,您也可以使用该函数read来解析输入.例如:

type Matrix a = [[a]]

readMatrix :: FilePath -> IO (Matrix a)
readMatrix path = f <- getFile path
                  return $ read f

elemAt :: Int -> Int -> Matrix a -> a
elemAt x y m = m !! x !! y

-- and so on
Run Code Online (Sandbox Code Playgroud)