我正在努力将CSV文件解析为CSV类型,这是一个Record列表,它是Field的列表,它只是字符串.插入新行然后尝试访问csv后,我得到c堆栈溢出错误.我读过这个错误可能来自太大的"thunk"使用尾递归,但我不认为那是我做错了什么?
type CSV = [Record]
type Record = [Field]
type Field = String
run :: IO()
run =
do
inFile <- readFile "myFile.csv"
let csv = parse inFile
let csv = (insertRow "abc,def,ghi" csv)
putStr (show csv)
insertRow :: String -> CSV -> CSV
insertRow newRow csv = csv ++ [toRecord newRow]
parse :: String -> CSV
parse file = map toRecord (parseLines file "" [])
toRecord :: String -> Record
toRecord line = parseWords line "" []
-- parseLine …Run Code Online (Sandbox Code Playgroud)