type variavel = string type formula = Implica of formula*formula Equivale of formula*formula Ou of formula*formula E of formula*formula Nao of formula Var of variavel Verdade Falso (* Função (recursiva estrutural) de conversão de expressões para strings *) let rec string_of_formula form = match form with Var v -> v Verdade -> "TRUE" Falso -> "FALSE" Implica(f, g) -> ("( "^ string_of_formula f ^ " -> " ^ string_of_formula g ^" )") Equivale(f, g) -> ("( "^ string_of_formula f ^ " <-> " ^ string_of_formula g ^" )") E(f, g) -> ("( "^ string_of_formula f ^ " & " ^ string_of_formula g ^" )") Ou(f, g) -> ("( "^ string_of_formula f ^ " | " ^ string_of_formula g ^" )") Nao f -> ("!"^ string_of_formula f )
This document was generated using caml2html