Merge mine and aarne's variants linearization changes.

This commit is contained in:
bjorn
2008-10-03 09:53:25 +00:00
parent 59cb392bda
commit 5bc73e10bc

View File

@@ -60,16 +60,13 @@ linTree pgf lang = lin
R ts -> R $ ts ++ (Data.List.map (kks . prCId) xs)
TM s -> R $ (TM s) : (Data.List.map (kks . prCId) xs)
lin (Fun fun es) = let argVariants = mapM (liftVariants . lin) es
mkVariants [t] = t
mkVariants ts = FV ts
in mkVariants [comp args $ look fun | args <- argVariants]
in variants [compute pgf lang args $ look fun | args <- argVariants]
lin (Lit (LStr s)) = R [kks (show s)] -- quoted
lin (Lit (LInt i)) = R [kks (show i)]
lin (Lit (LFlt d)) = R [kks (show d)]
lin (Var x) = TM (prCId x)
lin (Meta i) = TM (show i)
comp ls t = variants [compute pgf lang ts t | ts <- combinations (map unvariants ls)]
look = lookLin pgf lang
variants :: [Term] -> Term