Я пытаюсь преобразовать файл CSV изСинтаксический .csv в пунктах в Haskell
femin,femin,1,f,woman,women,
aqu,aqu,1,f,water,waters,
..
в файл .pl как
noun(femin,femin,1,f,trans(woman,women)).
noun(aqu,aqu,1,f,trans(water,waters)).
..
здесь мой текущий исходный код:
-- get from "femin, femin, 1, f, woman, women" to noun(femin, femin, 1, f ,trans(woman,women)).
import qualified Data.Attoparsec as P
data NounClause = NounClause
{
nom :: String,
gen :: String,
declension :: String,
gender :: String,
sgtrans :: String,
pltrans :: String
} deriving Show
parseNounClause :: P.Parser NounClause
parseNounClause = do
nom <- String
char ","
gen <- String
char ","
declension <- String
char ","
gender <- String
char ","
sgtrans <- String
char ","
pltrans <- String
return $ NounClause nom gen declension gender sgtrans pltrans
Однако, похоже, что это не работает. Почему это так?
Также, как я могу применить этот синтаксический анализатор к каждой строке? Здесь также моя функция, которая принимает анализируемые данные и возвращает строку.
c = ","
convert :: NounClause -> String
convert NounClause = "noun(" ++ nom ++ C++ gen ++ C++ declension ++ C++ gender ++ "trans(" ++ sgtrans ++ C++ pltrans ++ "))."
Я очень благодарен всем, кто помогает мне в этом проекте; их вклад является самым ценным для меня.
Кстати, я рекомендую проверить [маниока] (http://hackage.haskell.org/package/cassava-0.2.2.0/docs/Data-Csv.html) или какой-либо другой CSV, если вы разбираете документы CSV. – kqr
Большое спасибо, я посмотрю на него – user2850249