Valor de un árbol booleano

Se consideran los árboles con operaciones booleanas definidos por

Por ejemplo, los árboles

se definen por

Definir la función

tal que valor a) es el resultado de procesar el árbol a realizando las operaciones booleanas especificadas en los nodos. Por ejemplo,

Soluciones

A continuación se muestran las soluciones en Haskell y las soluciones en Python.


Soluciones en Haskell


Soluciones en Python

Un comentario

  1. Aquí tienes una posible implementación de la función valor:

    Esta función utiliza pattern matching para distinguir entre los diferentes tipos de nodos del árbol y aplicar la operación correspondiente. Por ejemplo, en el caso de un nodo Conj, se evalúan ambos hijos y se devuelve el resultado de la conjunción lógica && entre ellos. En el caso de un nodo Neg, se evalúa el único hijo y se devuelve el resultado de la negación lógica not.

    Para probar esta función, puedes utilizar los ejemplos que has proporcionado:

Escribe tu solución