私はこのページ http://book.realworldhaskell.org/read/using-parsec.htmlで作業しており、CSVファイルパーサーを機能させようとしていますが、気づいた
parse csvFile "(stdin)" str
常に a を返します
Right [["s","o"],["h","i"]]
後でコードで使用できる配列の配列だけを返す場所で解析して動作させる方法はありますか?
例:
main = mainLoop []
mainLoop :: [[String]] -> IO ()
mainLoop db = do
answer <- getLine
case words answer of
("load":x) -> do
str <- readFile (head x)
mainLoop $ parseCSV str
("quit":_) -> return ()
("help":_) -> do
putStrLn "This is your help"
mainLoop db
otherwise -> putStrLn "Not sure what you want me to do! :(" >> mainLoop db
csvFile = endBy line eol
line = sepBy cell (char ',')
cell = many (noneOf ",\n")
eol = char '\n'
parseCSV :: String -> Either ParseError [[String]]
parseCSV input = parse csvFile "(unknown)" input
ありがとうございました