module Tabla where import Asignaciones import Formula import Evaluar tabla :: Formula -> String tabla f = tabla' Vacio (reverse (obtenerAtomicas f)) f tabla' :: LVar_prop -> [Atomica] -> Formula -> String tabla' lista [] f = (imprimir (lista) (evaluar lista f)) ++ ['\n'] tabla' lista (x:xs) f = (tabla' (Nodo Verdadero x lista) xs f) ++ (tabla' (Nodo Falso x lista) xs f) imprimir :: LVar_prop -> Valor -> String imprimir (Vacio) v = "" imprimir lista v = imprimir' lista ++ " " ++ [valor2v(v)] imprimir' :: LVar_prop -> [Char] imprimir' (Vacio) = [] imprimir' (Nodo v a Vacio) = valor2v(v) : [] imprimir' (Nodo v a sig) = valor2v(v) : ',' :(imprimir' sig)