Haskell 2D字符数组

时间:2014-07-27 21:57:10

标签: haskell

我有问题相关的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

1 个答案:

答案 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