我有问题相关的Haskell语言。我需要在2D数组中存储一堆字符。如何存储它?我在文本文件中有10 X 10格式的字符,我想将它存储在2D字符数组中haskell语言。请尽快帮助我..谢谢你..
这是我试过的代码,在这段代码中,我试图将x的值存储在名为listofchar ::
的列表中module TreasureFile where
import System.IO
main = do
hdl <- openFile "map.txt" ReadMode
readbychar hdl
readbychar hdl = do
t <- hIsEOF hdl
if t
then return()
else do
let listofchar=[]
x <- hGetChar hdl
if x =='\n'
then putChar '!'--return()
else listofchar x
readbychar hdl
答案 0 :(得分:2)
试试这个:
import System.IO
main = do
textContents <- readFile "map.txt"
let map = format textContents
print $ map
format text = lines text
让我们逐步完成这个计划:
首先,readFile
读取文件并将内容绑定到textContents
。
接下来,我们通过在每次遇到换行符分隔符时拆分列表来格式化内容,然后删除最终剩余的空字符串。
完成!现在我们可以用“地图”做任何我们想做的事。
旁边的小记:
我们的地图会像这样显示似乎很奇怪:
["aaaaaaaaaa","bbbbbbbbbbb",..] -- doesn't look like 2D map
这只是合成糖:
[['a','a','a',..],['b','b','b',..],..] -- looks more like a map now