2016-07-07 65 views
0

我有一個字符串,我需要解析爲Array或其他數組。Haskell:通過解析數據類型錯誤

這是我的代碼有

import Test.HUnit (runTestTT,Test(TestLabel,TestList),(~?=)) 
import qualified Text.Parsec as P (char,runP,noneOf,many,(<|>),eof) 
import Text.ParserCombinators.Parsec 
import Text.Parsec.String 
import Text.Parsec.Char 
import Text.PrettyPrint.HughesPJ 
import Data.Maybe 
import Data.List.Split 

newtype CSV = CSV [Row] deriving (Show,Eq) 
type Row = [String] 

parseCSV :: Parser CSV 
parseCSV = error "not done yet" 

runParsec :: Parser a -> String -> Maybe a 
runParsec parser input = case P.runP parser() "" input of 
    Left _ -> Nothing 
    Right a -> Just a 

當我開始實現parseCSV功能

parseCSV = Just (CSV [[""]]) 

我得到這個錯誤:

Expected type: Parser CSV 
Actual type: Maybe CSV 

回答

1

試試這個:

parseCSV :: Parser CSV 
parseCSV = return $ CSV [[""]] 

錯誤說明了這一切:parseCSV應具有類型Parser CSV(來自類型簽名),但Just (CSV [[""]])的類型爲Maybe CSV

+0

它的工作!我會在幾分鐘內將其標記爲正確答案,謝謝! –