繁体   English   中英

Haskell 2D字符数组

[英]Haskell 2D character array

我有与Haskell语言相关的问题。我需要将一堆字符存储在2D数组中。如何存储它?我在文本文件中有10 X 10格式的字符,我想将其存储在Haskell语言的2D字符数组中。请尽快帮助我..谢谢

这是我尝试的代码,在此代码中,我试图将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

尝试这个:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM