の.csvを変換しようとしています
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 ++ "))."
このプロジェクトで私を助けてくれた人にとても感謝しています。彼らの貢献は私にとって最も価値があります。